curl --request POST \
--url https://monad-testnet.core.chainstack.com/9c5b265f20b3ea5df4f54f70eb74b800/ \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "debug_traceBlockByHash",
"params": [
"0x1229782398dacbea4db9c732db74aacbc7f919800ab82c79daefbbcee07a86de",
{
"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_traceBlockByHash",
"params": [
"0x1229782398dacbea4db9c732db74aacbc7f919800ab82c79daefbbcee07a86de",
{
"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 block.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 — an array of trace results, one for each transaction in the block. The structure of each trace depends on the tracer used.debug_traceBlockByHash code examplesconst { ethers } = require("ethers");
const provider = new ethers.JsonRpcProvider("CHAINSTACK_NODE_URL");
async function traceBlock() {
const blockHash = "0x1229782398dacbea4db9c732db74aacbc7f919800ab82c79daefbbcee07a86de";
const traces = await provider.send("debug_traceBlockByHash", [
blockHash,
{ tracer: "callTracer" }
]);
console.log(`Traced ${traces.length} transactions`);
traces.forEach((trace, i) => {
console.log(`Transaction ${i}:`, trace.result?.type || 'unknown');
});
}
traceBlock();
debug_traceBlockByHash is investigating specific blocks identified through external sources (like block explorers or incident reports) to understand the exact execution flow of all transactions they contain.Was this page helpful?