Skip to main content
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.
Unichain Mainnet keeps historical state for roughly the last 10,000 blocks, about 2.8 hours at Unichain’s 1-second block time. Requests for an older block return JSON-RPC error -32603 with a message that contains state at block #<number> is pruned.

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 - optional
    Recipient address. Omit it to simulate a contract creation
  • 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".

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