debug_traceCall
Traces a contract call without creating a transaction on Optimism Layer 2.
Parameters
-
Call Object
from
- Sender address (optional)to
- Contract addressgas
- Gas limit (optional)gasPrice
- Gas price (optional)value
- Value (optional)data
- Call data
-
Block Parameter -
QUANTITY|TAG
-
Trace Configuration -
OBJECT
(optional)
Implementation Examples
- cURL
- JavaScript
curl -X POST https://api-optimism-mainnet-archive.n.dwellir.com/YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "debug_traceCall",
"params": [
{
"to": "0x4200000000000000000000000000000000000006",
"data": "0x70a08231000000000000000000000000742d35cc6634c0532925a3b844bc9e7595f0beb"
},
"latest",
{"tracer": "callTracer"}
],
"id": 1
}'
// Trace WETH balanceOf call on Optimism
const response = await fetch('https://api-optimism-mainnet-archive.n.dwellir.com/YOUR_API_KEY', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
method: 'debug_traceCall',
params: [
{
to: "0x4200000000000000000000000000000000000006", // WETH on Optimism
data: "0x70a08231000000000000000000000000742d35cc6634c0532925a3b844bc9e7595f0beb"
},
"latest",
{tracer: "callTracer"}
],
id: 1
})
});
const data = await response.json();
console.log('Call trace:', data.result);
Response Example
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"type": "CALL",
"from": "0x0000000000000000000000000000000000000000",
"to": "0x4200000000000000000000000000000000000006",
"gasUsed": "0x2329",
"output": "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000"
}
}
Need help? Contact our support team or check the Optimism documentation.