Tracing
Trace and debug methods run on chains whose serving clients expose those namespaces and are included in every plan, at the same price as any other method.
What's included
The whole trace_* namespace, a subset of debug_* (below), and ots_* and erigon_* methods, each on the chains whose node client implements the family (per-chain coverage below). There is no tracing add-on and no separate tier, every plan, including Free, can trace.
Supported debug_ methods
The gateway allows exactly these debug_ methods:
- everything matching
debug_trace*:debug_traceTransaction,debug_traceCall,debug_traceBlockByNumber,debug_traceBlockByHash, … - everything matching
debug_getRaw*:debug_getRawBlock,debug_getRawTransaction,debug_getRawReceipts, … debug_storageRangeAtdebug_getBadBlocksdebug_accountRangedebug_getModifiedAccountsByNumberanddebug_getModifiedAccountsByHash
Every other debug_ method, setters, profiling, node control, returns JSON-RPC -32601 and is never billed. See the error reference.
Supported chains
Method support is independent of full/archive coverage. The live catalog below is authoritative for each chain:
| Network | Chain ID | Debug | Trace |
|---|---|---|---|
| Ethereum | 1 | Yes | Yes |
| BNB Smart Chain | 56 | Yes | Yes |
| Avalanche C-Chain | 43114 | Yes | No |
| Base | 8453 | Yes | Yes |
| Arbitrum One | 42161 | Yes | No |
| Optimism | 10 | Yes | Yes |
| Robinhood Chain | 4663 | Yes | No |
| Polygon PoS | 137 | Yes | No |
| Sonic | 146 | Yes | Yes |
| Linea | 59144 | Yes | No |
| Scroll | 534352 | Yes | No |
| Gnosis | 100 | Yes | Yes |
| Celo | 42220 | Yes | No |
| Blast | 81457 | Yes | No |
| Mantle | 5000 | Yes | No |
| Manta Pacific | 169 | Yes | No |
| Boba Network | 288 | Yes | No |
| Berachain | 80094 | Yes | Yes |
| Chiliz | 88888 | Yes | No |
| Ink | 57073 | Yes | Yes |
| IoTeX | 4689 | Yes | No |
| Lisk | 1135 | Yes | Yes |
| MegaETH | 4326 | Yes | Yes |
| Monad | 143 | No | No |
| opBNB | 204 | No | No |
| Immutable zkEVM | 13371 | Yes | No |
| PulseChain | 369 | Yes | No |
| Ronin | 2020 | Yes | Yes |
| Cronos | 25 | Yes | No |
| Stable | 988 | Yes | No |
| Tempo | 4217 | Yes | Yes |
| Unichain | 130 | Yes | No |
| Viction | 88 | Yes | No |
| World Chain | 480 | Yes | Yes |
| XDC Network | 50 | Yes | No |
| ZetaChain | 7000 | No | No |
| Zora | 7777777 | Yes | No |
| Flow EVM | 747 | Yes | No |
| Ethereum Sepolia | 11155111 | Yes | Yes |
| Base Sepolia | 84532 | Yes | Yes |
| Arbitrum Sepolia | 421614 | Yes | No |
| Arc Testnet | 5042002 | No | No |
| Optimism Sepolia | 11155420 | Yes | Yes |
| Polygon Amoy | 80002 | Yes | No |
| BNB Smart Chain Testnet | 97 | No | No |
| Gnosis Chiado | 10200 | Yes | Yes |
| Berachain Bepolia | 80069 | Yes | Yes |
| Chiliz Spicy | 88882 | Yes | No |
| Flow EVM Testnet | 545 | Yes | No |
| Lisk Sepolia | 4202 | Yes | Yes |
| Mantle Sepolia | 5003 | Yes | No |
| Monad Testnet | 10143 | No | No |
| opBNB Testnet | 5611 | Yes | No |
| PulseChain Testnet v4 | 943 | Yes | No |
| Ronin Saigon | 202601 | Yes | Yes |
| Unichain Sepolia | 1301 | Yes | No |
| Zora Sepolia | 999999999 | Yes | No |
Per-chain coverage is on the networks page.
Timeouts and retries
Trace and debug methods get a 45s server-side budget (standard methods get 30s). A failed attempt can retry another eligible upstream when one is available within that budget. Traces are not hedged, running every multi-second trace twice would halve node capacity.
When the budget is exhausted you get HTTP 504. Set your client timeout to 60s or more so the server-side budget, not your client, decides when a heavy trace fails. A trace ending in 504 is not billed and its quota reservation is refunded.
Cost
Every completed trace or HTTP 200 JSON-RPC error is 1 response. A debug_traceTransaction that returns megabytes of call frames costs the same as eth_blockNumber. HTTP 5xx failures, including 504, are free. See pricing.
Examples
debug_traceTransaction with the callTracer, the call tree of a transaction:
curl https://rpc.solidrpc.io/YOUR_API_KEY/evm/1 \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"debug_traceTransaction","params":["0xTRANSACTION_HASH",{"tracer":"callTracer"}],"id":1}'trace_block, every trace in a block:
curl https://rpc.solidrpc.io/YOUR_API_KEY/evm/1 \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"trace_block","params":["latest"],"id":1}'Method availability varies by client
Different chains run different node clients, and not every client implements every namespace, some implement debug_trace* but not trace_*. When a node does not implement a method, its own -32601 passes through to you unchanged. If you depend on a specific method on a specific chain, ask us before you build on it.