Developer SDK

Build On-Chain Games Your Way

Keep building in Unity, Unreal, or React. Avalon gives your game its own Avalanche L1 with AI agents, fair loot, and real economies through a simple SDK.

terminal
# Clone the repo to use the SDK locally (npm publish coming post-hackathon)
git clone https://github.com/kamalbuilds/avalon.git
cd avalon/avaforge

# Install dependencies
npm install

# The @avalon/sdk package is at packages/sdk/
# Import directly: import { Avalon } from '../../../packages/sdk'

SDK Modules

L1 Deployment

Deploy your game on its own Avalanche L1 with custom parameters block time, gas token, validator set.

avalon.l1.deploy()avalon.l1.status()

AI Agents (ERC-8004)

Create autonomous NPCs with on-chain identity, wallets, and behavior trees. They perceive, think, and act.

avalon.agents.create()avalon.agents.get()avalon.agents.totalAgents()avalon.agents.updateReputation()

VRF Loot System

Provably fair loot drops, random encounters, and reward distribution powered by Chainlink VRF v2.5.

avalon.vrf.roll()avalon.vrf.configureLootTable()avalon.vrf.getLastDrop()

Stablecoin Economy

Built-in USDT economies via Tether WDK. Entry fees, prizes, in-game purchases, player earnings.

avalon.economy.stats()avalon.economy.deposit()avalon.economy.isTokenAccepted()

Game State

On-chain game state management with state diffing, history, and cross-chain synchronization.

avalon.state.get()avalon.state.update()avalon.state.history()

Player Onboarding

30-second onboarding for non-crypto players. Embedded wallets, social login, gas abstraction.

avalon.onboard.create()avalon.onboard.socialLogin()avalon.onboard.abstractGas()

Code Examples

Three focused recipes you can copy-paste into your game today.

l1-deploy.ts
import { Avalon } from '@avalon/sdk';

const avalon = new Avalon({
  apiKey: process.env.AVALON_API_KEY!,
  network: 'fuji', // or 'mainnet'
});

// Deploy your game on its own Avalanche L1
const chain = await avalon.l1.deploy({
  name: 'Dragon Quest Online',
  blockTime: 2,           // 2-second block time
  gasToken: 'DQO',        // your game's native token
  validators: {
    minStake: '2000',     // minimum stake in AVAX
    maxValidators: 5,
  },
  nativeTokenSupply: '1_000_000',
});

console.log('Chain ID:', chain.chainId);    // e.g. 99999
console.log('RPC URL:', chain.rpcUrl);      // https://rpc.dragon-quest.avax.gg
console.log('Explorer:', chain.explorerUrl);

// Fine-tune EVM settings for your players
await avalon.l1.configure(chain.chainId, {
  maxGasLimit: 8_000_000,
  baseFeeEnabled: false,   // gasless for players
  precompiles: ['warp', 'nativeMinter'],
});

console.log('L1 ready for players!');

Quick Start

Deploy a full on-chain game in your language of choice.

quickstart.ts
import { Avalon } from '@avalon/sdk';

// 1. Initialize Avalon (connects to Fuji testnet)
const avalon = new Avalon({ network: 'fuji' });

// 2. Deploy your game on its own Avalanche L1
const chain = await avalon.l1.deploy({
  name: 'My Epic Game',
  blockTime: 2,
});
console.log(`Chain live: ${chain.rpcUrl}`);

// 3. Create an AI NPC with ERC-8004 identity
const npc = await avalon.agents.create({
  name: 'Iron Merchant',
  archetype: 'merchant',
});
console.log(`NPC registered: token #${npc.tokenId}`);

// 4. Roll for loot (Chainlink VRF v2.5)
const loot = await avalon.vrf.roll(playerAddress);
console.log(`Dropped: ${loot.item.name} (${loot.rarity})`);

// 5. Check economy stats
const stats = await avalon.economy.stats();
console.log(`Total deposits: ${stats.totalDeposits}`);

// That's it! Your game now has:
// - Its own Avalanche L1 chain
// - AI NPCs with on-chain wallets
// - Provably fair loot via Chainlink VRF
// - Stablecoin economies via Tether WDK

Ready to Ship?

See Avalon in action play Chronos Battle, built entirely on the SDK.