debug_traceCall
Debug & Trace | Arbitrum
debug_traceCall | Arbitrum
Arbitrum API method that traces the execution of eth_call within the context of a specific block’s execution. debug_traceCall on Arbitrum via Chainstack.
POST
debug_traceCall
Arbitrum API method that traces the execution of eth_call within the context of a specific block’s execution. This method uses the final state of the parent block as its base and allows developers to trace the execution of a particular call without submitting an on-chain transaction.Documentation Index
Fetch the complete documentation index at: https://docs.chainstack.com/llms.txt
Use this file to discover all available pages before exploring further.
Learn how to deploy a node with the debug and trace API methods enabled.
Get your own node endpoint todayStart for free and get your app to production levels immediately. No credit card required.You can sign up with your GitHub, X, Google, or Microsoft account.
Parameters
-
object— the transaction call object:from— (optional) the address used to send the transaction.to— the address to which the transaction is directed, a wallet or a smart contract.gas— (optional) the maximum amount of gas that can be used by the transaction.gasPrice— (optional) the amount of gas price the sender is willing to pay for each gas unit in Wei.value— (optional) the value sent with this transaction, encoded as hexadecimal.data— (optional) additional data to be sent with the call, usually used to invoke functions from smart contracts.
-
quantity or tag— the block number in hex format or block tag (latest,earliest,pending,safe,finalized). -
object— (optional) an object identifying the type of tracer and its configuration:4byteTracer— tracer that captures the function signatures and call data sizes.callTracer— tracer that captures information on all call frames executed during a transaction.prestateTracer— tracer with two modes:prestateanddiff.
Find a complete list of available built-in tracers in the debug and trace overview.
disableStorage— when enabled, prevents tracing of storage changes.disableStack— when enabled, skips tracing of stack changes.enableMemory— whenfalse, prevents tracing of memory changes.enableReturnData— whenfalse, prevents tracing of return data.timeout— timeout period for JavaScript-based tracing calls. Default is5s.
When using one of the built-in tracers, the
enableMemory, disableStorage, disableStack, and enableReturnData settings will not have any effect.When no built-in tracer is selected, the response defaults to the Struct/opcode logger.Response types
callTracer response
object— thecallTracertraces object:from— the address of the sender who initiated the transaction.gas— the units of gas included in the transaction by the sender.gasUsed— the total used gas by the call, encoded as hexadecimal.to— the address of the recipient of the transaction. For contract creation transactions, this field isnull.input— the optional input data sent with the transaction.output— the return value of the call, encoded as a hexadecimal string.error— an error message in case the execution failed.revertReason— the reason why the transaction was reverted, returned by the smart contract if any.calls— a list of sub-calls made by the contract during the call, each represented as a nested call frame object.
4byteTracer response
object— the4byteTracertraces object:result— a map of the function signature, the call data size, and how many times the function was called.
prestateTracer response
object— theprestateTracertraces object:smart contract address— the address of the smart contract associated with the result.balance— the balance of the contract, expressed in Wei and encoded as a hexadecimal string.code— the bytecode of the contract, encoded as a hexadecimal string.nonce— the nonce of the account associated with the contract, represented as an unsigned integer.storage— a map of key-value pairs representing the storage slots of the contract.
debug_traceCall code examples
Use case
A practical use case for thedebug_traceCall method is to simulate and trace a smart contract function call without submitting an actual transaction. Developers can use this to inspect internal calls, verify expected behavior, and debug contract interactions before committing transactions on-chain. This is particularly useful for testing complex DeFi interactions on Arbitrum.Last modified on May 18, 2026