BurnPoolV2
BurnPoolV2 is the core revenue distribution contract of Chaos Protocol, implementing a "burn-to-invest" return system based on FIFO (First In, First Out) queue.
Basic Information
| Property | Value |
|---|---|
| Contract Type | UUPS Upgradeable |
| Minimum Investment | 100 USDT |
| Return Multiple | 2x |
| Referral Reward | Yes |
| Permit2 Support | Yes |
Core Mechanism
1. Burn Process
Users participate in "burning" through BurnPoolV2, which is actually an investment behavior:
With Referrer:
| Distribution | Amount | Description |
|---|---|---|
| Add LP | 40 USDT | All to user |
| Referral Reward | 20 USDT | 10 USDT → Vault LP, 10 USDT → Tokens |
| Buy Tokens for Dividend | 35 USDT | 3% transaction tax goes to dividend pool |
| Buy Tokens to Burn | 5 USDT | Sent to black hole address |
Without Referrer:
| Distribution | Amount | Description |
|---|---|---|
| Add LP | 40 USDT | All to user |
| Buy Tokens for Dividend | 55 USDT | 3% transaction tax goes to dividend pool |
| Buy Tokens to Burn | 5 USDT | Sent to black hole address |
LP Deposited to VaultV5 → Enter FIFO Dividend Queue
Distribution Details:
- LP Portion: 40 USDT + equivalent tokens for liquidity, all to user
- Referral Reward: 10 USDT equivalent Vault LP + 10 USDT equivalent tokens to referrer (without referrer, added to tax participation)
- Tax Participation: Buy tokens, 3% transaction tax goes to dividend pool
- Burn Mechanism: 5 USDT to buy tokens sent to black hole address, reducing circulating supply
2. FIFO Dividend Queue
BurnPoolV2 uses a first-in-first-out queue to manage user dividends:
struct UserInfo {
uint256 totalInvested; // Total USDT invested
uint256 totalWithdrawn; // Total USDT withdrawn
uint256 queueIndex; // Position in queue
bool isInQueue; // Whether in queue
}Dividend Flow:
- User enters queue after investing USDT
- USDT from TaxToken transaction tax enters BurnPoolV2
- USDT is distributed to all active users according to
accPerShare - User automatically exits queue when cumulative returns reach target (investment × 2)
3. Revenue Calculation
uint256 public constant MULTIPLE = 2; // 2x return
// User target return
uint256 targetReturn = user.totalInvested * MULTIPLE;
// Current withdrawable return
uint256 pending = user.totalInvested * accPerShare - user.totalWithdrawn;4. Referrer System
Users can bind a referrer during their first burn:
Binding Conditions:
- Referrer must have already performed a burn
- Once bound, cannot be changed
Referrer Rewards (100 USDT burn example):
- 10 USDT equivalent Vault LP
- 10 USDT equivalent tokens
Without Referrer:
- 40 USDT LP all to user
- Referral reward portion goes to burn
5. Boost Acceleration Mechanism
BurnPoolV2 implements a referrer queue-exit acceleration mechanism:
uint256 public constant BOOST_INTERVAL = 8 hours;Example: A refers B to burn, B enters queue. Later, C burns and enters queue. The system checks that B has been queued for over 8 hours, triggering Boost for A:
Prize Pool Source: 20% of TaxToken transaction tax enters via notifyPrizeReceived
User Operations
Participate in Burn
// Basic burn
function burn(uint256 usdtAmount) external;
// Burn with referrer
function burnWithReferrer(
uint256 usdtAmount,
address referrer
) external;
// Permit2 signature burn (gasless)
function burnWithPermit(
uint256 usdtAmount,
address referrer,
Permit2Data calldata permit2Data
) external;Query Returns
// Query pending USDT
function getPendingUsdt(address user) external view returns (uint256);
// Query user info
function getUserInfo(address user) external view returns (UserInfo memory);
// Query queue info
function getQueueInfo() external view returns (
uint256 totalQueued,
uint256 nextIndex,
uint256 totalPending
);Claim Dividends
function claimUsdt() external;Revenue Sources
BurnPoolV2's revenue sources:
| Source | Percentage | Description |
|---|---|---|
| TaxToken Transaction Tax | 80% | 80% of 3% tax from each Chaos transaction |
| User Burn Investment | 100% | USDT invested by users for token purchase |
Security Features
- UUPS Upgradeable: Supports contract upgrade without changing address
- Permit2 Support: Gasless signature operations
- FIFO Queue: Ensures fair revenue distribution
- Minimum Investment: 100 USDT prevents dust attacks
Data Structures
UserInfo
struct UserInfo {
uint256 totalInvested; // Total USDT invested
uint256 totalWithdrawn; // Total USDT withdrawn
uint256 queueIndex; // Position in queue
bool isInQueue; // Whether in queue
address referrer; // Referrer address
uint256 referrerReward; // Referrer rewards received
uint256 lastBurnTimestamp; // Last burn timestamp
}Events
event Burn(address indexed user, uint256 usdtAmount, uint256 lpAmount);
event Claim(address indexed user, uint256 usdtAmount);
event ReferrerBound(address indexed user, address indexed referrer);
event BoostTriggered(address indexed referrer, uint256 bonusAmount);