Select target C C# Clojure Dart F# Go HTTP Java JavaScript Julia Kotlin Node.js Objective-C OCaml PHP PowerShell Python R Ruby Rust Shell Swift Select client Curl Wget HTTPie Test request curl_global_init(CURL_GLOBAL_DEFAULT) ;
CURL * curl = curl_easy_init() ;
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, " POST " ) ;
curl_easy_setopt(curl, CURLOPT_URL, " https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission " ) ;
CURLcode res = curl_easy_perform(curl) ;
using var client = new HttpClient();
var request = new HttpRequestMessage( HttpMethod . Post , " https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission " );
using var response = await client . SendAsync (request);
var client = new RestClient( " https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission " );
var request = new RestRequest( "" , Method . Post );
var response = await client . ExecuteAsync (request);
( require '[clj-http.client :as client])
( client/post " https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission " )
import 'package:http/http.dart' as http;
final response = await http. post ( Uri . parse ( 'https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission' ));
let httpRequestMessage = new HttpRequestMessage (
new Uri ( " https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission " )
let client = new HttpClient ()
let! result = client.SendAsync ( httpRequestMessage )
requestUrl := " https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission "
req , _ := http . NewRequest ( " POST " , requestUrl , nil )
res , _ := http . DefaultClient . Do ( req )
body , _ := io . ReadAll ( res . Body )
fmt . Println ( string ( body ))
POST /v1/transactions/encode_submission HTTP / 1.1
Host : api.mainnet.aptoslabs.com
try ( AsyncHttpClient client = new DefaultAsyncHttpClient () ) {
Response response = client . prepare ( " POST " , " https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission " )
System . out . println ( response . getResponseBody ()) ;
HttpClient client = HttpClient . newHttpClient () ;
HttpRequest request = HttpRequest . newBuilder ()
. uri ( java . net . URI . create ( " https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission " ))
. method ( " POST " , HttpRequest . BodyPublishers . noBody ())
HttpResponse < String > response = client . send ( request, HttpResponse . BodyHandlers . ofString ()) ;
System . out . println ( response . body ()) ;
OkHttpClient client = new OkHttpClient () ;
Request request = new Request. Builder ()
. url ( " https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission " )
. method ( " POST " , RequestBody . create ( null , "" ))
try ( Response response = client . newCall ( request ) . execute () ) {
System . out . println ( response . body () . string ()) ;
HttpResponse < String > response = Unirest . request ( " POST " , " https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission " )
System . out . println ( response . getBody ()) ;
fetch ( ' https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission ' , {
import axios from ' axios '
url: ' https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission '
const { data } = await axios . request ( options )
import { ofetch } from ' ofetch '
ofetch ( ' https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission ' , {
url: " https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission " ,
}) . done ( ( response ) => console . log ( response ));
const xhr = new XMLHttpRequest ();
xhr . open ( " POST " , " https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission " );
xhr . withCredentials = true ;
xhr . addEventListener ( " load " , () => console . log ( xhr . responseText ));
response = HTTP . post ( " https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission " )
println ( String (response . body))
val client = OkHttpClient ()
val request = Request. Builder ()
. url ( "https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission" )
. post (RequestBody. create ( null , "" ))
val response = client. newCall (request). execute ()
fetch ( ' https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission ' , {
import axios from ' axios '
url: ' https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission '
const { data } = await axios . request ( options )
import { ofetch } from ' ofetch '
ofetch ( ' https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission ' , {
import { request } from ' undici '
const { statusCode , body } = await request ( ' https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission ' , {
#import < Foundation/Foundation.h >
NSMutableURLRequest * request = [ NSMutableURLRequest requestWithURL : [ NSURL URLWithString : @" https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission " ]
cachePolicy : NSURLRequestUseProtocolCachePolicy
[request setHTTPMethod : @" POST " ];
NSURLSession * session = [NSURLSession sharedSession ];
NSURLSessionDataTask * dataTask = [session dataTaskWithRequest : request
completionHandler : ^ ( NSData * data, NSURLResponse * response, NSError * error) {
NSHTTPURLResponse * httpResponse = ( NSHTTPURLResponse * ) response;
NSLog ( @" %@ " , httpResponse);
let uri = Uri . of_string "https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission" in
let headers = Cohttp . Header . of_list [
Cohttp_lwt_unix . Client . call ~ headers ( Cohttp . Code . method_of_string "POST" ) uri
>>= fun ( _response , body ) ->
Cohttp_lwt . Body . to_string body >>= Lwt_io . printl
$ch = curl_init ( " https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission " );
curl_setopt ($ ch , CURLOPT_POST , true );
$client = new GuzzleHttp\ Client ();
$response = $client -> request ( ' POST ' , ' https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission ' );
use Illuminate\Support\Facades\ Http ;
$response = Http :: post ( ' https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission ' );
$response = Invoke-WebRequest - Uri ' https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission ' - Method ' POST '
$response = Invoke-RestMethod - Uri ' https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission ' - Method ' POST '
conn = http.client. HTTPSConnection ( " api.mainnet.aptoslabs.com " )
conn. request ( " POST " , " /v1/transactions/encode_submission " )
response = conn. getresponse ()
print ( response. read () . decode ())
" https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission "
async with aiohttp. ClientSession () as session:
" https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission "
" https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission "
async with httpx. AsyncClient () as client:
" https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission "
response <- request ( "https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission" ) |>
resp_body_string ( response )
url = URI ( " https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission " )
http = Net :: HTTP . new (url. host , url. port )
request = Net :: HTTP :: Post . new (url)
response = http. request (request)
let client = reqwest :: Client :: new ();
let request = client . post ( " https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission " );
let response = request . send () . await ? ;
curl https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission \
- https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission
http --ignore-stdin ' POST ' ' https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission '
var request = URLRequest ( url : URL ( string : " https://api.mainnet.aptoslabs.com/v1/transactions/encode_submission " ) ! )
request. httpMethod = " POST "
let ( data, response ) = try await URLSession. shared . data ( for : request )
guard let httpResponse = response as? HTTPURLResponse,
200 ..< 300 ~= httpResponse.statusCode else {
throw URLError ( . badServerResponse )
print ( String ( data : data, encoding : .utf8 ) ?? "" )
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.
Media type application/json
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.
string format: hex
Example
0x88fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1
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.
string format: uint64
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.
string format: uint64
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.
string format: uint64
expiration_timestamp_secs required
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.
string format: uint64
One of: discriminator: type
An enum of the possible transaction payloads
object string
Allowed 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.
string
Example
0x1::aptos_coin::transfer
Type arguments of the function
Array<string>
Arguments of the function
Array
An enum of the possible transaction payloads
object string
Allowed values: script_payload
object 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.
string format: hex
Example
0x88fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1
abi
object string
Allowed values: private public friend
Whether the function can be called as an entry function directly in a transaction
boolean
Whether the function is a view function or not
boolean
generic_type_params required
Generic type params associated with the Move function
Array<object>
Move function generic type param
object Move abilities tied to the generic type param and associated with the function that uses it
Array<string>
Parameters associated with the move function
Array<string>
Return type of the function
Array<string>
Type arguments of the function
Array<string>
Arguments of the function
Array
An enum of the possible transaction payloads
object string
Allowed values: module_bundle_payload
An enum of the possible transaction payloads
object string
Allowed values: multisig_payload
multisig_address required
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.
string format: hex
Example
0x88fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1
transaction_payload
One of: discriminator: type
object string
Allowed 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.
string
Example
0x1::aptos_coin::transfer
Type arguments of the function
Array<string>
Arguments of the function
Array
replay_protection_nonce
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.
string format: uint64
secondary_signers
Secondary signer accounts of the request for Multi-agent
Array<string>
Select media type application/json application/x-bcs 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.
string format: hex
Example
0 x 88 fbd 33 f 54e1126269769780 feb 24480428179 f 552e2313 fbe 571 b 72e62 a 1 ca 1
X-APTOS-CHAIN-ID required
integer format: uint8
Chain ID of the current chain
X-APTOS-LEDGER-VERSION required
integer format: uint64
Current ledger version of the chain
X-APTOS-LEDGER-OLDEST-VERSION required
integer format: uint64
Oldest non-pruned ledger version of the chain
X-APTOS-LEDGER-TIMESTAMPUSEC required
integer format: uint64
Current timestamp of the chain
integer format: uint64
Current epoch of the chain
X-APTOS-BLOCK-HEIGHT required
integer format: uint64
Current block height of the chain
X-APTOS-OLDEST-BLOCK-HEIGHT required
integer format: uint64
Oldest non-pruned block height of the chain
X-APTOS-GAS-USED
integer format: uint64
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.
Media type application/json
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
string
These codes provide more granular error information beyond just the HTTP
status code of the response.
string
Allowed 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 rejected_by_filter health_check_failed mempool_is_full internal_error web_framework_error bcs_not_supported api_disabled
vm_error_code
A code providing VM error details when submitting transactions to the VM
integer format: uint64
Example
"error_code" : " account_not_found "
X-APTOS-CHAIN-ID
integer format: uint8
Chain ID of the current chain
X-APTOS-LEDGER-VERSION
integer format: uint64
Current ledger version of the chain
X-APTOS-LEDGER-OLDEST-VERSION
integer format: uint64
Oldest non-pruned ledger version of the chain
X-APTOS-LEDGER-TIMESTAMPUSEC
integer format: uint64
Current timestamp of the chain
X-APTOS-EPOCH
integer format: uint64
Current epoch of the chain
X-APTOS-BLOCK-HEIGHT
integer format: uint64
Current block height of the chain
X-APTOS-OLDEST-BLOCK-HEIGHT
integer format: uint64
Oldest non-pruned block height of the chain
X-APTOS-GAS-USED
integer format: uint64
The cost of the call in terms of gas
Media type application/json
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
string
These codes provide more granular error information beyond just the HTTP
status code of the response.
string
Allowed 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 rejected_by_filter health_check_failed mempool_is_full internal_error web_framework_error bcs_not_supported api_disabled
vm_error_code
A code providing VM error details when submitting transactions to the VM
integer format: uint64
Example
"error_code" : " account_not_found "
X-APTOS-CHAIN-ID
integer format: uint8
Chain ID of the current chain
X-APTOS-LEDGER-VERSION
integer format: uint64
Current ledger version of the chain
X-APTOS-LEDGER-OLDEST-VERSION
integer format: uint64
Oldest non-pruned ledger version of the chain
X-APTOS-LEDGER-TIMESTAMPUSEC
integer format: uint64
Current timestamp of the chain
X-APTOS-EPOCH
integer format: uint64
Current epoch of the chain
X-APTOS-BLOCK-HEIGHT
integer format: uint64
Current block height of the chain
X-APTOS-OLDEST-BLOCK-HEIGHT
integer format: uint64
Oldest non-pruned block height of the chain
X-APTOS-GAS-USED
integer format: uint64
The cost of the call in terms of gas
Media type application/json
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
string
These codes provide more granular error information beyond just the HTTP
status code of the response.
string
Allowed 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 rejected_by_filter health_check_failed mempool_is_full internal_error web_framework_error bcs_not_supported api_disabled
vm_error_code
A code providing VM error details when submitting transactions to the VM
integer format: uint64
Example
"error_code" : " account_not_found "
X-APTOS-CHAIN-ID
integer format: uint8
Chain ID of the current chain
X-APTOS-LEDGER-VERSION
integer format: uint64
Current ledger version of the chain
X-APTOS-LEDGER-OLDEST-VERSION
integer format: uint64
Oldest non-pruned ledger version of the chain
X-APTOS-LEDGER-TIMESTAMPUSEC
integer format: uint64
Current timestamp of the chain
X-APTOS-EPOCH
integer format: uint64
Current epoch of the chain
X-APTOS-BLOCK-HEIGHT
integer format: uint64
Current block height of the chain
X-APTOS-OLDEST-BLOCK-HEIGHT
integer format: uint64
Oldest non-pruned block height of the chain
X-APTOS-GAS-USED
integer format: uint64
The cost of the call in terms of gas
Media type application/json
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
string
These codes provide more granular error information beyond just the HTTP
status code of the response.
string
Allowed 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 rejected_by_filter health_check_failed mempool_is_full internal_error web_framework_error bcs_not_supported api_disabled
vm_error_code
A code providing VM error details when submitting transactions to the VM
integer format: uint64
Example
"error_code" : " account_not_found "
X-APTOS-CHAIN-ID
integer format: uint8
Chain ID of the current chain
X-APTOS-LEDGER-VERSION
integer format: uint64
Current ledger version of the chain
X-APTOS-LEDGER-OLDEST-VERSION
integer format: uint64
Oldest non-pruned ledger version of the chain
X-APTOS-LEDGER-TIMESTAMPUSEC
integer format: uint64
Current timestamp of the chain
X-APTOS-EPOCH
integer format: uint64
Current epoch of the chain
X-APTOS-BLOCK-HEIGHT
integer format: uint64
Current block height of the chain
X-APTOS-OLDEST-BLOCK-HEIGHT
integer format: uint64
Oldest non-pruned block height of the chain
X-APTOS-GAS-USED
integer format: uint64
The cost of the call in terms of gas