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

# Submit Transaction

> This endpoint accepts transaction submissions in two formats.

To submit a transaction as JSON, you must submit a SubmitTransactionRequest.
To build this request, do the following:

1. Encode the transaction as BCS. If you are using a language that has
native BCS support, make sure of that library. If not, you may take
advantage of /transactions/encode_submission. When using this
endpoint, make sure you trust the node you're talking to, as it is
possible they could manipulate your request.
2. Sign the encoded transaction and use it to create a TransactionSignature.
3. Submit the request. Make sure to use the "application/json" Content-Type.

To submit a transaction as BCS, you must submit a SignedTransaction
encoded as BCS. See SignedTransaction in types/src/transaction/mod.rs.
Make sure to use the `application/x.aptos.signed_transaction+bcs` Content-Type.

This endpoint accepts transaction submissions in two formats.

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

***


## OpenAPI

````yaml nodeapi/openapi/document-aptos-with-v1-fix.json POST /transactions
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:
    post:
      tags:
        - Transactions
      summary: Submit transaction
      description: >-
        This endpoint accepts transaction submissions in two formats.


        To submit a transaction as JSON, you must submit a
        SubmitTransactionRequest.

        To build this request, do the following:


        1. Encode the transaction as BCS. If you are using a language that has

        native BCS support, make sure of that library. If not, you may take

        advantage of /transactions/encode_submission. When using this

        endpoint, make sure you trust the node you're talking to, as it is

        possible they could manipulate your request.

        2. Sign the encoded transaction and use it to create a
        TransactionSignature.

        3. Submit the request. Make sure to use the "application/json"
        Content-Type.


        To submit a transaction as BCS, you must submit a SignedTransaction

        encoded as BCS. See SignedTransaction in types/src/transaction/mod.rs.

        Make sure to use the `application/x.aptos.signed_transaction+bcs`
        Content-Type.
      operationId: submit_transaction
      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:
        '202':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingTransaction'
            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'
    PendingTransaction:
      type: object
      description: A transaction waiting in mempool
      required:
        - hash
        - sender
        - sequence_number
        - max_gas_amount
        - gas_unit_price
        - expiration_timestamp_secs
        - payload
      properties:
        hash:
          $ref: '#/components/schemas/HashValue'
        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'
    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
    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'
    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'
    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
    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:_<, >]+)$
    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'
    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'
    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'
    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
    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.