Simulator

Simulator

The Transaction Simulator allows you to preview the execution of any Move function on the Movement network without actually submitting a transaction.

Overview

The Simulator supports two types of functions:

TypeDescriptionGas CostModifies State
EntryState-modifying functionsSimulatedNo (simulation only)
ViewRead-only functionsFreeNo

Using the Simulator

Loading a Contract

Enter any valid Movement address to load its modules:

0x6a164188af7bb6a8268339343a5afe0242292713709af8801dafba3a054dc2f2

Trace will automatically:

  • Fetch all modules deployed at that address
  • Parse the ABI to discover available functions
  • Display entry and view functions for simulation

Selecting a Function

Once a contract is loaded, you'll see:

  1. Module selector (if multiple modules exist)
  2. Function dropdown showing available entry/view functions
  3. Function type badge indicating entry or view

Input Parameters

Type Arguments

Some functions are generic and require type arguments. For example:

0x1::aptos_coin::AptosCoin

Enter the full type path including address, module, and struct name.

Function Arguments

Parameters are displayed with their expected types:

TypeExample Input
u641000000
address0x1
booltrue or false
vector<u8>[1, 2, 3]

Transaction Parameters

For entry functions, you'll need to specify:

  • Sender Address — The account executing the transaction
  • Gas Limit — Maximum gas units (default: 100,000)
  • Gas Price — Price per gas unit in octas (default: 100)

Understanding Results

Success Response

A successful simulation shows:

  • Success status
  • Gas used — Actual gas consumed
  • Events — Any events emitted during execution
  • State changes — Resources created, modified, or deleted

Failed Response

A failed simulation displays:

  • Error status with abort code
  • Error description — Human-readable explanation (if available)
  • Error location — Module and function where the error occurred

Tips

View functions are free to call and don't require gas parameters.

⚠️

Simulation results may differ from actual execution if on-chain state changes between simulation and submission.