Skip to main content

Simulate transaction

POST 

/transactions/simulate

The output of the transaction will have the exact transaction outputs and events that running an actual signed transaction would have. However, it will not have the associated state hashes, as they are not updated in storage. This can be used to estimate the maximum gas units for a submitted transaction.

To use this, you must:

  • Create a SignedTransaction with a zero-padded signature.
  • Submit a SubmitTransactionRequest containing a UserTransactionRequest containing that signature.

To use this endpoint with BCS, you must submit a SignedTransaction encoded as BCS. See SignedTransaction in types/src/transaction/mod.rs.

Request

Query Parameters

    estimate_max_gas_amount boolean

    If set to true, the max gas value in the transaction will be ignored and the maximum possible gas will be used

    estimate_gas_unit_price boolean

    If set to true, the gas unit price in the transaction will be ignored and the estimated value will be used

    estimate_prioritized_gas_unit_price boolean

    If set to true, the transaction will use a higher price than the original estimate.

Body

required

    sender hexrequired

    A hex encoded 32 byte Aptos account address.

    This is represented in a string as a 64 character hex string, sometimes shortened by stripping leading 0s, and adding a 0x.

    For example, address 0x0000000000000000000000000000000000000000000000000000000000000001 is represented as 0x1.

    sequence_number uint64required

    A string containing a 64-bit unsigned integer.

    We represent u64 values as a string to ensure compatibility with languages such as JavaScript that do not parse u64s in JSON natively.

    max_gas_amount uint64required

    A string containing a 64-bit unsigned integer.

    We represent u64 values as a string to ensure compatibility with languages such as JavaScript that do not parse u64s in JSON natively.

    gas_unit_price uint64required

    A string containing a 64-bit unsigned integer.

    We represent u64 values as a string to ensure compatibility with languages such as JavaScript that do not parse u64s in JSON natively.

    expiration_timestamp_secs uint64required

    A string containing a 64-bit unsigned integer.

    We represent u64 values as a string to ensure compatibility with languages such as JavaScript that do not parse u64s in JSON natively.

    payload

    object

    required

    An enum of the possible transaction payloads

    oneOf

    type stringrequired

    Possible values: [entry_function_payload]

    function EntryFunctionId (string)required

    Entry function id is string representation of a entry function defined on-chain.

    Format: {address}::{module name}::{function name}

    Both module name and function name are case-sensitive.

    type_arguments MoveType (string)[]required

    Possible values: Value must match regular expression ^(bool|u8|u64|u128|address|signer|vector<.+>|0x[0-9a-zA-Z:_<, >]+)$

    Type arguments of the function

    arguments arrayrequired

    Arguments of the function

    signature

    object

    required

    An enum representing the different transaction signatures available

    oneOf

    type stringrequired

    Possible values: [ed25519_signature]

    public_key hexrequired

    All bytes (Vec) data is represented as hex-encoded string prefixed with 0x and fulfilled with two hex digits per byte.

    Unlike the Address type, HexEncodedBytes will not trim any zeros.

    signature hexrequired

    All bytes (Vec) data is represented as hex-encoded string prefixed with 0x and fulfilled with two hex digits per byte.

    Unlike the Address type, HexEncodedBytes will not trim any zeros.

Responses

Response Headers

  • X-APTOS-CHAIN-ID

    integer

    Chain ID of the current chain

  • X-APTOS-LEDGER-VERSION

    integer

    Current ledger version of the chain

  • X-APTOS-LEDGER-OLDEST-VERSION

    integer

    Oldest non-pruned ledger version of the chain

  • X-APTOS-LEDGER-TIMESTAMPUSEC

    integer

    Current timestamp of the chain

  • X-APTOS-EPOCH

    integer

    Current epoch of the chain

  • X-APTOS-BLOCK-HEIGHT

    integer

    Current block height of the chain

  • X-APTOS-OLDEST-BLOCK-HEIGHT

    integer

    Oldest non-pruned block height of the chain

  • X-APTOS-GAS-USED

    integer

    The cost of the call in terms of gas

  • X-APTOS-CURSOR

    string

    Cursor to be used for endpoints that support cursor-based pagination. Pass this to the start field of the endpoint on the next call to get the next page of results.

