Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/BlockRazorinc/docs_en/llms.txt

Use this file to discover all available pages before exploring further.

The eth_traceBundle method returns a detailed execution trace for a bundle that was previously submitted to BlockRazor’s BSC Block Builder via eth_sendBundle. Using the bundleHash returned at submission time, you can inspect exactly how each transaction in the bundle executed: which opcodes ran, how much gas was consumed at each step, which events were emitted, and whether any transaction encountered a revert and why. This level of visibility is essential for debugging failed bundles, verifying profitability, and auditing execution paths post-inclusion.
Bundle tracing via eth_traceBundle is available to registered users on BSC. See Pricing for full subscription tier details.

Endpoint

POST https://builder.blockrazor.io/bsc
Authentication is performed via a Bearer token passed in the Authorization header.

Request

The request follows the standard JSON-RPC 2.0 envelope. The single element of params is a trace request object containing the bundle hash to look up.

Trace Parameters

bundleHash
string
required
The hash of the bundle to trace, as returned by eth_sendBundle at submission time. This uniquely identifies the bundle within BlockRazor’s Block Builder and is used to retrieve the stored execution trace.

Code Examples

curl -X POST https://builder.blockrazor.io/bsc \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
  -d '{
    "jsonrpc": "2.0",
    "method": "eth_traceBundle",
    "params": [
      {
        "bundleHash": "0x7f3a9c2e1d4b..."
      }
    ],
    "id": 1
  }'

Response

The response contains an array of trace objects—one per transaction in the original bundle—each containing full execution detail.
result
object[]
An array of per-transaction trace objects in the same order as the original bundle’s txs array.
Response Example
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": [
    {
      "txHash": "0xabc123def456...",
      "blockNumber": "0xE4E1C0",
      "gasUsed": 84200,
      "status": "success",
      "logs": [
        {
          "address": "0xContractAddress...",
          "topics": [
            "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
            "0x000000000000000000000000SenderAddress",
            "0x000000000000000000000000ReceiverAddress"
          ],
          "data": "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000"
        }
      ],
      "calls": [
        {
          "type": "CALL",
          "from": "0xYourAddress...",
          "to": "0xRouterAddress...",
          "value": "0x0",
          "gasUsed": 72000,
          "input": "0x38ed1739...",
          "output": "0x00000000..."
        }
      ]
    },
    {
      "txHash": "0xfed987cba321...",
      "blockNumber": "0xE4E1C0",
      "gasUsed": 24100,
      "status": "reverted",
      "revertReason": "execution reverted: insufficient output amount",
      "logs": [],
      "calls": []
    }
  ]
}

Using Trace Data Effectively

Trace data from eth_traceBundle provides the ground truth of what happened on-chain, making it the authoritative source for post-execution analysis.
eth_traceBundle only returns data for bundles submitted through BlockRazor’s Block Builder. Bundles submitted via the Bundle endpoint (bundle.blockrazor.io) are not traceable through this method—use it in conjunction with eth_sendBundle on the builder.blockrazor.io endpoint.
Cross-reference gasUsed in the trace with the values returned by eth_callBundle simulation. Significant discrepancies indicate that chain state changed between simulation and block inclusion, which can reveal why a bundle behaved differently than expected.

Build docs developers (and LLMs) love