Tokenomics
Chaos Protocol's tokenomics design aims to create a sustainable ecosystem, achieving token value circulation through transaction taxes, burning mechanisms, and betting systems.
Token Basic Information
| Property | Value |
|---|---|
| Token Name | Chaos |
| Token Symbol | Chaos |
| Initial Supply | 100,000,000 (100M) |
| Chain | BSC (Binance Smart Chain) |
| Standard | BEP-20 |
Supply Distribution
Initial Distribution
Initial Supply: 100,000,000 Chaos
┌─────────────────────────────────┐
│ Initial Liquidity (PancakeSwap) 50% │
│ 50M Chaos + 80K USDT │
├─────────────────────────────────┤
│ Private Investors (603) 50% │
│ 200-2000 USDT/Address │
│ Token + LP Distributed by Ratio │
└─────────────────────────────────┘The initial supply is all minted to tx.origin (deployer address) during contract deployment, then:
- 50,000,000 Chaos + 80,000 USDT for initial liquidity
- Remaining tokens distributed to 603 private investors via
BatchInit.s.sol
Private Investor Distribution
Private investors each invest 200-2000 USDT, receiving Token and LP at a fixed ratio:
| Investment (USDT) | Token Received | LP Received | Ratio |
|---|---|---|---|
| 2000 | 312,500 Chaos | 12,500 LP | Token = USDT × 156.25 |
| 1000 | 156,250 Chaos | 6,250 LP | LP = USDT × 6.25 |
| 500 | 78,125 Chaos | 3,125 LP | |
| 400 | 62,500 Chaos | 2,500 LP | |
| 300 | 46,875 Chaos | 1,875 LP | |
| 200 | 31,250 Chaos | 1,250 LP |
Distribution Ratio:
- Token : USDT = 156.25 : 1
- LP : USDT = 6.25 : 1
Distribution Script: script/BatchInit.s.sol
// Execute batch airdrop
uint256[] memory tokenAmounts = BatchInitData.getTokenAmounts();
token.batchAirdrop(addrs, amts);
// Execute BurnPool initialization (optional)
uint256[] memory usdtAmounts = BatchInitData.getUsdtAmounts();
burnPool.batchInitialize(addrs, amts);
// Execute Vault LP distribution (optional)
uint256[] memory lpAmounts = BatchInitData.getLpAmounts();
vault.batchCreditLp(addrs, amts);Circulating Supply Changes
Due to the burning mechanism, circulating supply continuously decreases:
Circulating Supply = Initial Supply - Cumulative Burned AmountBatchInit Initialization Flow
Initialization after contract deployment via BatchInit.s.sol script:
graph TD
A[Deploy Contract] --> B[Mint 100M Chaos to Deployer]
B --> C[Add Initial Liquidity]
C --> D[50M Chaos + 80K USDT → PancakeSwap LP]
D --> E[batchAirdrop]
E --> F[603 Private Addresses Receive Tokens by Ratio]
F --> G[Optional: batchInitialize]
G --> H[Optional: batchCreditLp]
H --> I[Initialization Complete]Initial Liquidity:
// Initial liquidity added to PancakeSwap
uint256 usdtAmt = 80_000 ether; // 80,000 USDT
uint256 tokenAmt = 50_000_000 ether; // 50,000,000 Chaos (50% supply)Initialization Data: test/BatchInitData.sol
library BatchInitData {
function getUsers() internal pure returns (address[] memory) {
address[] memory users = new address[](603);
users[0] = 0xaD71bAdbA129870c1bc8B2f8b6FF8f1A0978B4A9;
users[1] = 0x4b670a235B77e621894F84d9e23cf5Dd869C3AD1;
// ... 603 addresses total
}
function getTokenAmounts() internal pure returns (uint256[] memory) {
// Distributed by USDT investment ratio: Token = USDT × 156.25
amounts[0] = 31250000000000000000000; // 200 USDT → 31,250 Chaos
amounts[602] = 312500000000000000000000; // 2000 USDT → 312,500 Chaos
// ...
}
function getLpAmounts() internal pure returns (uint256[] memory) {
// Distributed by USDT investment ratio: LP = USDT × 6.25
amounts[0] = 1250000000000000000000; // 200 USDT → 1,250 LP
amounts[602] = 12500000000000000000000; // 2000 USDT → 12,500 LP
// ...
}
}Transaction Tax Mechanism
Tax Rate Structure
uint256 public constant FEE_RATE = 300; // 3%Each transaction involving PancakeSwap trading pair charges 3% tax.
Tax Distribution
Transaction tax distribution:
Transaction Tax (3%)
│
├──→ 80% ──→ BurnPoolV2 (Dividend Pool)
│
└──→ 20% ──→ BurnPoolV2 (Prize Pool)| Distribution | Percentage | Purpose |
|---|---|---|
| Dividend Pool | 80% | FIFO queue user dividends |
| Prize Pool | 20% | Boost acceleration rewards |
Tax Flow Example
假设某用户卖出 10,000 Chaos:
卖出 10,000 Chaos
↓
扣除 3% 税费 = 300 Chaos
↓
用户实际收到 9,700 Chaos
↓
300 Chaos 通过 PancakeSwap 换成 USDT
↓
假设换得 300 USDT
↓
├──→ 240 USDT ──→ BurnPoolV2 分红池 (80%)
└──→ 60 USDT ───→ BurnPoolV2 奖金池 (20%)Burning Mechanism
BurnPoolV2 Burning Flow
User token flow when participating in burning:
With Referrer:
User Invests 100 USDT
↓
┌───────────────────────────────────┐
│ 40 USDT → Add LP (All to User) │
│ 20 USDT → Referral Reward │
│ ├─ 10 USDT → Vault LP │
│ └─ 10 USDT → Tokens │
│ 35 USDT → Buy Tokens for Tax │
│ 5 USDT → Buy Tokens to Burn │
└───────────────────────────────────┘
↓
LP Deposited to VaultV5 → Enter FIFO Dividend QueueWithout Referrer:
User Invests 100 USDT
↓
┌───────────────────────────────────┐
│ 40 USDT → Add LP (All to User) │
│ 55 USDT → Buy Tokens for Tax │
│ 5 USDT → Buy Tokens to Burn │
└───────────────────────────────────┘
↓
LP Deposited to VaultV5 → Enter FIFO Dividend QueueToken Burning
Each burn destroys a portion of tokens:
| Scenario | Burn Ratio |
|---|---|
| No Referrer | Higher (most remaining tokens burned) |
| With Referrer | Lower (some given to referrer) |
Deflationary Effect
As burning progresses, circulating supply continuously decreases:
时间 →
供应量 ↓
初始供应 (1亿)
↓
燃烧 #1 → 销毁 X Chaos
↓
燃烧 #2 → 销毁 Y Chaos
↓
...
↓
流通供应持续减少Revenue Model
BurnPoolV2 Revenue
User revenue from burning:
| Metric | Value |
|---|---|
| Minimum Investment | 100 USDT |
| Target Return | 2x (200 USDT) |
| Revenue Source | Transaction tax dividends |
| Distribution Method | FIFO Queue |
Revenue Calculation Example
用户投入: 1000 USDT
目标回报: 2000 USDT
↓
等待交易税积累
↓
当分红累计达到 2000 USDT 时
↓
用户可以提取全部收益Boost Acceleration
Referrers can receive accelerated returns:
推荐人A推荐用户B
↓
用户B在8小时内完成燃烧
↓
推荐人A从奖金池获得额外奖励
↓
加速A的出队速度VaultV5 Betting Model
Betting Mechanism
Users can bet on token price movements:
创建者 (Creator) 接单者 (Taker)
│ │
│ USDT │ LP代币
↓ ↓
┌───────────────────────────────┐
│ 对赌合约 │
│ 基准价: 创建时的代币价格 │
└───────────────────────────────┘
↓
3天后结算
↓
┌───────┴───────┐
↓ ↓
价格上涨 价格下跌
↓ ↓
利润各50% 创建者保本
接单者承担亏损Revenue Limits
- Maximum profit: 2x investment
- Lock time: 30 minutes (after creation)
- Contract validity: 3 days
Economic Cycle
Complete Economic Flow
graph TD
A[User Transaction] -->|3% Tax| B[TaxToken]
B -->|80%| C[BurnPoolV2 Dividend Pool]
B -->|20%| D[BurnPoolV2 Prize Pool]
E[User Burn] -->|USDT| C
E -->|Token Burn| F[Deflation]
C -->|2x Return| G[User Revenue]
D -->|Boost Reward| H[Referrer Acceleration]
E -->|LP| I[VaultV5]
I -->|Betting| J[User Betting]
J -->|P&L Settlement| G
G -->|Reinvest| EValue Cycle
- Transaction Generates Tax → Increases dividend pool
- User Burns → Receives LP and dividend rights
- Dividends Accumulate → User receives returns
- Returns Reinvested → Continue burning
- Token Burning → Reduces supply, increases value
Risks and Incentives
Incentive Mechanism
| Incentive | Description |
|---|---|
| Transaction Tax Dividends | Hold tokens to receive dividends |
| Burn Returns | 2x return target |
| Referral Rewards | Additional LP and token rewards |
| Boost Acceleration | 8-hour referral window for queue acceleration |
| Betting Returns | Profit from price predictions |
Risk Factors
| Risk | Description |
|---|---|
| Market Risk | Token price fluctuations affect betting results |
| Liquidity Risk | Insufficient dividend pool funds may delay returns |
| Smart Contract Risk | Contract vulnerabilities may lead to fund loss |
Key Parameters
// TaxToken
uint256 FEE_RATE = 300; // 3% tax rate
uint256 MIN_SWAP_AMOUNT = 200; // Minimum swap amount
// BurnPoolV2
uint256 MIN_BASKET = 100; // Minimum investment (USDT)
uint256 MULTIPLE = 2; // Return multiple
uint256 BOOST_WINDOW = 8 hours; // Boost window
// VaultV5
uint256 LOCK_PERIOD = 3 days; // Contract lock time
uint256 MIN_CONTRACT = 30; // Minimum bet amount (USDT)
uint256 MAX_PROFIT = 2; // Maximum profit multiple
// BatchInit Private Distribution
uint256 INVESTORS = 603; // Number of private investors
uint256 TOKEN_RATIO = 15625; // Token/USDT ratio (×100)
uint256 LP_RATIO = 625; // LP/USDT ratio (×100)
uint256 MIN_INVEST = 200; // Minimum investment (USDT)
uint256 MAX_INVEST = 2000; // Maximum investment (USDT)
// Initial Liquidity
uint256 INITIAL_USDT = 80_000; // Initial liquidity USDT
uint256 INITIAL_TOKEN = 50_000_000; // Initial liquidity Token (50% supply)