Data / RPC

Trace an EVM transaction

Top-level receipts hide internal calls, value moves and reverts. Tracing returns the full execution tree so you can see every sub-call. trace_* and debug_* are the heaviest reads (C2-C3) and rely on archive depth — both served from our own nodes.

Before you start
  • An API key (sk_live_...) with C3 trace access.
  • A transaction hash on eth.

1Call trace_transaction

POST trace_transaction to /v1/rpc/eth with the transaction hash. This returns the flat call trace. Trace methods bill at C2-C3.

curl https://api.1st-node.com/v1/rpc/eth \
  -H "Authorization: Bearer sk_live_..." \
  -d '{"method":"trace_transaction","params":["0x8f2a...c91b"]}'

2Or use debug_traceTransaction

For opcode-level or callTracer output, use debug_traceTransaction with a tracer config. This is C3 and is served from archive-depth nodes.

curl https://api.1st-node.com/v1/rpc/eth \
  -H "Authorization: Bearer sk_live_..." \
  -d '{"method":"debug_traceTransaction","params":["0x8f2a...c91b",{"tracer":"callTracer"}]}'

3Walk the call tree

Each frame lists from, to, value, input and any error. Recurse into calls to follow internal transfers and pinpoint where a revert originated.

> [
>   { "action": { "from": "0x1f3c...", "to": "0x53d2...9a1f", "value": "0x0", "input": "0xa9059cbb..." },
>     "result": { "gasUsed": "0x5208" }, "subtraces": 1 }
> ]

Frequently asked

Do I need an archive node to trace old transactions?

Not your own. trace_* and debug_* require archive depth, which we serve from our own archive nodes. You call standard JSON-RPC and pay per call.

Which tier do trace methods bill at?

Trace and debug reads are the heaviest, billed at C2-C3 depending on depth and tracer. Simple recent reads stay at C1.

Keep reading

Top up, get a key, ship.

Self-serve. Pay in crypto or card. Metered by credits — heavy primitives cost more, simple ones are cheap.

Get API key