curl --request POST \
--url https://optimism-mainnet.core.chainstack.com/efb0a5eccd2caa5135eb54eba6f7f300 \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc": "2.0",
"method": "eth_callMany",
"id": 1,
"params": [
[
{
"transactions": [
{
"from": "0xacD03D601e5bB1B275Bb94076fF46ED9D753435A",
"to": "0x94b008aA00579c1307B0EF2c499aD98a8ce58e58",
"gas": "0xf4240",
"gasPrice": "0x7896e72a",
"data": "0xa9059cbb000000000000000000000000bc0E63965946815d105E7591407704e6e1964E590000000000000000000000000000000000000000000000000000000005f5e100"
},
{
"to": "0x94b008aA00579c1307B0EF2c499aD98a8ce58e58",
"gasPrice": "0x7896e72a",
"data": "0x70a08231000000000000000000000000bc0E63965946815d105E7591407704e6e1964E59"
}
],
"blockOverride": {
"blockNumber": "0x6eee101"
}
}
],
{
"blockNumber": "0x6eee101",
"transactionIndex": 1
},
{}
]
}'
{
"jsonrpc": "<string>",
"id": 123,
"result": [
{}
]
}
curl --request POST \
--url https://optimism-mainnet.core.chainstack.com/efb0a5eccd2caa5135eb54eba6f7f300 \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc": "2.0",
"method": "eth_callMany",
"id": 1,
"params": [
[
{
"transactions": [
{
"from": "0xacD03D601e5bB1B275Bb94076fF46ED9D753435A",
"to": "0x94b008aA00579c1307B0EF2c499aD98a8ce58e58",
"gas": "0xf4240",
"gasPrice": "0x7896e72a",
"data": "0xa9059cbb000000000000000000000000bc0E63965946815d105E7591407704e6e1964E590000000000000000000000000000000000000000000000000000000005f5e100"
},
{
"to": "0x94b008aA00579c1307B0EF2c499aD98a8ce58e58",
"gasPrice": "0x7896e72a",
"data": "0x70a08231000000000000000000000000bc0E63965946815d105E7591407704e6e1964E59"
}
],
"blockOverride": {
"blockNumber": "0x6eee101"
}
}
],
{
"blockNumber": "0x6eee101",
"transactionIndex": 1
},
{}
]
}'
{
"jsonrpc": "<string>",
"id": 123,
"result": [
{}
]
}
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 USDT to an address in block 116318465 at transaction position 1 in the block and does the balance check of the address for the USDT, all in one call.
eth_call
.blockNumber
, blockHash
, coinbase
, timestamp
, difficulty
, gasLimit
, and baseFee
.blockNumber or Tag
and transactionIndex
.
eth_call
standard.
eth_callMany
method is essential for:
The result of the multiple calls
The response is of type object
.