Skip to main content

Quick Start

This guide will help you get started with the Artha Chain SDK quickly. We'll cover the basic operations you can perform with the SDK.

Prerequisites

  • An Artha Chain API key
  • Node.js 16+ (for JavaScript/TypeScript)
  • Python 3.8+ (for Python)
  • Go 1.18+ (for Go)
  • Rust 1.56+ (for Rust)

Basic Operations

1. Initialize the Client

import { ArthaChain } from '@arthachain/sdk';

const client = new ArthaChain({
apiKey: 'your-api-key',
network: 'testnet', // Start with testnet
});

2. Create a Wallet

// Generate a new wallet
const wallet = await client.wallet.create();

// Or import from private key
const wallet = await client.wallet.import('your-private-key');

3. Get Account Balance

const balance = await client.account.getBalance(wallet.address);
console.log(`Balance: ${balance} ARTHA`);

4. Send a Transaction

const tx = await client.transaction.send({
from: wallet.address,
to: 'recipient-address',
amount: '1.0',
currency: 'ARTHA',
});

console.log(`Transaction hash: ${tx.hash}`);

5. Deploy a Smart Contract

const contract = await client.contract.deploy({
from: wallet.address,
bytecode: 'contract-bytecode',
abi: contractABI,
});

console.log(`Contract address: ${contract.address}`);

Complete Example

Here's a complete example that demonstrates the main features:

import { ArthaChain } from '@arthachain/sdk';

async function main() {
// Initialize client
const client = new ArthaChain({
apiKey: 'your-api-key',
network: 'testnet',
});

// Create wallet
const wallet = await client.wallet.create();
console.log(`Wallet address: ${wallet.address}`);

// Get balance
const balance = await client.account.getBalance(wallet.address);
console.log(`Initial balance: ${balance} ARTHA`);

// Send transaction
const tx = await client.transaction.send({
from: wallet.address,
to: 'recipient-address',
amount: '1.0',
currency: 'ARTHA',
});
console.log(`Transaction sent: ${tx.hash}`);

// Wait for confirmation
const receipt = await tx.wait();
console.log(`Transaction confirmed in block ${receipt.blockNumber}`);

// Deploy contract
const contract = await client.contract.deploy({
from: wallet.address,
bytecode: 'contract-bytecode',
abi: contractABI,
});
console.log(`Contract deployed at ${contract.address}`);

// Interact with contract
const result = await contract.methods.someFunction().call();
console.log(`Contract call result: ${result}`);
}

main().catch(console.error);

Error Handling

The SDK provides comprehensive error handling:

try {
const tx = await client.transaction.send({
from: wallet.address,
to: 'recipient-address',
amount: '1.0',
currency: 'ARTHA',
});
} catch (error) {
if (error.code === 'INSUFFICIENT_FUNDS') {
console.error('Not enough balance to send transaction');
} else if (error.code === 'INVALID_ADDRESS') {
console.error('Invalid recipient address');
} else {
console.error('Unexpected error:', error);
}
}

Next Steps