Ethereum
¿Listo para usar esto en producción?
El plan gratuito cubre proyectos personales. El pago por uso escala sin necesidad de tarjeta.
Ethereum
El plan gratuito cubre proyectos personales. El pago por uso escala sin necesidad de tarjeta.
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.| # | Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|---|
| 1 | transaction | object | Sí | Call object: `from?`, `to`, `gas?`, `gasPrice?`, `value?`, `data?`. |
| 2 | traceTypes | array | Sí | Array of trace types to include: `"trace"` (call tree), `"vmTrace"` (opcode-level), `"stateDiff"` (storage/balance diffs). |
| 3 | blockParameter | string | No | Block state against which to simulate the call.Predeterminado: latest |
| Tipo | Descripción |
|---|---|
| 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.
| Código | Mensaje | Causa |
|---|---|---|
-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.Parámetros
Call object: `from?`, `to`, `gas?`, `gasPrice?`, `value?`, `data?`.
["trace"] | ["trace","vmTrace","stateDiff"] — at least one required
hex block number or "latest" | "earliest" | "pending"