Transactions API
The full call trace of one transaction
Every call one transaction executed, in order — calls, delegatecalls, staticcalls, creates and self-destructs — with gas, call data, return data and which failed and why. RHC, ETH, OP and SCROLL.
/api/external/transaction-analysis/transaction-trace/{chain}/{hash}What it returns
The call trace of one transaction as a flat list in execution order, depth first: the transaction's own call first (traceAddress [] and depth 0), then every call it made below it — call, delegatecall, staticcall, callcode, create, create2 and selfdestruct — each with its gas, gas used, call data, return data and, when it failed, why. traceAddress is the path in the call tree ([0, 2] is the third call made by the first call). On a create, to is the contract created and input its init code; on a selfdestruct, from is the contract destroyed and to who received its balance. Values are wei and gas as decimal strings. An unknown transaction hash returns 404. RHC, ETH, OP and SCROLL.
Chains
- Ethereum ETH
- Robinhood Chain RHC
- Optimism OP
- Scroll SCROLL
Request
Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.
curl -H "x-dex-data-key: $DEXDATA_API_KEY" \ "https://api.dexdata.io/api/external/transaction-analysis/transaction-trace/ETH/<hash>"
| Parameter | Description |
|---|---|
chainpath · string · required | RHC, ETH, OP or SCROLL; every other chain returns 400, because no wired source traces a transaction for it. |
hashpath · string · required | The transaction hash: 0x followed by 64 hexadecimal characters. Not a Solana signature (base58) — Solana is not served by this resource. |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
hash | string | The transaction asked about, lowercase. |
calls | object[] | Every call frame in execution order, depth first; the first is the transaction's own call. |
calls[].traceAddress | integer[] | The path in the call tree: [] is the transaction's own call, [0, 2] the third call made by the first. |
calls[].depth | integer | The length of traceAddress. |
calls[].type | string | The EVM call kind. |
calls[].from | string | The caller, lowercase; on a selfdestruct, the contract destroyed. |
calls[].to | string | null | The callee, lowercase; on a create the contract created, on a selfdestruct who received its balance. null when there is none (a create that failed). |
calls[].valueWei | string | null | Native coin sent, wei. Always null on a delegatecall or staticcall, which cannot send value of their own. |
calls[].gas | string | null | Gas the call was given. null on a selfdestruct. |
calls[].gasUsed | string | null | Gas the call used. null when not reported. |
calls[].input | string | null | Call data, lowercase hex; on a create, the init code. |
calls[].output | string | null | Return data, lowercase hex; on a create, the deployed code. null when there is none. |
calls[].error | string | null | Why the call failed ("execution reverted", "Reverted", "out of gas", …); null on success. |
Start building with DexData today
Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.
Get a free API key