debug

The debug namespace provides debugging and diagnostic methods for Erigon node operators and developers. These methods offer deep introspection into blockchain state, transaction execution, and node performance.

The debug namespace must be explicitly enabled using the --http.api=debug flag when starting the RPC daemon.

circle-exclamation

Security and Access Control

  • Debug methods are considered private and should not be exposed on public RPC endpoints;

  • These methods can consume significant resources and should be used carefully in production environments;

  • Access should be restricted to trusted operators and developers only.

Performance Considerations

  • Tracing methods (debug_traceBlockByHash, debug_traceBlockByNumber, debug_traceTransaction, debug_traceCall, debug_traceCallMany) support streaming for large results to reduce memory usage

  • The AccountRangeMaxResults constant limits account range queries to 8192 results, or 256 when storage is included;

  • Memory and GC control methods allow fine-tuning of node performance.

  • Some methods like debug_accountRange have compatibility layers for both Geth and legacy Erigon parameter formats debug_api

Integration with Erigon Architecture

  • Debug methods leverage Erigon's temporal database for historical state access;

  • The implementation uses kv.TemporalRoDB for efficient historical queries;

  • Tracing functionality integrates with Erigon's execution engine and EVM implementation.

Usage in Development and Testing

  • These methods are essential for debugging transaction execution issues;

  • Storage range methods help analyze contract state changes;

  • Memory management methods assist in performance optimization and resource monitoring.


JSON-RPC Specification

debug_getRawReceipts

Returns an array of EIP-2718 binary-encoded receipts from a single block.

Parameters

Parameter
Type
Description

blockNrOrHash

QUANTITY | TAG | DATA

Block number, tag ("earliest", "latest", "pending"), or block hash

Example

Returns

Type
Description

Array of DATA

Array of binary-encoded transaction receipts

debug_accountRange

Returns a range of accounts involved in the given block range.

Parameters

Parameter
Type
Description

blockNrOrHash

QUANTITY | TAG

Block number or tag

start

DATAARRAY

Array of prefixes to match account addresses

maxResults

QUANTITY

Maximum number of accounts to retrieve

excludeCode

BOOLEAN

If true, exclude byte code from results

excludeStorage

BOOLEAN

If true, exclude storage from results

incompletes

BOOLEAN

If true, return missing preimages (not supported when true)

Example

Returns

Type
Description

Object

IteratorDump object containing account information

debug_accountAt

Returns account information at a specific block and transaction index.

Parameters

Parameter
Type
Description

blockHash

DATA, 32 Bytes

Hash of the block

txIndex

QUANTITY

Transaction index within the block

address

DATA, 20 Bytes

Account address

Example

Returns

Type
Description

Object

AccountResult with balance, nonce, code, and codeHash

debug_getModifiedAccountsByNumber

Returns a list of accounts modified in the given block range by number.

Parameters

Parameter
Type
Description

startNumber

QUANTITY | TAG

Start block number or tag

endNumber

QUANTITY | TAG

End block number or tag (optional)

Example

Returns

Type
Description

Array of DATA, 20 Bytes

Array of modified account addresses

debug_getModifiedAccountsByHash

Returns a list of accounts modified in the given block range by hash.

Parameters

Parameter
Type
Description

startHash

DATA, 32 Bytes

Hash of the start block

endHash

DATA, 32 Bytes

Hash of the end block (optional)

Example

Returns

Type
Description

Array of DATA, 20 Bytes

Array of modified account addresses

debug_storageRangeAt

Returns information about a range of storage locations for a contract address.

Parameters

Parameter
Type
Description

blockHash

DATA, 32 Bytes

Hash of block at which to retrieve data

txIndex

QUANTITY, 8 Bytes

Transaction index in the block

contractAddress

DATA, 20 Bytes

Contract address

keyStart

DATA, 32 Bytes

Storage key to start from

maxResult

QUANTITY, 8 Bytes

Maximum number of values to retrieve

Example

Returns

Type
Description

Object

StorageRangeResult with key/value pairs and nextKey

debug_traceBlockByHash

Returns Geth style transaction traces for a block by hash.

Parameters

Parameter
Type
Description

hash

DATA, 32 Bytes

Hash of block to trace

config

Object (optional)

Trace configuration options

Example

Returns

Type
Description

Array

Array of transaction trace objects

debug_traceBlockByNumber

Returns Geth style transaction traces for a block by number.

Parameters

Parameter
Type
Description

blockNumber

QUANTITY | TAG

Block number or tag

config

Object (optional)

Trace configuration options

Example

Returns

Type
Description

Array

Array of transaction trace objects

debug_traceTransaction

Returns Geth style transaction trace.

Parameters

Parameter
Type
Description

hash

DATA, 32 Bytes

Hash of transaction to trace

config

Object (optional)

Trace configuration options

Example

Returns

Type
Description

Object

Transaction trace object

debug_traceCall

Returns Geth style call trace.

Parameters

Parameter
Type
Description

args

Object

Call arguments (to, from, gas, gasPrice, value, data)

blockNrOrHash

QUANTITY | TAG | DATA

Block number, tag, or hash

config

Object (optional)

Trace configuration options

Example

Returns

Type
Description

Object

Call trace object

debug_traceCallMany

Returns Geth style traces for multiple call bundles.

Parameters

Parameter
Type
Description

bundles

Array

Array of transaction bundles to trace

simulateContext

Object

Simulation context (blockNumber, transactionIndex)

config

Object (optional)

Trace configuration options

Example

Returns

Type
Description

Array

Array of trace results for each bundle

debug_setMemoryLimit

Sets the GOMEMLIMIT for the process.

Parameters

Parameter
Type
Description

limit

QUANTITY

Memory limit in bytes

Example

Returns

Type
Description

QUANTITY

Previous memory limit

debug_setGCPercent

Sets the garbage collection target percentage.

Parameters

Parameter
Type
Description

v

QUANTITY

GC percentage (negative value disables GC)

Example

Returns

Type
Description

QUANTITY

Previous GC percentage setting

debug_freeOSMemory

Forces a garbage collection to free OS memory.

Parameters

None

Example

Returns

Type
Description

null

No return value

debug_gcStats

Returns garbage collection statistics.

Parameters

None

Example

Returns

Type
Description

Object

GC statistics object

debug_memStats

Returns detailed runtime memory statistics.

Parameters

None

Example

Returns

Type
Description

Object

Runtime memory statistics object

Last updated

Was this helpful?