TriportRPC

debug_traceCall

Polygon / https://triport.io/polygon

Minimum tier: Free

Polygon method guide

Last updated:

debug_traceCall executes a transaction-shaped call object against the EVM at a chosen block, exactly like eth_call, but instead of returning only the final return data it returns the complete tree of execution frames the call produced. Because nothing is signed or broadcast, you can use it to dry-run a swap, simulate a potential MEV opportunity, or reproduce a revert and inspect every internal call along the way.

This is the Geth-style tracer. It is the lighter, faster counterpart to the Parity-style trace_call: it returns a single nested call object ({type, from, to, gas, gasUsed, value, input, output, calls[], error?}) rather than a flat array of trace/stateDiff/vmTrace records. The output schemas differ — if you index Polygon execution with both, your decoder must handle each shape separately.

Typical uses:

  • Pre-confirmation analysis — simulate a candidate transaction and read the full execution path (including internal token transfers) before deciding to send it.
  • Revert debugging — when an eth_call fails opaquely, trace it to see which sub-call reverted and with what error.
  • Forensics — re-run a call against a past block to reconstruct behavior.

Both debug_* trace methods on Polygon belong to the premium polygon_trace category and require Pro tier. debug_traceCall is the cheapest of them — single-call traces are small and fast, unlike full-block traces such as debug_traceBlockByNumber.

Parameters

This method takes no parameters.

Returns

debug_traceCall 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":"debug_traceCall","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": "debug_traceCall",
  "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":"debug_traceCall","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 debug_traceCall do?
Simulate a single Polygon call against a historical or pending state and return its full Geth-style execution trace — without broadcasting anything to the network.
How many credits does debug_traceCall cost?
debug_traceCall costs 5 credit(s) per call on Triport by default.
Is debug_traceCall available over WebSocket?
debug_traceCall is an HTTP JSON-RPC method.