trace_replayBlockTransactions
Polygon / https://triport.io/polygon
Minimum tier: Free
Last updated:
trace_replayBlockTransactions re-executes all transactions in a single
block against the historical state at that block and returns one result entry
per transaction. Each entry can carry up to three views of what happened: the
Parity-style call trace (the tree of execution frames flattened into an array),
the stateDiff (every storage slot, balance, nonce, and code change the
transaction made), and the low-level vmTrace. Which views you get back is
controlled entirely by the second parameter — you ask for exactly the modes you
need.
This is the heaviest method in the entire Polygon surface. A full state diff
plus call trace for every transaction in a busy Polygon block (typically
50–150 transactions) can run to tens of megabytes of JSON. Request it only when
you genuinely need block-wide replay — for MEV / arbitrage indexing, full DeFi
internal-transfer reconstruction, or forensic audits where you must see both the
execution path and the resulting state for the whole block at once. If you only
need the call tree (and not state diffs), prefer the lighter
trace_block; for a single transaction use
trace_transaction.
It belongs to the premium Parity polygon_trace category and requires Pro
tier. It is rate limited per tier (3 rps on Pro, 10 rps on Business) with a
short burst allowance — there is no daily quota. Because each response is so
large, the practical bottleneck is bandwidth rather than RPS: keep concurrency
to ≤4 in-flight requests to avoid bandwidth contention and request
queueing, and expect multi-second latency per call.
Parameters
This method takes no parameters.
Returns
| Field | Type |
|---|---|
| result | object |
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_replayBlockTransactions","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_replayBlockTransactions",
"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_replayBlockTransactions","params":[]},
)
print(resp.json())Usage
- Transport: HTTP (JSON-RPC).
- Chain: Polygon.
- Clusters: mainnet.
- Credit cost: 5 per call.
FAQ
- What does trace_replayBlockTransactions 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_replayBlockTransactions cost?
- trace_replayBlockTransactions costs 5 credit(s) per call on Triport by default.
- Is trace_replayBlockTransactions available over WebSocket?
- trace_replayBlockTransactions is an HTTP JSON-RPC method.