curl --request POST \
--url https://monad-testnet.core.chainstack.com/9c5b265f20b3ea5df4f54f70eb74b800/ \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "debug_traceTransaction",
"params": [
"0xffdc2accc3eae1263a9f6acdaba3d401865822f22cb3194eece4641a4c7fa133",
{
"tracer": "callTracer"
}
]
}
'{
"jsonrpc": "<string>",
"id": 123,
"result": {}
}curl --request POST \
--url https://monad-testnet.core.chainstack.com/9c5b265f20b3ea5df4f54f70eb74b800/ \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "debug_traceTransaction",
"params": [
"0xffdc2accc3eae1263a9f6acdaba3d401865822f22cb3194eece4641a4c7fa133",
{
"tracer": "callTracer"
}
]
}
'{
"jsonrpc": "<string>",
"id": 123,
"result": {}
}-32602 Invalid params) if the parameter is omitted. Always include the trace options, even if empty ({}).{} is provided, Monad defaults to callTracer instead of struct logs, because Monad does not currently support opcode-level struct logs at the VM level.data — the 32-byte hash of the transaction to trace.object (optional) — the tracer options:
tracer — the tracer to use (e.g., callTracer, prestateTracer)tracerConfig — configuration options for the tracertimeout — timeout for the trace operationresult — the trace result object. The structure depends on the tracer used:
callTracer:
type — the call type (CALL, CREATE, etc.)from — sender addressto — recipient addressvalue — value transferredgas — gas providedgasUsed — gas usedinput — call dataoutput — return datacalls — nested callsdebug_traceTransaction code examplesconst { ethers } = require("ethers");
const provider = new ethers.JsonRpcProvider("CHAINSTACK_NODE_URL");
async function traceTransaction() {
const txHash = "0xffdc2accc3eae1263a9f6acdaba3d401865822f22cb3194eece4641a4c7fa133";
const trace = await provider.send("debug_traceTransaction", [
txHash,
{ tracer: "callTracer" }
]);
console.log("Transaction trace:", JSON.stringify(trace, null, 2));
}
traceTransaction();
debug_traceTransaction is debugging failed transactions to identify the exact point of failure, or analyzing the complete call graph of complex multi-contract interactions.Was this page helpful?