TriportRPC

trace_block

Polygon / https://triport.io/polygon

Minimum tier: Free

Polygon method guide

Last updated:

trace_block returns the full Parity-style execution trace for all transactions in one block. The result is a flat array of trace frames: every external call and every internal call (call, delegatecall, staticcall, create, suicide) produced while the block executed, tagged with the transaction it belongs to and its position in the call tree. This is the whole-block counterpart to trace_transaction, which traces a single transaction.

Use it when you need the complete internal-execution picture of a block rather than just its receipts. Typical use cases:

  • MEV indexing — reconstruct the full execution path of each transaction to detect sandwiches, atomic arbitrage, and JIT liquidity.
  • DeFi internal-transfer tracking — follow transferFrom and value moves between contracts that never appear as top-level transactions.
  • Compliance / forensic auditing — produce a verifiable execution trail for a transaction inside its block context.

This is a premium trace method: it requires the Pro tier or above and is rate limited per tier (3 RPS on Pro, 10 RPS on Business) with a short burst allowance. There is no daily quota. Tracing a whole block is heavy: a typical Polygon block holds ~50–150 transactions, each expanding into several to many trace frames, so a single response is commonly 100 KB–2 MB and latency runs into the seconds. Keep concurrency low and prefer recent or specific blocks over wide historical sweeps.

Trace-shape note. Polygon runs the Bor execution layer, whose trace output can differ slightly from a stock Geth/Parity node — most visibly in how a frame is typed ("call" vs "delegatecall" and the other call variants). Write your indexer to accept both type spellings rather than matching one exact string.

Parameters

This method takes no parameters.

Returns

trace_block return value
FieldType
resultobject

Examples

curl https://triport.io/polygon \
  -X POST -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <api-key>' \
  -d '{"jsonrpc":"2.0","id":1,"method":"trace_block","params":[]}'
const res = await fetch("https://triport.io/polygon", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: "Bearer <api-key>" },
  body: JSON.stringify({
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_block",
  "params": []
}),
});
const data = await res.json();
import requests
resp = requests.post(
    "https://triport.io/polygon",
    headers={"Authorization": "Bearer <api-key>"},
    json={"jsonrpc":"2.0","id":1,"method":"trace_block","params":[]},
)
print(resp.json())

Usage

  1. Transport: HTTP (JSON-RPC).
  2. Chain: Polygon.
  3. Clusters: mainnet.
  4. Credit cost: 5 per call.

FAQ

What does trace_block do?
Как это работает у нас (2026-07-26). Метод собирается на нашей стороне из geth-трейсера debug_ и приводится к parity-формату. Причина: bor — форк geth, parity-namespace trace_ в нём отсутствует, а внешний premium-канал (the RPC provider), через который метод отдавался раньше, закрыл trace_*. Схема ответа сверяется с живым parity-ответом, а не с документацией. Подробности и границы — docs/polygon-trace-shim/PLAN.md.
How many credits does trace_block cost?
trace_block costs 5 credit(s) per call on Triport by default.
Is trace_block available over WebSocket?
trace_block is an HTTP JSON-RPC method.