Transactions
Learn how to sign and submit transactions on Aptos.
Sign and Submit Transaction
// Simple APT transfer
const payload = {
type: 'entry_function_payload',
function: '0x1::aptos_account::transfer',
type_arguments: [],
arguments: [
'0x1234...', // Recipient address
'100000000', // Amount in Octas (1 APT = 100000000 Octas)
],
}
const response = await provider.signAndSubmitTransaction(payload)
console.log('Transaction hash:', response.hash)Sign Transaction (Without Submitting)
const payload = {
type: 'entry_function_payload',
function: '0x1::coin::transfer',
type_arguments: ['0x1::aptos_coin::AptosCoin'],
arguments: ['0x1234...', '100000000'],
}
const signedTxn = await provider.signTransaction(payload)
// Submit later using Aptos SDK
// const pendingTxn = await client.submitTransaction(signedTxn)Sign Transaction V2 (BCS Serialized)
For advanced use cases with BCS-serialized transactions:
import { BCS } from 'aptos'
const rawTransaction = /* BCS serialized raw transaction */
const signedTxn = await provider.signTransactionV2({
transaction: rawTransaction,
transactionType: 'simple', // 'simple' or 'multi_agent'
asFeePayer: false,
})Transaction Options
const payload = {
type: 'entry_function_payload',
function: '0x1::aptos_account::transfer',
type_arguments: [],
arguments: ['0x1234...', '100000000'],
}
const options = {
max_gas_amount: '10000',
gas_unit_price: '100',
expiration_timestamp_secs: Math.floor(Date.now() / 1000) + 600, // 10 min
}
const response = await provider.signAndSubmitTransaction(payload, options)Smart Contract Interaction
Call View Function
// View functions don't require signing
const result = await client.view({
function: '0x1::coin::balance',
type_arguments: ['0x1::aptos_coin::AptosCoin'],
arguments: [accountAddress],
})
console.log('Balance:', result[0])Call Entry Function
// Mint NFT example
const payload = {
type: 'entry_function_payload',
function: '0x3::token::create_collection_script',
type_arguments: [],
arguments: [
'My Collection', // Collection name
'Description', // Description
'https://example.com', // URI
'1000', // Maximum supply
[false, false, false], // Mutability config
],
}
const response = await provider.signAndSubmitTransaction(payload)Multi-Agent Transactions
For transactions requiring multiple signers:
const signedTxn = await provider.signTransactionV2({
transaction: rawTransaction,
transactionType: 'multi_agent',
})Fee Payer Transactions
Sign as a fee payer for sponsored transactions:
const signedTxn = await provider.signTransactionV2({
transaction: rawTransaction,
transactionType: 'simple',
asFeePayer: true,
})Last updated on