> ## Documentation Index
> Fetch the complete documentation index at: https://docs.validationcloud.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Simulate Transaction

> 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.

The output of the transaction will have the exact transaction outputs and events that running an actual signed transaction would have.

This method will use `50` [Compute Units](/nodeapi/about/billing).

***


## OpenAPI

````yaml nodeapi/openapi/document-aptos-with-v1-fix.json POST /transactions/simulate
openapi: 3.0.0
info:
  title: Aptos Node API
  description: >-
    The Aptos Node API is a RESTful API for client applications to interact with
    the Aptos blockchain.
  version: 1.2.0
  contact:
    name: Aptos Labs
    url: https://github.com/aptos-labs/aptos-core
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://mainnet.aptos.validationcloud.io/v1/<YOUR_API_KEY_HERE>/v1
security: []
tags:
  - name: Accounts
    description: Access to accounts, resources, and modules
  - name: Blocks
    description: Access to blocks
  - name: Events
    description: Access to events
  - name: General
    description: General information
  - name: Tables
    description: Access to tables
  - name: Transactions
    description: Access to transactions
  - name: View
    description: View functions,
externalDocs:
  url: https://github.com/aptos-labs/aptos-core
paths:
  /transactions/simulate:
    post:
      tags:
        - Transactions
      summary: Simulate transaction
      description: >-
        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.
      operationId: simulate_transaction
      parameters:
        - name: estimate_max_gas_amount
          schema:
            type: boolean
          in: query
          description: |-
            If set to true, the max gas value in the transaction will be ignored
            and the maximum possible gas will be used
          required: false
          deprecated: false
          explode: true
        - name: estimate_gas_unit_price
          schema:
            type: boolean
          in: query
          description: >-
            If set to true, the gas unit price in the transaction will be
            ignored

            and the estimated value will be used
          required: false
          deprecated: false
          explode: true
        - name: estimate_prioritized_gas_unit_price
          schema:
            type: boolean
          in: query
          description: >-
            If set to true, the transaction will use a higher price than the
            original

            estimate.
          required: false
          deprecated: false
          explode: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubmitTransactionRequest'
          application/x.aptos.signed_transaction+bcs:
            schema:
              type: array
              items:
                type: integer
                format: uint8
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserTransaction'
            application/x-bcs:
              schema:
                type: array
                items:
                  type: integer
                  format: uint8
          headers:
            X-APTOS-CHAIN-ID:
              description: Chain ID of the current chain
              required: true
              deprecated: false
              schema:
                type: integer
                format: uint8
            X-APTOS-LEDGER-VERSION:
              description: Current ledger version of the chain
              required: true
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-LEDGER-OLDEST-VERSION:
              description: Oldest non-pruned ledger version of the chain
              required: true
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-LEDGER-TIMESTAMPUSEC:
              description: Current timestamp of the chain
              required: true
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-EPOCH:
              description: Current epoch of the chain
              required: true
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-BLOCK-HEIGHT:
              description: Current block height of the chain
              required: true
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-OLDEST-BLOCK-HEIGHT:
              description: Oldest non-pruned block height of the chain
              required: true
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-CURSOR:
              description: |-
                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.
              deprecated: false
              schema:
                type: string
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AptosError'
          headers:
            X-APTOS-CHAIN-ID:
              description: Chain ID of the current chain
              deprecated: false
              schema:
                type: integer
                format: uint8
            X-APTOS-LEDGER-VERSION:
              description: Current ledger version of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-LEDGER-OLDEST-VERSION:
              description: Oldest non-pruned ledger version of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-LEDGER-TIMESTAMPUSEC:
              description: Current timestamp of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-EPOCH:
              description: Current epoch of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-BLOCK-HEIGHT:
              description: Current block height of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-OLDEST-BLOCK-HEIGHT:
              description: Oldest non-pruned block height of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AptosError'
          headers:
            X-APTOS-CHAIN-ID:
              description: Chain ID of the current chain
              deprecated: false
              schema:
                type: integer
                format: uint8
            X-APTOS-LEDGER-VERSION:
              description: Current ledger version of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-LEDGER-OLDEST-VERSION:
              description: Oldest non-pruned ledger version of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-LEDGER-TIMESTAMPUSEC:
              description: Current timestamp of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-EPOCH:
              description: Current epoch of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-BLOCK-HEIGHT:
              description: Current block height of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-OLDEST-BLOCK-HEIGHT:
              description: Oldest non-pruned block height of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
        '413':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AptosError'
          headers:
            X-APTOS-CHAIN-ID:
              description: Chain ID of the current chain
              deprecated: false
              schema:
                type: integer
                format: uint8
            X-APTOS-LEDGER-VERSION:
              description: Current ledger version of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-LEDGER-OLDEST-VERSION:
              description: Oldest non-pruned ledger version of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-LEDGER-TIMESTAMPUSEC:
              description: Current timestamp of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-EPOCH:
              description: Current epoch of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-BLOCK-HEIGHT:
              description: Current block height of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-OLDEST-BLOCK-HEIGHT:
              description: Oldest non-pruned block height of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AptosError'
          headers:
            X-APTOS-CHAIN-ID:
              description: Chain ID of the current chain
              deprecated: false
              schema:
                type: integer
                format: uint8
            X-APTOS-LEDGER-VERSION:
              description: Current ledger version of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-LEDGER-OLDEST-VERSION:
              description: Oldest non-pruned ledger version of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-LEDGER-TIMESTAMPUSEC:
              description: Current timestamp of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-EPOCH:
              description: Current epoch of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-BLOCK-HEIGHT:
              description: Current block height of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-OLDEST-BLOCK-HEIGHT:
              description: Oldest non-pruned block height of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AptosError'
          headers:
            X-APTOS-CHAIN-ID:
              description: Chain ID of the current chain
              deprecated: false
              schema:
                type: integer
                format: uint8
            X-APTOS-LEDGER-VERSION:
              description: Current ledger version of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-LEDGER-OLDEST-VERSION:
              description: Oldest non-pruned ledger version of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-LEDGER-TIMESTAMPUSEC:
              description: Current timestamp of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-EPOCH:
              description: Current epoch of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-BLOCK-HEIGHT:
              description: Current block height of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-OLDEST-BLOCK-HEIGHT:
              description: Oldest non-pruned block height of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
        '507':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AptosError'
          headers:
            X-APTOS-CHAIN-ID:
              description: Chain ID of the current chain
              deprecated: false
              schema:
                type: integer
                format: uint8
            X-APTOS-LEDGER-VERSION:
              description: Current ledger version of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-LEDGER-OLDEST-VERSION:
              description: Oldest non-pruned ledger version of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-LEDGER-TIMESTAMPUSEC:
              description: Current timestamp of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-EPOCH:
              description: Current epoch of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-BLOCK-HEIGHT:
              description: Current block height of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
            X-APTOS-OLDEST-BLOCK-HEIGHT:
              description: Oldest non-pruned block height of the chain
              deprecated: false
              schema:
                type: integer
                format: uint64
