Skip to main content

eth_simulateV1

Simulates one or more transaction bundles against Base state, including Flashblocks preconfirmed state. Returns simulated block results with call status, gas used, return data, logs, and errors — without broadcasting anything onchain.

Use Cases#

  • Transaction preview — Verify a swap or transfer will succeed before sending
  • Multi-call simulation — Simulate a sequence of dependent transactions atomically
  • State override testing — Override account balances or contract storage for what-if analysis
  • Gas estimation — Get precise gas usage for complex call sequences

Parameters#

ParameterTypeRequiredDescription
simulatePayloadObjectYesObject containing blockStateCalls, traceTransfers, and validation
blockTagQUANTITY|TAGYesBlock number in hex, or "latest", "pending"

simulatePayload Fields#

FieldTypeDescription
blockStateCallsArrayArray of block objects, each containing calls (array of transaction objects), optional stateOverrides, and optional blockOverrides
traceTransfersBooleanIf true, trace ETH transfers during simulation
validationBooleanIf true, run additional validation checks

Request#

{
"jsonrpc": "2.0",
"method": "eth_simulateV1",
"params": [
{
"blockStateCalls": [
{
"calls": [
{
"from": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"to": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"data": "0x70a08231000000000000000000000000d8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
}
]
}
],
"traceTransfers": true,
"validation": false
},
"latest"
],
"id": 1
}

Returns#

An array of simulated block results, each containing:

FieldTypeDescription
numberQUANTITYSimulated block number
hashDATASimulated block hash
gasUsedQUANTITYTotal gas used
callsArrayArray of call results

Call Result Fields#

FieldTypeDescription
statusQUANTITY0x1 for success, 0x0 for revert
returnDataDATAABI-encoded return data
gasUsedQUANTITYGas consumed by this call
logsArrayLogs emitted during simulation
errorObjectError details if call reverted

Code Examples#

curl -X POST https://api-base-mainnet-archive.n.dwellir.com/YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_simulateV1",
"params": [
{
"blockStateCalls": [
{
"calls": [
{
"from": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"to": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"data": "0x70a08231000000000000000000000000d8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
}
]
}
],
"traceTransfers": true,
"validation": false
},
"latest"
],
"id": 1
}'

Response Example#

{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"number": "0x29442bb",
"hash": "0xcefc6e6e...",
"gasUsed": "0x79ce",
"calls": [
{
"returnData": "0x00000000000000000000000000000000000000000000000000000000011420f9",
"logs": [],
"gasUsed": "0x79ce",
"status": "0x1"
}
]
}
]
}

Error Handling#

Error CodeMessageDescription
-32602Invalid paramsMalformed simulation payload
-32000Execution revertedOne or more simulated calls reverted

Need help? Contact our support team or check the Base documentation.