Skip to content

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

PropertyValue
Contract TypeUUPS Upgradeable
Minimum Investment100 USDT
Return Multiple2x
Referral RewardYes
Permit2 SupportYes

Core Mechanism

1. Burn Process

Users participate in "burning" through BurnPoolV2, which is actually an investment behavior:

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 Queue

Without 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 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:

solidity
struct UserInfo {
    uint256 totalInvested;    // Total USDT invested
    uint256 totalWithdrawn;   // Total USDT withdrawn
    uint256 queueIndex;       // Position in queue
    bool isInQueue;           // Whether in queue
}

Dividend Flow:

  1. User enters queue after investing USDT
  2. USDT from TaxToken transaction tax enters BurnPoolV2
  3. USDT is distributed to all active users according to accPerShare
  4. User automatically exits queue when cumulative returns reach target (investment × 2)

3. Revenue Calculation

solidity
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 acceleration mechanism:

solidity
uint256 public constant BOOST_WINDOW = 8 hours;

Trigger Conditions:

  • Referrer's referral completes burn within 8 hours
  • Referrer can receive additional rewards from prize pool

Prize Pool Source:

  • 20% of TaxToken transaction tax enters via notifyPrizeReceived

User Operations

Participate in Burn

solidity
// 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

solidity
// 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

solidity
function claimUsdt() external;

Revenue Sources

BurnPoolV2's revenue sources:

SourcePercentageDescription
TaxToken Transaction Tax80%80% of 3% tax from each Chaos transaction
User Burn Investment100%USDT invested by users for token purchase

Security Features

  1. UUPS Upgradeable: Supports contract upgrade without changing address
  2. Permit2 Support: Gasless signature operations
  3. FIFO Queue: Ensures fair revenue distribution
  4. Minimum Investment: 100 USDT prevents dust attacks

Data Structures

UserInfo

solidity
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

solidity
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);

Chaos Protocol Documentation