Token Lifecycle
Every token on LP24 passes through a defined set of states, from deployment through bonding curve trading to graduation on Uniswap V4 — or, if the curve doesn't fill, into refund mode.
Lifecycle States
| State | Flag | Description |
|---|---|---|
| Uninitialized | 0 | Proxy deployed but initialize() not yet called. No operations possible. |
| Active (Bonding) | FLAG_INITIALIZED (2) | Bonding curve is live. Users can buy and sell lots. Token transfers restricted to minter (the curve). |
| Graduated | FLAG_GRADUATED (4) | All 800,000 lots sold. Uniswap V4 pool created. Token freely tradable. Bonding curve buy/sell disabled. |
| Refund Mode | FLAG_REFUND_MODE (8) | Bonding period (3 days) expired without graduation. Pro-rata ETH refunds available to token holders. |
State Transitions
Uninitialized ──[initialize()]──→ Active (Bonding)
│
┌────────────────────┤
│ │
[buy() fills MAX_SUPPLY] [3 days expire, initiate_refund()]
│ │
▼ ▼
Graduated Refund Mode
(Uniswap V4 LP) (pro-rata ETH refunds)
Token Supply Breakdown
| Allocation | Amount | Lots | Recipient |
|---|---|---|---|
| Deployer initial mint | 60,000,000 tokens | 60,000 | Deployer wallet (locked, cannot sell) |
| Bonding curve supply | 740,000,000 tokens | 740,000 | Buyers via buy() |
| Liquidity tokens | 400,000,000 tokens | — | Minted to Hook at graduation |
| Max Total Supply | 1,200,000,000 tokens | 800,000 + LP |
1 lot = 1,000 tokens (with 9 decimals: 1000 * 10^9). All bonding curve operations are denominated in lots, not raw token amounts. Minimum trade is 1 lot.
User Limits
Each wallet is limited to holding 36,000 lots (36,000,000 tokens) during the bonding phase. This is approximately 4.5% of the max bonding supply. The limit is enforced by checking balanceOf() on the token contract rather than internal storage, saving ~17k gas per new buyer.
Because the limit is checked via balanceOf(), transferring tokens to another wallet during the bonding phase is not possible (transfers are locked to minter only). After graduation, there are no wallet limits.
Deployer Lock
The deployer's initial 60,000 lots are permanently locked on the bonding curve — the sell() function explicitly rejects calls from the deployer address. The deployer cannot sell during the bonding phase, and cannot claim refunds in refund mode. Their compensation comes from fee distributions after graduation.