trace_callMany
Simulates a sequence of calls against shared evolving state.
Erigon reference · All supported methods
Parameters
Parameters are positional, in the order below.
| Parameter | Type | Required | Description |
|---|---|---|---|
calls | Array of call/type pairs | Yes | Each entry contains a transaction object and its requested trace types. |
block | Block number or tag | No | Starting state; defaults to latest. |
Transaction fields
| Field | Meaning |
|---|---|
from | Sender address used during execution |
to | Destination address; omit for contract creation where supported |
data or input | Encoded call data or contract creation code; use one field |
value | Value transferred in wei, as a hexadecimal quantity |
gas | Gas allowance for the simulation, as a hexadecimal quantity |
gasPrice | Legacy gas price in wei; use instead of EIP-1559 fee fields |
maxFeePerGas, maxPriorityFeePerGas | EIP-1559 fee limits in wei, where applicable |
accessList | Addresses and storage keys supplied for execution |
Return value
Tracing output in the requested formats. Replay and simulation results include execution output and the requested call traces or state differences; multi-call and whole-block methods return one result per call or transaction.
Example
Replace <gateway-url> with your gateway base URL and <service-url> with the chain’s service path, such as service/ethereum.
sh
curl -X POST "<gateway-url>/<service-url>" \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","id":1,"method":"trace_callMany","params":[[[{"to":"0x2222222222222222222222222222222222222222","data":"0x"},["trace"]]],"latest"]}'Illustrative response; values depend on the selected network and request:
json
{
"jsonrpc": "2.0",
"id": 1,
"result": []
}Direct behavior
The gateway selects providers supporting the requested tracing group and format. Unsupported formats are rejected rather than replaced.
Supported output types are trace, stateDiff, or both. vmTrace is not supported. The gateway matches the requested combination automatically.
Historical simulations require archive state. Requests whose execution point is determined by latest follow the reference-block rules.
Limits
Simulations allow up to 30 million gas per call. Omitted gas uses that ceiling; an explicit higher allowance is rejected rather than silently reduced. State and block overrides are not included in the supported contract.
A request contains at most 20 calls, with at most 100 million gas across their declared or default allowances.
Calls execute sequentially against evolving state. Internal adaptation must preserve that sequence; running the calls independently changes the result. The response limit covers all results together.
Reconstruction, internal splitting, and recovery share the gateway deadline; none gives the request an unlimited fresh budget.
For providers
Qualify for the entire applicable tracing group, including required formats and options. Historical combinations are verified separately; recent success alone does not establish historical coverage.
See provider qualification for checks and continued eligibility.