Skip to navigation

debug_traceCall

Availability: Access to the debug namespace depends on your endpoint’s method allowlist. Starting August 4, 2026 at 12:00 PM PST, all debug_* methods require an API key appended to the RPC URL — unauthenticated calls are rejected. If you receive -32601 method not found or method not supported errors, contact Conduit support to confirm your endpoint’s configuration.

Traces a call against a particular block, returning detailed execution information per the chosen tracer. Useful for inspecting call traces, reconstructing state changes, or debugging reverts.

The tracer choice in the config object controls the result shape (callTracer returns a nested call tree; prestateTracer returns a pre/post state diff; noopTracer returns nothing; etc.). When tracer is omitted, Geth defaults to the structured-opcode tracer (very verbose; not usually what you want).

⚡ Compute Units: 300 CU

Request

This endpoint expects an object.
transactionobjectRequired

Transaction call object — same shape as eth_call.

blockIdentifierenum or stringOptional

Block number, tag, or hash. Defaults to "latest" when omitted (per reth; geth requires it — we follow the looser).

configobjectOptional

Trace configuration. Shared shape across all debug_trace* methods; see the TraceConfig schema.

Response

Tracer-dependent. For callTracer the result is a CallTrace object describing the outermost call and its nested sub-calls. For other tracers see the corresponding tracer's documentation.

CallTraceobject

Nested call-tree entry returned by the callTracer. The top-level object describes the outermost call; each entry's calls array contains sub-calls in execution order.

OR
map from strings to any

Non-callTracer result shape (varies by tracer).