debug_* and trace_* namespaces give you opcode-level visibility into transaction execution. They’re used by block explorers, security tools, MEV searchers, and indexers that need internal-call data.
Both namespaces are served from https://rpc.goldrushdata.com/v1/{chain}.
Looking for a wallet’s internal transaction history? These methods are per-transaction and per-block primitives, not a wallet-history endpoint. Reconstructing one address’s internal transfers from raw traces means scanning a block range twice with
trace_filter (once by fromAddress, once by toAddress) - and on chains where trace_filter isn’t available (e.g. OP-stack L2s) falling back to debug_traceBlockByNumber block-by-block. For decoded, wallet-level internal transfers across chains with no client-side call-tree walking, use the Foundational API’s with-internal param instead.debug_* methods (Geth-style)
| Method | Summary | Rate |
|---|---|---|
debug_traceTransaction | Step-by-step EVM trace of a mined transaction. | 0.015 |
debug_traceCall | Trace an eth_call without producing a transaction. | 0.015 |
debug_traceBlockByHash | Trace every transaction in a block (by hash). | 0.015 |
debug_traceBlockByNumber | Trace every transaction in a block (by number). | 0.015 |
callTracer (call graph), prestateTracer (state diff), 4byteTracer (4-byte selector frequency), or omit for the default opcode-level trace.
trace_* methods (Parity-style)
| Method | Summary | Rate |
|---|---|---|
trace_transaction | Parity trace of a mined transaction. | 0.015 |
trace_block | Parity traces of every transaction in a block. | 0.015 |
trace_filter | Parity traces matching a filter (sender, recipient, range). | 0.015 |
trace_call | Parity trace of an eth_call. | 0.015 |
trace_callMany | Parity traces for a sequence of calls executed in order. | 0.015 |
trace_rawTransaction | Parity trace of a signed, unmined raw transaction. | 0.015 |
trace_replayTransaction | Replay a mined transaction and return traces, vmTrace, and state diff. | 0.015 |
trace_replayBlockTransactions | Replay every transaction in a block with selectable trace outputs. | 0.015 |
trace_get | Fetch a specific sub-trace from a mined transaction by index path. | 0.015 |
trace_* is the canonical Erigon/Parity format. Prefer it when integrating with tooling that expects Erigon traces (e.g. block-explorer pipelines).
Per-chain availability
Trace and debug support depends on what the upstream node software exposes. Erigon and Reth both exposetrace_* natively, while Geth-based upstreams expose debug_*. GoldRush surfaces whichever is available, and falls back to a normalized translation where one namespace is missing.
| Chain | debug_* | trace_* | Archive depth |
|---|---|---|---|
Ethereum (eth-mainnet) | ✅ | ✅ | Genesis |
Polygon (matic-mainnet) | ✅ | ✅ | Genesis |
BNB Smart Chain (bsc-mainnet) | ✅ | ✅ | Genesis |
Arbitrum (arbitrum-mainnet) | ✅ | ✅ | Nitro genesis |
Base (base-mainnet) | ✅ | ✅ | Genesis |
HyperEVM (hyperevm-mainnet) | ✅ | ✅ | Genesis |
MegaETH (megaeth-mainnet) | ⚠️ rolling | ⚠️ rolling | Last 30 days |
Monad (monad-mainnet) | ⚠️ rolling | ⚠️ rolling | Last 30 days |
Tempo (tempo-mainnet) | ⚠️ rolling | ⚠️ rolling | Last 7 days |
Solana
Solana does not expose thedebug_* or trace_* namespaces; they are EVM-specific. For transaction introspection on Solana, use:
| Goal | Solana method |
|---|---|
| Inspect a confirmed transaction’s logs, balances, and compute units | getTransaction |
| Dry-run a transaction and read its logs and state changes before sending | simulateTransaction |
| Stream logs for a program or account in real time | logsSubscribe |
simulateTransaction is the closest analogue to debug_traceCall / trace_call: it returns the program logs, the error (if any), compute units consumed, and optionally post-simulation account state, without broadcasting the transaction.
Pricing
debug_* and trace_* are heavier than standard eth_* reads. See pricing for full rates.
debug_traceTransaction
Most-used debug method.
trace_transaction
Parity-style equivalent.