Encode submission
POST/transactions/encode_submission
This endpoint accepts an EncodeSubmissionRequest, which internally is a UserTransactionRequestInner (and optionally secondary signers) encoded as JSON, validates the request format, and then returns that request encoded in BCS. The client can then use this to create a transaction signature to be used in a SubmitTransactionRequest, which it then passes to the /transactions POST endpoint.
To be clear, this endpoint makes it possible to submit transaction requests to the API from languages that do not have library support for BCS. If you are using an SDK that has BCS support, such as the official Rust, TypeScript, or Python SDKs, you do not need to use this endpoint.
To sign a message using the response from this endpoint:
- Decode the hex encoded string in the response to bytes.
- Sign the bytes to create the signature.
- Use that as the signature field in something like Ed25519Signature, which you then use to build a TransactionSignature.
Request
- application/json
Body
required
- TransactionPayload_EntryFunctionPayload
- TransactionPayload_ScriptPayload
- TransactionPayload_DeprecatedModuleBundlePayload
- TransactionPayload_MultisigPayload
Array [
]
- MultisigTransactionPayload_EntryFunctionPayload
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.
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.
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.
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.
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
Possible values: [entry_function_payload
]
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.
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 of the function
Possible values: [script_payload
]
code
object
required
Move script bytecode
All bytes (Vec0x
and fulfilled with
two hex digits per byte.
Unlike the Address
type, HexEncodedBytes will not trim any zeros.
abi
object
Move function
Possible values: [private
, public
, friend
]
Move function visibility
Whether the function can be called as an entry function directly in a transaction
Whether the function is a view function or not
generic_type_params
object[]
required
Generic type params associated with the Move function
Move abilities tied to the generic type param and associated with the function that uses it
Possible values: Value must match regular expression ^(bool|u8|u64|u128|address|signer|vector<.+>|0x[0-9a-zA-Z:_<, >]+)$
Parameters associated with the move function
Possible values: Value must match regular expression ^(bool|u8|u64|u128|address|signer|vector<.+>|0x[0-9a-zA-Z:_<, >]+)$
Return type of the function
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 of the function
Possible values: [module_bundle_payload
]
Possible values: [multisig_payload
]
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.
transaction_payload
object
oneOf
Payload which runs a single entry function
Possible values: [entry_function_payload
]
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.
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 of the function
Secondary signer accounts of the request for Multi-agent
Responses
- 200
- 400
- 403
- 500
- 503
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.
- application/json
- application/x-bcs
- Schema
Schema
string
- Schema
- Example (from schema)
Schema
Array [
]
integer
[
0
]
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
- application/json
- Schema
- Example (from schema)
Schema
A message describing the error
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.
A code providing VM error details when submitting transactions to the VM
{
"message": "string",
"error_code": "account_not_found",
"vm_error_code": 0
}
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
- application/json
- Schema
- Example (from schema)
Schema
A message describing the error
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.
A code providing VM error details when submitting transactions to the VM
{
"message": "string",
"error_code": "account_not_found",
"vm_error_code": 0
}
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
- application/json
- Schema
- Example (from schema)
Schema
A message describing the error
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.
A code providing VM error details when submitting transactions to the VM
{
"message": "string",
"error_code": "account_not_found",
"vm_error_code": 0
}
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
- application/json
- Schema
- Example (from schema)
Schema
A message describing the error
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.
A code providing VM error details when submitting transactions to the VM
{
"message": "string",
"error_code": "account_not_found",
"vm_error_code": 0
}