Base API method eth_callMany
executes a list of transaction bundles without creating transactions on the blockchain. This method is particularly useful for simulating transactions to understand their potential outcomes. It supports simulating transactions at an intermediate state of a block, simulating multiple transactions with sequential dependencies, and overwriting block headers.
This examples simulates the transfer of 100 USDC to an address in block 12279785 at transaction position 1 in the block and does the balance check of the address for the USDT, all in one call.
Get you own node endpoint today
Start for free and get your app to production levels immediately. No credit card required.
You can sign up with your GitHub, X, Google, or Microsoft account.
Parameters
-
BUNDLES (array, required): A list of bundles where each bundle contains:
- transactions (array): An array of transaction objects with parameters similar to
eth_call
. - blockOverride (object, optional): Overrides for the execution context block header, including
blockNumber
,blockHash
,coinbase
,timestamp
,difficulty
,gasLimit
, andbaseFee
.
- transactions (array): An array of transaction objects with parameters similar to
-
SIMULATION CONTEXT (object, required): The context for the simulation, specifying the
blockNumber or Tag
andtransactionIndex
. -
STATE OVERRIDES (object, optional): An optional mapping for state overrides, following the
eth_call
standard. -
TIMEOUT (integer, optional): The maximum running time for the simulations in milliseconds, defaulting to 5000 milliseconds.
Response
The method returns a list of lists containing either the return value of the executed contract call or the reverted error code.
- array - All the return/error values
- value - The value if was successful
- error - The error if the transaction failed
Use case
The eth_callMany
method is essential for:
- Developers who need to simulate the outcome of transactions at a specific block height without making actual state changes.
- Applications that require understanding the sequential dependencies between multiple transactions.
- Services that need to test the impact of block header changes on transaction execution.
Try the eth_callMany
RPC method yourself
eth_callMany
RPC method yourself