Skip to main content

Documentation Index

Fetch the complete documentation index at: https://developers.avacloud.io/llms.txt

Use this file to discover all available pages before exploring further.

Interchain SDK

Interchain SDK The main Avalanche client SDK for interacting with Avalanche nodes and building blockchain applications. Features:
  • Type-safe ICM client for sending cross-chain messages
  • Works seamlessly with wallet clients
  • Built-in support for Avalanche C-Chain and custom subnets
  • Built-in support for Avalanche C-Chain and custom subnets
The SDK is currently available in TypeScript, with more languages coming soon. If you are interested in a language that is not listed, please reach out to us in the #dev-tools channel in the Avalanche Discord.

SDK Installation

npm add @avalanche-sdk/interchain

SDK Example Usage

import { createWalletClient, http } from "viem";
import { createICMClient } from "@avalanche-sdk/interchain";
import { privateKeyToAccount } from "viem/accounts";
import * as dotenv from 'dotenv';

// Load environment variables
dotenv.config();

// these will be made available in a separate SDK soon
import { avalancheFuji, dispatch } from "@avalanche-sdk/interchain/chains";

// Get private key from environment
const privateKey = process.env.PRIVATE_KEY;
if (!privateKey) {
  throw new Error("PRIVATE_KEY not found in environment variables");
}

// Load your signer/account
const account = privateKeyToAccount(privateKey as `0x${string}`);

// Create a viem wallet client connected to Avalanche Fuji
const wallet = createWalletClient({
  transport: http('https://api.avax-test.network/ext/bc/C/rpc'),
  account,
});

// Initialize the ICM client
const icmClient = createICMClient(wallet);

// Send a message across chains
async function main() {
  try {
    const hash = await icmClient.sendMsg({
      sourceChain: avalancheFuji,
      destinationChain: dispatch,
      message: 'Hello from Avalanche Fuji to Dispatch Fuji!',
    });
    console.log('Message sent with hash:', hash);
  } catch (error) {
    console.error('Error sending message:', error);
    process.exit(1);
  }
}

main();

Refer to the code samples provided for each route to see examples of how to use them in the SDK. Explore routes here Data API, Metrics API & Webhooks API.