Skip to main content

Submit batch transactions

POST 

/transactions/batch

This allows you to submit multiple transactions. The response has three outcomes:

  1. All transactions succeed, and it will return a 202
  2. Some transactions succeed, and it will return the failed transactions and a 206
  3. No transactions succeed, and it will also return the failed transactions and a 206

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

Request

Body

required

  • Array [

  • 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

    transaction_failures

    object[]

    required

    Summary of the failed transactions

  • Array [

  • error

    object

    required

    This is the generic struct we use for all API errors, it contains a string message and an Aptos API specific error code.

    message stringrequired

    A message describing the error

    error_code AptosErrorCode (string)required

    Possible values: [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, state_value_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]

    These codes provide more granular error information beyond just the HTTP status code of the response.

    vm_error_code uint64

    A code providing VM error details when submitting transactions to the VM

    transaction_index uint64required

    The index of which transaction failed, same as submission order

  • ]

Loading...