> ## Documentation Index
> Fetch the complete documentation index at: https://goldrush.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# debug_* and trace_*

> Opcode-level execution traces and Parity-style call traces on GoldRush JSON-RPC.

The `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}`.

<Note>
  **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](/resources/traces-support) instead.
</Note>

## debug\_\* methods (Geth-style)

| Method                                                                                  | Summary                                              |  Rate |
| --------------------------------------------------------------------------------------- | ---------------------------------------------------- | ----: |
| [`debug_traceTransaction`](/api-reference/json-rpc/ethereum/debug-tracetransaction)     | Step-by-step EVM trace of a mined transaction.       | 0.015 |
| [`debug_traceCall`](/api-reference/json-rpc/ethereum/debug-tracecall)                   | Trace an `eth_call` without producing a transaction. | 0.015 |
| [`debug_traceBlockByHash`](/api-reference/json-rpc/ethereum/debug-traceblockbyhash)     | Trace every transaction in a block (by hash).        | 0.015 |
| [`debug_traceBlockByNumber`](/api-reference/json-rpc/ethereum/debug-traceblockbynumber) | Trace every transaction in a block (by number).      | 0.015 |

All four accept a tracer config:

```json theme={null}
{
  "tracer": "callTracer",
  "tracerConfig": { "withLog": true },
  "timeout": "30s"
}
```

Common tracer values: `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`](/api-reference/json-rpc/ethereum/trace-transaction)                         | Parity trace of a mined transaction.                                   | 0.015 |
| [`trace_block`](/api-reference/json-rpc/ethereum/trace-block)                                     | Parity traces of every transaction in a block.                         | 0.015 |
| [`trace_filter`](/api-reference/json-rpc/ethereum/trace-filter)                                   | Parity traces matching a filter (sender, recipient, range).            | 0.015 |
| [`trace_call`](/api-reference/json-rpc/ethereum/trace-call)                                       | Parity trace of an `eth_call`.                                         | 0.015 |
| [`trace_callMany`](/api-reference/json-rpc/ethereum/trace-callmany)                               | Parity traces for a sequence of calls executed in order.               | 0.015 |
| [`trace_rawTransaction`](/api-reference/json-rpc/ethereum/trace-rawtransaction)                   | Parity trace of a signed, unmined raw transaction.                     | 0.015 |
| [`trace_replayTransaction`](/api-reference/json-rpc/ethereum/trace-replaytransaction)             | Replay a mined transaction and return traces, vmTrace, and state diff. | 0.015 |
| [`trace_replayBlockTransactions`](/api-reference/json-rpc/ethereum/trace-replayblocktransactions) | Replay every transaction in a block with selectable trace outputs.     | 0.015 |
| [`trace_get`](/api-reference/json-rpc/ethereum/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 expose `trace_*` 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   |

⚠️ "Rolling" means the upstream archive window slides forward over time. For deeper history on these chains, contact GoldRush support to discuss dedicated archive nodes.

## Solana

Solana does not expose the `debug_*` 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`](/api-reference/json-rpc/solana/gettransaction)           |
| Dry-run a transaction and read its logs and state changes before sending | [`simulateTransaction`](/api-reference/json-rpc/solana/simulatetransaction) |
| Stream logs for a program or account in real time                        | [`logsSubscribe`](/api-reference/json-rpc/solana/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](/goldrush-json-rpc/pricing) for full rates.

<CardGroup cols={2}>
  <Card title="debug_traceTransaction" href="/api-reference/json-rpc/ethereum/debug-tracetransaction" icon="bug">
    Most-used debug method.
  </Card>

  <Card title="trace_transaction" href="/api-reference/json-rpc/ethereum/trace-transaction" icon="diagram-project">
    Parity-style equivalent.
  </Card>
</CardGroup>
