> For the complete documentation index, see [llms.txt](https://docs.megaeth.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.megaeth.com/developer-docs/rpc/reference/debug_traceblockbyhash.md).

# debug\_traceBlockByHash

## Summary

Replays a block selected by hash and returns one execution trace per transaction. The public MegaETH endpoint supports this standard debug method.

## Parameters

| Position | Name          | Type             | Required                  | Description                                                                   |
| -------- | ------------- | ---------------- | ------------------------- | ----------------------------------------------------------------------------- |
| `0`      | `blockHash`   | `DATA`, 32 bytes | Yes                       | Hash of the block to replay.                                                  |
| `1`      | `traceConfig` | object           | Yes on the public gateway | Tracer selection and tracer-specific options. Use `{}` for the opcode tracer. |

Common `traceConfig` fields include `tracer`, `tracerConfig`, and `timeout`. For example, set `tracer` to `"callTracer"` for a nested call frame instead of opcode-level `structLogs`.

## Result

The result is an array ordered by transaction index. Each entry contains `txHash` and either `result` or `error`; the shape of `result` depends on the selected tracer.

## Comparison with Ethereum Standard JSON-RPC

### Ethereum Standard

The method replays all transactions in the selected block against its parent state. The genesis block cannot be replayed because it has no parent state.

### MegaETH Node Behavior

MegaETH uses the standard geth-compatible tracer options and returns a trace paired with each transaction hash. System transactions may therefore appear in block traces.

### MegaETH Public Gateway

The public gateway streams trace responses because they can be large. It requires two positional parameters and supports `callTracer`.

## Errors

The `| Scope |` column distinguishes method failures from gateway policy errors.

| Code     | Scope            | Message           | When it happens                                                          |
| -------- | ---------------- | ----------------- | ------------------------------------------------------------------------ |
| `-32602` | Method           | Invalid params    | Either positional parameter is missing or malformed.                     |
| `-32000` | Method           | Server error      | The block is unknown, its parent state is unavailable, or tracing fails. |
| `-32099` | Transport/policy | Payload too large | The request exceeds the public endpoint body limit.                      |

## Examples

Endpoint: `https://mainnet.megaeth.com/rpc`

Capture date: July 24, 2026

Outcome: success

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "debug_traceBlockByHash",
  "params": [
    "0x57804c21b747137075b29ce153b4f559345a3624273660c87e81bd57e7cbbc3d",
    { "tracer": "callTracer" }
  ]
}
```

The nested call frame is abbreviated below.

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": [
    {
      "txHash": "0xecc262f36652019b75f4cb7315ff19f430fc92efd5a8048948400407d55fd904",
      "result": {
        "from": "0xdeaddeaddeaddeaddeaddeaddeaddeaddead0001",
        "to": "0x4200000000000000000000000000000000000015",
        "gasUsed": "0xb9d56c",
        "type": "CALL"
      }
    }
  ]
}
```

## Sources

* Spec: [Ethereum Execution APIs, `src/debug/trace.yaml`](https://github.com/ethereum/execution-apis/blob/50d1e5e0b6f5a5046e45421e5c84497ab6e55e6c/src/debug/trace.yaml)
* Probe: MegaETH Mainnet public endpoint, July 24, 2026


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.megaeth.com/developer-docs/rpc/reference/debug_traceblockbyhash.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
