2. Getting Started
This guide will help you get started with the Amadeus Protocol SDK in your project. We'll cover installation, basic setup, and your first queries and transactions.
Installation
Package Installation
Install the SDK using your preferred package manager:
# npm
npm install @amadeus-protocol/sdk
# yarn
yarn add @amadeus-protocol/sdk
# pnpm
pnpm add @amadeus-protocol/sdk
# bun
bun add @amadeus-protocol/sdk
Verify Installation
After installation, verify the package is installed correctly:
# Check package version
npm list @amadeus-protocol/sdk
# Or check in your code
import { AmadeusSDK } from '@amadeus-protocol/sdk'
console.log('SDK Version:', AmadeusSDK.getVersion())
Requirements
Node.js
The SDK requires Node.js version 20.0.0 or higher.
Check your Node.js version:
node --version
If you need to update Node.js, visit nodejs.org.
TypeScript (Optional)
TypeScript is optional but highly recommended. The SDK includes complete type definitions.
Install TypeScript:
npm install -D typescript @types/node
Browser Support
The SDK works in modern browsers that support:
- ES2020 features
- fetch API (or polyfill)
- Web Crypto API (for encryption features)
Basic Setup
Import the SDK
import { AmadeusSDK } from '@amadeus-protocol/sdk'
Initialize the SDK
// Using default node URL
const sdk = new AmadeusSDK()
// Or specify a custom node URL
const sdk = new AmadeusSDK({
baseUrl: 'https://nodes.amadeus.bot/api',
timeout: 30000 // Optional: request timeout in milliseconds
})
Your First Query
Let's start with a simple chain query:
import { AmadeusSDK } from '@amadeus-protocol/sdk'
const sdk = new AmadeusSDK()
// Get the current chain tip
const tip = await sdk.chain.getTip()
console.log('Current height:', tip.entry.height)
console.log('Chain hash:', tip.entry.hash)
Your First Transaction
Here's how to build and submit a simple token transfer:
import { AmadeusSDK, TransactionBuilder, generateKeypair } from '@amadeus-protocol/sdk'
const sdk = new AmadeusSDK()
// Generate a keypair (or use an existing one)
const keypair = generateKeypair()
console.log('Public Key (Address):', keypair.publicKey)
console.log('Private Key (Seed):', keypair.privateKey) // Keep this secret!
// Create a transaction builder
const builder = new TransactionBuilder(keypair.privateKey)
// Build and sign a transfer transaction
const { txHash, txPacked } = builder.transfer({
recipient: '5Kd3N...', // Recipient's address
amount: 10.5, // Amount in AMA
symbol: 'AMA' // Token symbol
})
console.log('Transaction hash:', txHash)
// Submit the transaction
const result = await sdk.transaction.submit(txPacked)
if (result.error === 'ok') {
console.log('Transaction submitted successfully!')
} else {
console.error('Transaction error:', result.error)
}
TypeScript Configuration
If using TypeScript, ensure your tsconfig.json includes:
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"lib": ["ES2020"],
"moduleResolution": "node",
"esModuleInterop": true,
"strict": true
}
}
Common Imports
Here are the most commonly used imports:
// Main SDK class
import { AmadeusSDK } from '@amadeus-protocol/sdk'
// Transaction building
import { TransactionBuilder } from '@amadeus-protocol/sdk'
// Key generation
import { generateKeypair, derivePublicKeyFromSeedBase58 } from '@amadeus-protocol/sdk'
// Encoding utilities
import { toBase58, fromBase58 } from '@amadeus-protocol/sdk'
// Amount conversions
import { toAtomicAma, fromAtomicAma } from '@amadeus-protocol/sdk'
// Encryption
import { encryptWithPassword, decryptWithPassword } from '@amadeus-protocol/sdk'
Troubleshooting Installation
"Module not found" Error
Problem: Cannot find module '@amadeus-protocol/sdk'
Solutions:
-
Ensure the package is installed:
npm install @amadeus-protocol/sdk -
Check your
package.json:{"dependencies": {"@amadeus-protocol/sdk": "^1.0.0"}} -
Clear cache and reinstall:
npm cache clean --forcerm -rf node_modules package-lock.jsonnpm install
TypeScript Errors
Problem: Type errors when importing
Solutions:
-
Ensure TypeScript is installed:
npm install -D typescript -
Check
tsconfig.json:{"compilerOptions": {"moduleResolution": "node","esModuleInterop": true}} -
Restart your TypeScript server/IDE
Node.js Version Issues
Problem: Errors related to Node.js version
Solutions:
-
Check Node.js version:
node --version -
Update to Node.js 20+ if needed
-
Use a version manager like
nvm:nvm install 20nvm use 20
Next Steps
Now that you have the SDK installed and running: