Skip to content

eth_simulateV1

Simulates one or more transaction bundles against the current pre-confirmed Flashblock state. Supports state overrides, multi-block simulation, and optional transfer tracing.

Only available on Flashblocks endpoints: https://mainnet-preconf.base.org / https://sepolia-preconf.base.org.

NameTypeRequiredDescription
simulationPayloadobjectYesThe simulation configuration.
blockParameterstringYesUse "pending" to simulate against the current Flashblock state.

The simulationPayload object accepts:

FieldTypeRequiredDescription
blockStateCallsarrayYesArray of block state call objects. Each object represents one simulated block.
traceTransfersbooleanNoIf true, ETH transfer events are included as logs in the result. Defaults to false.
validationbooleanNoIf true, transaction validation (nonce, balance) is enforced. Defaults to false.

Each entry in blockStateCalls accepts:

FieldTypeDescription
callsarrayArray of transaction call objects to simulate within this block.
stateOverridesobjectPer-address state overrides applied before simulation (for example, balance, nonce, code, storage). Optional.
blockOverridesobjectBlock-level overrides (for example, number, timestamp). Optional.

result is an array of simulated block results, one per entry in blockStateCalls. Each block result has:

FieldTypeDescription
callsarrayArray of individual call results.

Each entry in calls has:

FieldTypeDescription
statusstring"0x1" for success, "0x0" for failure.
gasUsedstringGas used as a hexadecimal integer.
returnDatastringHex-encoded return data.
logsarrayLogs emitted (including ETH transfer logs if traceTransfers is true).
errorstringRevert reason if the call failed. Optional.
Terminal window
curl https://sepolia-preconf.base.org \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_simulateV1",
"params": [
{
"blockStateCalls": [
{
"calls": [{"to": "0x...", "data": "0x..."}],
"stateOverrides": {}
}
],
"traceTransfers": true,
"validation": true
},
"pending"
],
"id": 1
}'
{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"calls": [
{
"status": "0x1",
"gasUsed": "0x5208",
"returnData": "0x",
"logs": []
}
]
}
]
}