For the complete documentation index, see llms.txt. This page is also available as Markdown.

eth_simulateV1

Simulates one or more transaction bundles against the state of a given block, without broadcasting anything.

This method supports state overrides, block overrides, multi-block simulation and optional transfer tracing.

This method will use 40 Compute Units.


Parameters:

params - array containing:

  1. simulationPayload - object - required

Configuration object for the simulation.

simulationPayload fields:

  • blockStateCalls - array - required Array of block simulation objects. Each represents a simulated block.

  • traceTransfers - boolean - optional If true, value transfers are included as logs. Defaults to false.

  • validation - boolean - optional If true, applies validation checks such as nonce and balance. Defaults to false.

blockStateCalls object fields:

  • calls - array List of transaction call objects to simulate

  • stateOverrides - object - optional Override account state (balance, nonce, code, storage)

  • blockOverrides - object - optional Override block-level fields (e.g. number, timestamp, baseFeePerGas)

call object fields:

  • from - string - optional Sender address

  • to - string Recipient address

  • maxFeePerGas - string - optional Max fee per gas (hex)

  • value - string - optional Value sent (hex)

  • data - string - optional Hex-encoded calldata

  1. blockParameter - string - required

Block number, hash, or tag such as "latest". Arc has no pending block, so use "latest".

Returns:

array of objects - simulated block results. Each object is a full block header for the simulated block plus a calls array.

Call result fields:

  • status - string "0x1" = success, "0x0" = failure

  • gasUsed - string Gas used (hex)

  • returnData - string Return data (hex)

  • logs - array Emitted logs (includes transfers if enabled)

  • error - string Error or revert reason (if failed)

Example Request

Last updated

Was this helpful?