debug_traceCall
Traces a call without creating a transaction on Immutable.
Archive Node Required
This method requires an archive node. It is not available on full nodes.
Use Cases#
- Transaction simulation - Debug before sending
- Gas analysis - Analyze gas usage per opcode
- Contract debugging - Step through execution for Web3 gaming (Gods Unchained, RavenQuest), gaming NFTs with enforced royalties, and cross-chain game assets
Parameters#
| Parameter | Type | Required | Description |
|---|---|---|---|
call | Object | Yes | Call object (same as eth_call) |
blockNumber | QUANTITY|TAG | Yes | Block number or tag |
tracerConfig | Object | No | Tracer configuration |
Request#
{
"jsonrpc": "2.0",
"method": "debug_traceCall",
"params": [
{
"to": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
"data": "0x70a08231000000000000000000000000742d35Cc6634C0532925a3b844Bc9e7595f0bEb"
},
"latest",
{}
],
"id": 1
}
Code Examples#
- cURL
- JavaScript
curl -X POST https://api-immutable-zkevm-mainnet.n.dwellir.com/YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "debug_traceCall",
"params": [
{"to": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb", "data": "0x70a08231000000000000000000000000742d35Cc6634C0532925a3b844Bc9e7595f0bEb"},
"latest",
{"tracer": "callTracer"}
],
"id": 1
}'
import { JsonRpcProvider } from 'ethers';
const provider = new JsonRpcProvider('https://api-immutable-zkevm-mainnet.n.dwellir.com/YOUR_API_KEY');
const trace = await provider.send('debug_traceCall', [
{ to: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb', data: '0x70a08231000000000000000000000000742d35Cc6634C0532925a3b844Bc9e7595f0bEb' },
'latest',
{ tracer: 'callTracer' }
]);
console.log('Trace:', trace);
Related Methods#
eth_call- Execute call without tracedebug_traceTransaction- Trace actual transaction