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.
# 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.
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.
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