Schema

  • Array [

  • version uint64required

    A string containing a 64-bit unsigned integer.

    We represent u64 values as a string to ensure compatibility with languages such as JavaScript that do not parse u64s in JSON natively.

    hash HashValue (string)required
    state_change_hash HashValue (string)required
    event_root_hash HashValue (string)required
    state_checkpoint_hash HashValue (string)
    gas_used uint64required

    A string containing a 64-bit unsigned integer.

    We represent u64 values as a string to ensure compatibility with languages such as JavaScript that do not parse u64s in JSON natively.

    success booleanrequired

    Whether the transaction was successful

    vm_status stringrequired

    The VM status of the transaction, can tell useful information in a failure

    accumulator_root_hash HashValue (string)required

    changes

    object[]

    required

    Final state of resources changed by the transaction

  • Array [

  • oneOf

    type stringrequired

    Possible values: [delete_module]

    address hexrequired

    A hex encoded 32 byte Aptos account address.

    This is represented in a string as a 64 character hex string, sometimes shortened by stripping leading 0s, and adding a 0x.

    For example, address 0x0000000000000000000000000000000000000000000000000000000000000001 is represented as 0x1.

    state_key_hash stringrequired

    State key hash

    module MoveModuleId (string)required

    Move module id is a string representation of Move module.

    Format: {address}::{module name}

    address should be hex-encoded 32 byte account address that is prefixed with 0x.

    Module name is case-sensitive.

  • ]

  • sender hexrequired

    A hex encoded 32 byte Aptos account address.

    This is represented in a string as a 64 character hex string, sometimes shortened by stripping leading 0s, and adding a 0x.

    For example, address 0x0000000000000000000000000000000000000000000000000000000000000001 is represented as 0x1.

    sequence_number uint64required

    A string containing a 64-bit unsigned integer.

    We represent u64 values as a string to ensure compatibility with languages such as JavaScript that do not parse u64s in JSON natively.

    max_gas_amount uint64required

    A string containing a 64-bit unsigned integer.

    We represent u64 values as a string to ensure compatibility with languages such as JavaScript that do not parse u64s in JSON natively.

    gas_unit_price uint64required

    A string containing a 64-bit unsigned integer.

    We represent u64 values as a string to ensure compatibility with languages such as JavaScript that do not parse u64s in JSON natively.

    expiration_timestamp_secs uint64required

    A string containing a 64-bit unsigned integer.

    We represent u64 values as a string to ensure compatibility with languages such as JavaScript that do not parse u64s in JSON natively.

    payload

    object

    required

    An enum of the possible transaction payloads

    oneOf

    type stringrequired

    Possible values: [entry_function_payload]

    function EntryFunctionId (string)required

    Entry function id is string representation of a entry function defined on-chain.

    Format: {address}::{module name}::{function name}

    Both module name and function name are case-sensitive.

    type_arguments MoveType (string)[]required

    Possible values: Value must match regular expression ^(bool|u8|u64|u128|address|signer|vector<.+>|0x[0-9a-zA-Z:_<, >]+)$

    Type arguments of the function

    arguments arrayrequired

    Arguments of the function

    signature

    object

    An enum representing the different transaction signatures available

    oneOf

    type stringrequired

    Possible values: [ed25519_signature]

    public_key hexrequired

    All bytes (Vec) data is represented as hex-encoded string prefixed with 0x and fulfilled with two hex digits per byte.

    Unlike the Address type, HexEncodedBytes will not trim any zeros.

    signature hexrequired

    All bytes (Vec) data is represented as hex-encoded string prefixed with 0x and fulfilled with two hex digits per byte.

    Unlike the Address type, HexEncodedBytes will not trim any zeros.

    events

    object[]

    required

    Events generated by the transaction

  • Array [

  • guid

    object

    required

    creation_number uint64required

    A string containing a 64-bit unsigned integer.

    We represent u64 values as a string to ensure compatibility with languages such as JavaScript that do not parse u64s in JSON natively.

    account_address hexrequired

    A hex encoded 32 byte Aptos account address.

    This is represented in a string as a 64 character hex string, sometimes shortened by stripping leading 0s, and adding a 0x.

    For example, address 0x0000000000000000000000000000000000000000000000000000000000000001 is represented as 0x1.

    sequence_number uint64required

    A string containing a 64-bit unsigned integer.

    We represent u64 values as a string to ensure compatibility with languages such as JavaScript that do not parse u64s in JSON natively.

    type MoveType (string)required

    Possible values: Value must match regular expression ^(bool|u8|u64|u128|address|signer|vector<.+>|0x[0-9a-zA-Z:_<, >]+)$

    String representation of an on-chain Move type tag that is exposed in transaction payload. Values: - bool - u8 - u16 - u32 - u64 - u128 - u256 - address - signer - vector: vector<{non-reference MoveTypeId}> - struct: {address}::{module_name}::{struct_name}::<{generic types}>

    Vector type value examples:
    - `vector<u8>`
    - `vector<vector<u64>>`
    - `vector<0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>>`

    Struct type value examples:
    - `0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>
    - `0x1::account::Account`

    Note:
    1. Empty chars should be ignored when comparing 2 struct tag ids.
    2. When used in an URL path, should be encoded by url-encoding (AKA percent-encoding).
    data required

    The JSON representation of the event

  • ]

  • timestamp uint64required

    A string containing a 64-bit unsigned integer.

    We represent u64 values as a string to ensure compatibility with languages such as JavaScript that do not parse u64s in JSON natively.

  • ]

Loading...