4. Transaction Building
Complete guide to building and signing transactions with the Amadeus Protocol SDK.
Overview
Transactions in Amadeus Protocol are structured data that represent actions on the blockchain. They must be properly built, signed, and serialized before submission.
TransactionBuilder Class
The TransactionBuilder class provides a convenient API for building and signing transactions.
Creating a Builder Instance
import { TransactionBuilder } from '@amadeus-protocol/sdk'
// Create builder with private key (convenient for multiple transactions)
const builder = new TransactionBuilder('5Kd3N...') // Base58 encoded seed
// Or create without private key (must provide keys in each method call)
const builder = new TransactionBuilder()Building Transfer Transactions
Option 1: Build and Sign in One Step (Recommended)
const builder = new TransactionBuilder(privateKey)
const { txHash, txPacked } = builder.transfer({
recipient: '5Kd3N...', // Base58 encoded recipient address
amount: 10.5, // Amount in human-readable format
symbol: 'AMA' // Token symbol
})
// Submit the transaction
const result = await sdk.transaction.submit(txPacked)Option 2: Build Unsigned, Then Sign (More Control)
Building Custom Transactions
Option 1: Build and Sign in One Step
Option 2: Build Unsigned, Then Sign
Using Static Methods
You can also use static methods without creating an instance:
Build and Sign Transfer
Build Unsigned, Then Sign
Transaction Structure
Unsigned Transaction
Signed Transaction Result
Transaction Nonces
Nonces are automatically generated using timestamps:
Important: For high-frequency transactions, ensure sufficient time between transactions to avoid nonce collisions.
Amount Handling
Always use atomic units for transaction amounts:
Submitting Transactions
Submit Without Waiting
Submit and Wait for Confirmation
Common Transaction Types
Token Transfer
Contract Call
Error Handling
Best Practices
1. Always Validate Inputs
2. Check Balance Before Transferring
3. Use Appropriate Nonce Timing
For high-frequency transactions, add delays:
4. Handle Transaction Errors
Advanced Usage
Building Transactions Without Private Key
Inspecting Transactions
Next Steps
Last updated