Ethereum
准备好在生产环境中调用了吗?
免费套餐涵盖个人项目。按量付费,无需绑卡即可扩展。
Ethereum
免费套餐涵盖个人项目。按量付费,无需绑卡即可扩展。
trace_call runs a transaction through the EVM against the state of a chosen Ethereum block, then hands you the trace without ever broadcasting anything or spending a wei of ETH. Nothing is mined, no nonce moves. You describe the call you're curious about, pick which views you want back, and the node replays it as if it had executed at that block. On Ethereum mainnet (chain ID 1) this is the OpenEthereum/Parity-flavour simulation: it can return a flat call-tree trace, an opcode-level vmTrace, and a stateDiff showing which account balances, nonces, contract code, and storage entries the call would rewrite. Send the request to https://ethereum.therpc.io/YOUR_API_KEY and supply at least one trace type alongside your call object.
["trace"] and inspect the nested CALLs to confirm a Uniswap swap routes the way you expect.["stateDiff"] and check that a prospective transaction only modifies the slots it should, catching an approval or balance bug before it reaches the mempool.| # | 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|---|
| 1 | transaction | object | 是 | Call object: `from?`, `to`, `gas?`, `gasPrice?`, `value?`, `data?`. |
| 2 | traceTypes | array | 是 | Array of trace types to include: `"trace"` (call tree), `"vmTrace"` (opcode-level), `"stateDiff"` (storage/balance diffs). |
| 3 | blockParameter | string | 否 | Block state against which to simulate the call.默认值: latest |
| 类型 | 描述 |
|---|---|
| object | `{output, trace?, stateDiff?, vmTrace?}` — `trace` is a flat call-tree array, `stateDiff` maps each touched address to its balance/nonce/code/storage diffs, `vmTrace` provides opcode-level detail (Parity-format). |
Try it live in the Ethereum playground.
| 错误码 | 错误信息 | 原因 |
|---|---|---|
-32601 | Method not found | trace namespace not enabled or client does not support trace_call. |
-32602 | Invalid params | Transaction object missing required fields, traceTypes array is empty or contains unrecognized values, or blockParameter is invalid. |
-32000 | execution reverted | Simulated call reverted; partial trace is still returned. |
trace, vmTrace, stateDiff) inflates the response fast, especially for a call into a deep DeFi protocol. Request only the views you'll actually read.vmTrace is the Parity opcode format, not Geth's structLog. If you've been parsing debug_traceCall output, the field layout here is different and your parser won't carry over unchanged.参数
Call object: `from?`, `to`, `gas?`, `gasPrice?`, `value?`, `data?`.
["trace"] | ["trace","vmTrace","stateDiff"] — at least one required
hex block number or "latest" | "earliest" | "pending"