Overview
How a launch works at a high level
┌─────────┐ ignite() ┌──────────────┐ creates V3 pool, ┌──────────────┐
│ Creator │──────────────▶│ FireLaunch │──────────────────────▶│ Stacked seed │
└─────────┘ └──────┬───────┘ seed + tail positions │ + tail pos │
│ └──────────────┘
│ if creatorAllocationBps > 0:
│ capture portion → FuelVault (creator liquid)
│ remainder → FireToken (creator vesting)
▼
┌──────────────┐
│ FuelVault │ ◀── on each buy: skimBps of token amount
│ │ credits the BUYER (not creator)
│ │ ◀── giftWithSig moves credits buyer→creator
└──────┬───────┘
│ withdraw (creator)
▼
creator wallet
trades happen ──▶ V3 Pool (bonding curve) ──▶ pre-grad fees:
• protocol (100%)
When price reaches graduation tick:
────────────────────────────────────────────────────────────
recordGraduationCondition() → grace period (registry-set)
────────────────────────────────────────────────────────────
│
▼
graduate() ──▶ setGraduated() (skim off, vesting starts)
burn all seed + tail positions
distribute pre-grad fees
mint full-range NFT to FireStream
FuelVault.onGraduated() (burn countdown)
After graduation:
Trades go through the now-ordinary V3 pool
FireStream.claimFees() splits NFT fees: registry recipients + creator
FireToken.releaseVested() unlocks linearly (no-op if creatorAllocationBps=0)
FuelVault.executeBurn() can permanently destroy ungifted user creditsThe contracts
Contract
What it does
Production defaults (frontend launches)
Parameter
Value
Note
Lifecycle states
State
What's true
Design notes for integrators
Pages in this section
Last updated