Encode submission
const url = 'https://example.com/v1/transactions/encode_submission';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"sender":"0x88fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1","sequence_number":"32425224034","max_gas_amount":"32425224034","gas_unit_price":"32425224034","expiration_timestamp_secs":"32425224034","payload":{"type":"entry_function_payload","function":"0x1::aptos_coin::transfer","type_arguments":["example"],"arguments":["example"]},"replay_protection_nonce":"32425224034","secondary_signers":["0x88fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/v1/transactions/encode_submission \ --header 'Content-Type: application/json' \ --data '{ "sender": "0x88fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1", "sequence_number": "32425224034", "max_gas_amount": "32425224034", "gas_unit_price": "32425224034", "expiration_timestamp_secs": "32425224034", "payload": { "type": "entry_function_payload", "function": "0x1::aptos_coin::transfer", "type_arguments": [ "example" ], "arguments": [ "example" ] }, "replay_protection_nonce": "32425224034", "secondary_signers": [ "0x88fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1" ] }'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 Body required
Section titled “ Request Body required ”Request to encode a submission
object
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
0x88fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1A 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
32425224034A 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
32425224034A 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
32425224034A 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
32425224034An enum of the possible transaction payloads
object
Example
entry_function_payloadEntry 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::transferType arguments of the function
Arguments of the function
An enum of the possible transaction payloads
object
Example
script_payloadMove script bytecode
object
All bytes (Vec0x and fulfilled with
two hex digits per byte.
Unlike the Address type, HexEncodedBytes will not trim any zeros.
Example
0x88fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1Move function
object
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 associated with the Move function
Move function generic type param
object
Move abilities tied to the generic type param and associated with the function that uses it
Parameters associated with the move function
Return type of the function
Type arguments of the function
Arguments of the function
An enum of the possible transaction payloads
object
Example
module_bundle_payloadAn enum of the possible transaction payloads
object
Example
multisig_payloadA 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
0x88fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1object
Example
entry_function_payloadEntry 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::transferType arguments of the function
Arguments of the function
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
32425224034Secondary signer accounts of the request for Multi-agent
Responses
Section titled “ Responses ”All bytes (Vec0x and fulfilled with
two hex digits per byte.
Unlike the Address type, HexEncodedBytes will not trim any zeros.
Example
0x88fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1Headers
Section titled “ Headers ”Chain ID of the current chain
Current ledger version of the chain
Oldest non-pruned ledger version of the chain
Current timestamp of the chain
Current epoch of the chain
Current block height of the chain
Oldest non-pruned block height of the chain
The cost of the call in terms of gas
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.
This is the generic struct we use for all API errors, it contains a string message and an Aptos API specific error code.
object
A message describing the error
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
Example
{ "error_code": "account_not_found"}Headers
Section titled “ Headers ”Chain ID of the current chain
Current ledger version of the chain
Oldest non-pruned ledger version of the chain
Current timestamp of the chain
Current epoch of the chain
Current block height of the chain
Oldest non-pruned block height of the chain
The cost of the call in terms of gas
This is the generic struct we use for all API errors, it contains a string message and an Aptos API specific error code.
object
A message describing the error
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
Example
{ "error_code": "account_not_found"}Headers
Section titled “ Headers ”Chain ID of the current chain
Current ledger version of the chain
Oldest non-pruned ledger version of the chain
Current timestamp of the chain
Current epoch of the chain
Current block height of the chain
Oldest non-pruned block height of the chain
The cost of the call in terms of gas
This is the generic struct we use for all API errors, it contains a string message and an Aptos API specific error code.
object
A message describing the error
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
Example
{ "error_code": "account_not_found"}Headers
Section titled “ Headers ”Chain ID of the current chain
Current ledger version of the chain
Oldest non-pruned ledger version of the chain
Current timestamp of the chain
Current epoch of the chain
Current block height of the chain
Oldest non-pruned block height of the chain
The cost of the call in terms of gas
This is the generic struct we use for all API errors, it contains a string message and an Aptos API specific error code.
object
A message describing the error
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
Example
{ "error_code": "account_not_found"}Headers
Section titled “ Headers ”Chain ID of the current chain
Current ledger version of the chain
Oldest non-pruned ledger version of the chain
Current timestamp of the chain
Current epoch of the chain
Current block height of the chain
Oldest non-pruned block height of the chain
The cost of the call in terms of gas