CLOB Market Program Migration
Overview
The betting system has been migrated from a binary market program to a CLOB (Central Limit Order Book) market program for Solana mainnet deployment (commits dba3e03, 35c14f9).Changes
Program Addresses (Mainnet)
Fight Oracle:- Program ID:
Fg6PaFpoGXkYsidMpWxTWqkY8B4sT2u7hN8sV5kP6h1 - Location:
packages/gold-betting-demo/anchor/programs/fight_oracle/src/lib.rs
- Program ID: Updated to mainnet address
- Location:
packages/gold-betting-demo/anchor/programs/gold_clob_market/src/lib.rs - Replaces:
gold_binary_marketprogram (deprecated)
- Mint:
DK9nBUMfdu4XprPRWeh8f6KnQiGWD8Z4xz3yzs9gpump - Token Program:
TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb - Associated Token Program:
ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL
IDL Updates
Updated Files:packages/gold-betting-demo/keeper/src/idl/fight_oracle.json- Mainnet program IDpackages/gold-betting-demo/app/src/idl/fight_oracle.json- Mainnet program IDpackages/gold-betting-demo/app/src/idl/gold_clob_market.json- New CLOB market IDL- Removed:
gold_binary_market.json(deprecated)
Bot Rewrite
Location:packages/gold-betting-demo/keeper/src/bot.ts
Old Instructions (Binary Market):
initializeMarketseedMarketcreateVaultplaceBetresolveMarket
initializeConfig- Initialize global market configurationinitializeMatch- Create a new duel matchinitializeOrderBook- Create order book for a matchplaceBuyOrder- Place buy order (bet on fighter A)placeSellOrder- Place sell order (bet on fighter B)resolveMatch- Resolve match outcome and settle orders
- CLOB uses order book matching instead of binary yes/no pools
- Supports limit orders with price discovery
- More complex settlement logic (match buyers/sellers)
- No vault seeding required (liquidity provided by market makers)
Server Configuration
Location:packages/server/src/arena/config.ts
Fallback Program IDs:
Keeper Common
Location:packages/gold-betting-demo/keeper/src/common.ts
Fallback Program IDs:
Frontend Configuration
Location:packages/gold-betting-demo/app/.env.mainnet
Updated Variables:
Migration Guide
For Developers
1. Update Environment Variables:- Delete
gold_binary_marketprogram references - Remove vault seeding logic
- Update PDA derivations for CLOB accounts
For Operators
1. Deploy CLOB Program:CLOB Market Architecture
Account Structure
Instruction Flow
1. Initialize Config (one-time setup):Testing
Local Testing:Troubleshooting
Program deployment fails:- Ensure you have enough SOL for deployment (~5 SOL)
- Check program size:
ls -lh target/deploy/*.so - Verify keypair:
solana address --keypair <keypair-path>
- Check order book account exists
- Verify match is not resolved
- Ensure sufficient token balance
- Check price/amount validity
- Verify authority keypair is set:
SOLANA_ARENA_AUTHORITY_SECRET - Check RPC endpoint is responsive
- Ensure program accounts are initialized
References
- Commits: dba3e03, 35c14f9
- Author: lalalune (Shaw)
- Date: Feb 22, 2026
- Files Changed:
packages/gold-betting-demo/anchor/programs/fight_oracle/src/lib.rspackages/gold-betting-demo/anchor/programs/gold_clob_market/src/lib.rspackages/gold-betting-demo/keeper/src/bot.tspackages/gold-betting-demo/keeper/src/common.tspackages/gold-betting-demo/app/src/idl/fight_oracle.jsonpackages/gold-betting-demo/app/src/idl/gold_clob_market.jsonpackages/server/src/arena/config.tspackages/gold-betting-demo/app/.env.mainnet