eth_callBundle
Last updated:
`eth_callBundle` runs an ordered list of signed, raw transactions as an atomic bundle against a target block and returns what each transaction *would* do — gas used, return value, and any revert — **without broadcasting anything** to the network. It is the dry-run companion to `eth_sendBundle`: use it to validate a bundle, estimate its coinbase payment, and confirm ordering before you commit real funds.
The bundle is simulated as if it were placed at the top of `blockNumber`, on top of the state at the end of `stateBlockNumber`. Because nothing is submitted, a successful response is **not** a guarantee of inclusion — it only tells you the outcome given the supplied state. Re-simulate against fresh blocks before sending, since mempool state moves every block.
This method is gated to the **pro** tier and above. Calls authenticated with a free-tier key are rejected with `-32002`.
Parameters
This method takes no parameters.
Returns
| Field | Type |
|---|---|
| result | object |
Examples
curl https://<your-endpoint>/ \
-X POST -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_callBundle","params":[]}'const res = await fetch("https://<your-endpoint>/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"id": 1,
"method": "eth_callBundle",
"params": [],
"jsonrpc": "2.0"
}),
});
const data = await res.json();import requests
resp = requests.post("https://<your-endpoint>/", json={"id":1,"method":"eth_callBundle","params":[],"jsonrpc":"2.0"})
print(resp.json())Usage
- Transport: HTTP (JSON-RPC).
- Networks: mainnet.
- Credit cost: 5 per call.
FAQ
- What does eth_callBundle do?
- Simulates a Flashbots-style bundle of transactions against a chosen block **without submitting it**, returning the per-transaction execution results.
- How many credits does eth_callBundle cost?
- eth_callBundle costs 5 credit(s) per call on Triport by default.
- Is eth_callBundle available over WebSocket?
- eth_callBundle is an HTTP JSON-RPC method.