components:
  schemas:
    SubmitTransactionRequest:
      type: object
      description: |-
        A request to submit a transaction

        This requires a transaction and a signature of it
      required:
        - sender
        - sequence_number
        - max_gas_amount
        - gas_unit_price
        - expiration_timestamp_secs
        - payload
        - signature
      properties:
        sender:
          $ref: '#/components/schemas/Address'
        sequence_number:
          $ref: '#/components/schemas/U64'
        max_gas_amount:
          $ref: '#/components/schemas/U64'
        gas_unit_price:
          $ref: '#/components/schemas/U64'
        expiration_timestamp_secs:
          $ref: '#/components/schemas/U64'
        payload:
          $ref: '#/components/schemas/TransactionPayload'
        signature:
          $ref: '#/components/schemas/TransactionSignature'
    UserTransaction:
      type: object
      description: A transaction submitted by a user to change the state of the blockchain
      required:
        - version
        - hash
        - state_change_hash
        - event_root_hash
        - gas_used
        - success
        - vm_status
        - accumulator_root_hash
        - changes
        - sender
        - sequence_number
        - max_gas_amount
        - gas_unit_price
        - expiration_timestamp_secs
        - payload
        - events
        - timestamp
      properties:
        version:
          $ref: '#/components/schemas/U64'
        hash:
          $ref: '#/components/schemas/HashValue'
        state_change_hash:
          $ref: '#/components/schemas/HashValue'
        event_root_hash:
          $ref: '#/components/schemas/HashValue'
        state_checkpoint_hash:
          $ref: '#/components/schemas/HashValue'
        gas_used:
          $ref: '#/components/schemas/U64'
        success:
          type: boolean
          description: Whether the transaction was successful
        vm_status:
          type: string
          description: >-
            The VM status of the transaction, can tell useful information in a
            failure
        accumulator_root_hash:
          $ref: '#/components/schemas/HashValue'
        changes:
          type: array
          description: Final state of resources changed by the transaction
          items:
            $ref: '#/components/schemas/WriteSetChange'
        sender:
          $ref: '#/components/schemas/Address'
        sequence_number:
          $ref: '#/components/schemas/U64'
        max_gas_amount:
          $ref: '#/components/schemas/U64'
        gas_unit_price:
          $ref: '#/components/schemas/U64'
        expiration_timestamp_secs:
          $ref: '#/components/schemas/U64'
        payload:
          $ref: '#/components/schemas/TransactionPayload'
        signature:
          $ref: '#/components/schemas/TransactionSignature'
        events:
          type: array
          description: Events generated by the transaction
          items:
            $ref: '#/components/schemas/Event'
        timestamp:
          $ref: '#/components/schemas/U64'
    AptosError:
      type: object
      description: >-
        This is the generic struct we use for all API errors, it contains a
        string

        message and an Aptos API specific error code.
      required:
        - message
        - error_code
      properties:
        message:
          type: string
          description: A message describing the error
        error_code:
          $ref: '#/components/schemas/AptosErrorCode'
        vm_error_code:
          type: integer
          format: uint64
          description: >-
            A code providing VM error details when submitting transactions to
            the VM
    Address:
      type: string
      format: hex
      description: >
        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.
      example: '0x88fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1 '
    U64:
      type: string
      format: uint64
      description: >
        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.
      example: '32425224034'
    TransactionPayload:
      type: object
      description: An enum of the possible transaction payloads
      oneOf:
        - $ref: '#/components/schemas/TransactionPayload_EntryFunctionPayload'
        - $ref: '#/components/schemas/TransactionPayload_ScriptPayload'
        - $ref: '#/components/schemas/TransactionPayload_ModuleBundlePayload'
        - $ref: '#/components/schemas/TransactionPayload_MultisigPayload'
      discriminator:
        propertyName: type
        mapping:
          entry_function_payload: '#/components/schemas/TransactionPayload_EntryFunctionPayload'
          script_payload: '#/components/schemas/TransactionPayload_ScriptPayload'
          module_bundle_payload: '#/components/schemas/TransactionPayload_ModuleBundlePayload'
          multisig_payload: '#/components/schemas/TransactionPayload_MultisigPayload'
    TransactionSignature:
      type: object
      description: An enum representing the different transaction signatures available
      oneOf:
        - $ref: '#/components/schemas/TransactionSignature_Ed25519Signature'
        - $ref: '#/components/schemas/TransactionSignature_MultiEd25519Signature'
        - $ref: '#/components/schemas/TransactionSignature_MultiAgentSignature'
      discriminator:
        propertyName: type
        mapping:
          ed25519_signature: '#/components/schemas/TransactionSignature_Ed25519Signature'
          multi_ed25519_signature: '#/components/schemas/TransactionSignature_MultiEd25519Signature'
          multi_agent_signature: '#/components/schemas/TransactionSignature_MultiAgentSignature'
    HashValue:
      type: string
    WriteSetChange:
      type: object
      description: A final state change of a transaction on a resource or module
      oneOf:
        - $ref: '#/components/schemas/WriteSetChange_DeleteModule'
        - $ref: '#/components/schemas/WriteSetChange_DeleteResource'
        - $ref: '#/components/schemas/WriteSetChange_DeleteTableItem'
        - $ref: '#/components/schemas/WriteSetChange_WriteModule'
        - $ref: '#/components/schemas/WriteSetChange_WriteResource'
        - $ref: '#/components/schemas/WriteSetChange_WriteTableItem'
      discriminator:
        propertyName: type
        mapping:
          delete_module: '#/components/schemas/WriteSetChange_DeleteModule'
          delete_resource: '#/components/schemas/WriteSetChange_DeleteResource'
          delete_table_item: '#/components/schemas/WriteSetChange_DeleteTableItem'
          write_module: '#/components/schemas/WriteSetChange_WriteModule'
          write_resource: '#/components/schemas/WriteSetChange_WriteResource'
          write_table_item: '#/components/schemas/WriteSetChange_WriteTableItem'
    Event:
      type: object
      description: An event from a transaction
      required:
        - guid
        - sequence_number
        - type
        - data
      properties:
        guid:
          $ref: '#/components/schemas/EventGuid'
        sequence_number:
          $ref: '#/components/schemas/U64'
        type:
          $ref: '#/components/schemas/MoveType'
        data:
          description: The JSON representation of the event
    AptosErrorCode:
      type: string
      description: |-
        These codes provide more granular error information beyond just the HTTP
        status code of the response.
      enum:
        - account_not_found
        - resource_not_found
        - module_not_found
        - struct_field_not_found
        - version_not_found
        - transaction_not_found
        - table_item_not_found
        - block_not_found
        - version_pruned
        - block_pruned
        - invalid_input
        - invalid_transaction_update
        - sequence_number_too_old
        - vm_error
        - health_check_failed
        - mempool_is_full
        - internal_error
        - web_framework_error
        - bcs_not_supported
        - api_disabled
    TransactionPayload_EntryFunctionPayload:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              example: entry_function_payload
        - $ref: '#/components/schemas/EntryFunctionPayload'
    TransactionPayload_ScriptPayload:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              example: script_payload
        - $ref: '#/components/schemas/ScriptPayload'
    TransactionPayload_ModuleBundlePayload:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              example: module_bundle_payload
        - $ref: '#/components/schemas/ModuleBundlePayload'
    TransactionPayload_MultisigPayload:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              example: multisig_payload
        - $ref: '#/components/schemas/MultisigPayload'
    TransactionSignature_Ed25519Signature:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              example: ed25519_signature
        - $ref: '#/components/schemas/Ed25519Signature'
    TransactionSignature_MultiEd25519Signature:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              example: multi_ed25519_signature
        - $ref: '#/components/schemas/MultiEd25519Signature'
    TransactionSignature_MultiAgentSignature:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              example: multi_agent_signature
        - $ref: '#/components/schemas/MultiAgentSignature'
    WriteSetChange_DeleteModule:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              example: delete_module
        - $ref: '#/components/schemas/DeleteModule'
    WriteSetChange_DeleteResource:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              example: delete_resource
        - $ref: '#/components/schemas/DeleteResource'
    WriteSetChange_DeleteTableItem:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              example: delete_table_item
        - $ref: '#/components/schemas/DeleteTableItem'
    WriteSetChange_WriteModule:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              example: write_module
        - $ref: '#/components/schemas/WriteModule'
    WriteSetChange_WriteResource:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              example: write_resource
        - $ref: '#/components/schemas/WriteResource'
    WriteSetChange_WriteTableItem:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              example: write_table_item
        - $ref: '#/components/schemas/WriteTableItem'
    EventGuid:
      type: object
      required:
        - creation_number
        - account_address
      properties:
        creation_number:
          $ref: '#/components/schemas/U64'
        account_address:
          $ref: '#/components/schemas/Address'
    MoveType:
      type: string
      description: >
        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).
      pattern: ^(bool|u8|u64|u128|address|signer|vector<.+>|0x[0-9a-zA-Z:_<, >]+)$
    EntryFunctionPayload:
      type: object
      description: Payload which runs a single entry function
      required:
        - function
        - type_arguments
        - arguments
      properties:
        function:
          $ref: '#/components/schemas/EntryFunctionId'
        type_arguments:
          type: array
          description: Type arguments of the function
          items:
            $ref: '#/components/schemas/MoveType'
        arguments:
          type: array
          description: Arguments of the function
          items: {}
    ScriptPayload:
      type: object
      description: Payload which runs a script that can run multiple functions
      required:
        - code
        - type_arguments
        - arguments
      properties:
        code:
          $ref: '#/components/schemas/MoveScriptBytecode'
        type_arguments:
          type: array
          description: Type arguments of the function
          items:
            $ref: '#/components/schemas/MoveType'
        arguments:
          type: array
          description: Arguments of the function
          items: {}
    ModuleBundlePayload:
      type: object
      required:
        - modules
      properties:
        modules:
          type: array
          items:
            $ref: '#/components/schemas/MoveModuleBytecode'
    MultisigPayload:
      type: object
      description: >-
        A multisig transaction that allows an owner of a multisig account to
        execute a pre-approved

        transaction as the multisig account.
      required:
        - multisig_address
      properties:
        multisig_address:
          $ref: '#/components/schemas/Address'
        transaction_payload:
          $ref: '#/components/schemas/MultisigTransactionPayload'
    Ed25519Signature:
      type: object
      description: A single Ed25519 signature
      required:
        - public_key
        - signature
      properties:
        public_key:
          $ref: '#/components/schemas/HexEncodedBytes'
        signature:
          $ref: '#/components/schemas/HexEncodedBytes'
    MultiEd25519Signature:
      type: object
      description: |-
        A Ed25519 multi-sig signature

        This allows k-of-n signing for a transaction
      required:
        - public_keys
        - signatures
        - threshold
        - bitmap
      properties:
        public_keys:
          type: array
          description: The public keys for the Ed25519 signature
          items:
            $ref: '#/components/schemas/HexEncodedBytes'
        signatures:
          type: array
          description: Signature associated with the public keys in the same order
          items:
            $ref: '#/components/schemas/HexEncodedBytes'
        threshold:
          type: integer
          format: uint8
          description: The number of signatures required for a successful transaction
        bitmap:
          $ref: '#/components/schemas/HexEncodedBytes'
    MultiAgentSignature:
      type: object
      description: |-
        Multi agent signature for multi agent transactions

        This allows you to have transactions across multiple accounts
      required:
        - sender
        - secondary_signer_addresses
        - secondary_signers
      properties:
        sender:
          $ref: '#/components/schemas/AccountSignature'
        secondary_signer_addresses:
          type: array
          description: The other involved parties' addresses
          items:
            $ref: '#/components/schemas/Address'
        secondary_signers:
          type: array
          description: >-
            The associated signatures, in the same order as the secondary
            addresses
          items:
            $ref: '#/components/schemas/AccountSignature'
    DeleteModule:
      type: object
      description: Delete a module
      required:
        - address
        - state_key_hash
        - module
      properties:
        address:
          $ref: '#/components/schemas/Address'
        state_key_hash:
          type: string
          description: State key hash
        module:
          $ref: '#/components/schemas/MoveModuleId'
    DeleteResource:
      type: object
      description: Delete a resource
      required:
        - address
        - state_key_hash
        - resource
      properties:
        address:
          $ref: '#/components/schemas/Address'
        state_key_hash:
          type: string
          description: State key hash
        resource:
          $ref: '#/components/schemas/MoveStructTag'
    DeleteTableItem:
      type: object
      description: Delete a table item
      required:
        - state_key_hash
        - handle
        - key
      properties:
        state_key_hash:
          type: string
        handle:
          $ref: '#/components/schemas/HexEncodedBytes'
        key:
          $ref: '#/components/schemas/HexEncodedBytes'
        data:
          $ref: '#/components/schemas/DeletedTableData'
    WriteModule:
      type: object
      description: Write a new module or update an existing one
      required:
        - address
        - state_key_hash
        - data
      properties:
        address:
          $ref: '#/components/schemas/Address'
        state_key_hash:
          type: string
          description: State key hash
        data:
          $ref: '#/components/schemas/MoveModuleBytecode'
    WriteResource:
      type: object
      description: Write a resource or update an existing one
      required:
        - address
        - state_key_hash
        - data
      properties:
        address:
          $ref: '#/components/schemas/Address'
        state_key_hash:
          type: string
          description: State key hash
        data:
          $ref: '#/components/schemas/MoveResource'
    WriteTableItem:
      type: object
      description: Change set to write a table item
      required:
        - state_key_hash
        - handle
        - key
        - value
      properties:
        state_key_hash:
          type: string
        handle:
          $ref: '#/components/schemas/HexEncodedBytes'
        key:
          $ref: '#/components/schemas/HexEncodedBytes'
        value:
          $ref: '#/components/schemas/HexEncodedBytes'
        data:
          $ref: '#/components/schemas/DecodedTableData'
    EntryFunctionId:
      type: string
      description: >
        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.
      example: 0x1::aptos_coin::transfer
    MoveScriptBytecode:
      type: object
      description: Move script bytecode
      required:
        - bytecode
      properties:
        bytecode:
          $ref: '#/components/schemas/HexEncodedBytes'
        abi:
          $ref: '#/components/schemas/MoveFunction'
    MoveModuleBytecode:
      type: object
      description: Move module bytecode along with it's ABI
      required:
        - bytecode
      properties:
        bytecode:
          $ref: '#/components/schemas/HexEncodedBytes'
        abi:
          $ref: '#/components/schemas/MoveModule'
    MultisigTransactionPayload:
      type: object
      anyOf:
        - $ref: '#/components/schemas/EntryFunctionPayload'
    HexEncodedBytes:
      type: string
      format: hex
      description: >
        All bytes (Vec<u8>) 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.
      example: '0x88fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1 '
    AccountSignature:
      type: object
      description: >-
        Account signature scheme


        The account signature scheme allows you to have two types of accounts:


        1. A single Ed25519 key account, one private key

        2. A k-of-n multi-Ed25519 key account, multiple private keys, such that
        k-of-n must sign a transaction.
      oneOf:
        - $ref: '#/components/schemas/AccountSignature_Ed25519Signature'
        - $ref: '#/components/schemas/AccountSignature_MultiEd25519Signature'
      discriminator:
        propertyName: type
        mapping:
          ed25519_signature: '#/components/schemas/AccountSignature_Ed25519Signature'
          multi_ed25519_signature: '#/components/schemas/AccountSignature_MultiEd25519Signature'
    MoveModuleId:
      type: string
      description: >
        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.
      example: 0x1::aptos_coin
    MoveStructTag:
      type: string
      description: >
        String representation of a MoveStructTag (on-chain Move struct type).
        This exists so you

        can specify MoveStructTags as path / query parameters, e.g. for
        get_events_by_event_handle.


        It is a combination of:
          1. `move_module_address`, `module_name` and `struct_name`, all joined by `::`
          2. `struct generic type parameters` joined by `, `

        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).

        See [doc](https://aptos.dev/concepts/accounts) for more details.
      example: 0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>
      pattern: ^0x[0-9a-zA-Z:_<>]+$
    DeletedTableData:
      type: object
      description: Deleted table data
      required:
        - key
        - key_type
      properties:
        key:
          description: Deleted key
        key_type:
          type: string
          description: Deleted key type
    MoveResource:
      type: object
      description: A parsed Move resource
      required:
        - type
        - data
      properties:
        type:
          $ref: '#/components/schemas/MoveStructTag'
        data:
          $ref: '#/components/schemas/MoveStructValue'
    DecodedTableData:
      type: object
      description: Decoded table data
      required:
        - key
        - key_type
        - value
        - value_type
      properties:
        key:
          description: Key of table in JSON
        key_type:
          type: string
          description: Type of key
        value:
          description: Value of table in JSON
        value_type:
          type: string
          description: Type of value
    MoveFunction:
      type: object
      description: Move function
      required:
        - name
        - visibility
        - is_entry
        - generic_type_params
        - params
        - return
      properties:
        name:
          $ref: '#/components/schemas/IdentifierWrapper'
        visibility:
          $ref: '#/components/schemas/MoveFunctionVisibility'
        is_entry:
          type: boolean
          description: >-
            Whether the function can be called as an entry function directly in
            a transaction
        generic_type_params:
          type: array
          description: Generic type params associated with the Move function
          items:
            $ref: '#/components/schemas/MoveFunctionGenericTypeParam'
        params:
          type: array
          description: Parameters associated with the move function
          items:
            $ref: '#/components/schemas/MoveType'
        return:
          type: array
          description: Return type of the function
          items:
            $ref: '#/components/schemas/MoveType'
    MoveModule:
      type: object
      description: A Move module
      required:
        - address
        - name
        - friends
        - exposed_functions
        - structs
      properties:
        address:
          $ref: '#/components/schemas/Address'
        name:
          $ref: '#/components/schemas/IdentifierWrapper'
        friends:
          type: array
          description: Friends of the module
          items:
            $ref: '#/components/schemas/MoveModuleId'
        exposed_functions:
          type: array
          description: Public functions of the module
          items:
            $ref: '#/components/schemas/MoveFunction'
        structs:
          type: array
          description: Structs of the module
          items:
            $ref: '#/components/schemas/MoveStruct'
    AccountSignature_Ed25519Signature:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              example: ed25519_signature
        - $ref: '#/components/schemas/Ed25519Signature'
    AccountSignature_MultiEd25519Signature:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              example: multi_ed25519_signature
        - $ref: '#/components/schemas/MultiEd25519Signature'
    MoveStructValue:
      type: object
      description: >
        This is a JSON representation of some data within an account resource.
        More specifically,

        it is a map of strings to arbitrary JSON values / objects, where the
        keys are top level

        fields within the given resource.


        To clarify, you might query for 0x1::account::Account and see the
        example data.


        Move `bool` type value is serialized into `boolean`.


        Move `u8`, `u16` and `u32` type value is serialized into `integer`.


        Move `u64`, `u128` and `u256` type value is serialized into `string`.


        Move `address` type value (32 byte Aptos account address) is serialized
        into a HexEncodedBytes string.

        For example:
          - `0x1`
          - `0x1668f6be25668c1a17cd8caf6b8d2f25`

        Move `vector` type value is serialized into `array`, except `vector<u8>`
        which is serialized into a

        HexEncodedBytes string with `0x` prefix.

        For example:
          - `vector<u64>{255, 255}` => `["255", "255"]`
          - `vector<u8>{255, 255}` => `0xffff`

        Move `struct` type value is serialized into `object` that looks like
        this (except some Move stdlib types, see the following section):
          ```json
          {
            field1_name: field1_value,
            field2_name: field2_value,
            ......
          }
          ```

        For example:
          `{ "created": "0xa550c18", "role_id": "0" }`

        **Special serialization for Move stdlib types**:
          - [0x1::string::String](https://github.com/aptos-labs/aptos-core/blob/main/language/move-stdlib/docs/ascii.md)
            is serialized into `string`. For example, struct value `0x1::string::String{bytes: b"Hello World!"}`
            is serialized as `"Hello World!"` in JSON.
      example:
        authentication_key: '0x0000000000000000000000000000000000000000000000000000000000000001'
        coin_register_events:
          counter: '0'
          guid:
            id:
              addr: '0x1'
              creation_num: '0'
        self_address: '0x1'
        sequence_number: '0'
    IdentifierWrapper:
      type: string
    MoveFunctionVisibility:
      type: string
      description: Move function visibility
      enum:
        - private
        - public
        - friend
    MoveFunctionGenericTypeParam:
      type: object
      description: Move function generic type param
      required:
        - constraints
      properties:
        constraints:
          type: array
          description: >-
            Move abilities tied to the generic type param and associated with
            the function that uses it
          items:
            $ref: '#/components/schemas/MoveAbility'
    MoveStruct:
      type: object
      description: A move struct
      required:
        - name
        - is_native
        - abilities
        - generic_type_params
        - fields
      properties:
        name:
          $ref: '#/components/schemas/IdentifierWrapper'
        is_native:
          type: boolean
          description: Whether the struct is a native struct of Move
        abilities:
          type: array
          description: Abilities associated with the struct
          items:
            $ref: '#/components/schemas/MoveAbility'
        generic_type_params:
          type: array
          description: Generic types associated with the struct
          items:
            $ref: '#/components/schemas/MoveStructGenericTypeParam'
        fields:
          type: array
          description: Fields associated with the struct
          items:
            $ref: '#/components/schemas/MoveStructField'
    MoveAbility:
      type: string
    MoveStructGenericTypeParam:
      type: object
      description: Move generic type param
      required:
        - constraints
      properties:
        constraints:
          type: array
          description: >-
            Move abilities tied to the generic type param and associated with
            the type that uses it
          items:
            $ref: '#/components/schemas/MoveAbility'
    MoveStructField:
      type: object
      description: Move struct field
      required:
        - name
        - type
      properties:
        name:
          $ref: '#/components/schemas/IdentifierWrapper'
        type:
          $ref: '#/components/schemas/MoveType'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.