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

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