Multi-phase is fixed-price only — it can’t be combined with oracle/USD pricing.
Each phase sets
| Field | Meaning |
|---|---|
startsAt / endsAt | The phase’s window |
tokensPerQuoteUnit | The price for this phase |
phaseCap | Cumulative raise ceiling by the end of this phase |
maxBuy | Per-wallet cumulative cap during this phase |
merkleRoot | Whitelist for this phase (empty = open to all) |
The rules
The contract enforces a few invariants so phases stay solvent and predictable:Price can only go up (rate can only go down)
Price can only go up (rate can only go down)
Each phase’s rate must be ≤ the previous phase’s — i.e. private buyers never pay more than
public. A cheaper early round that gets more expensive later is rejected.
Caps are cumulative and increasing
Caps are cumulative and increasing
phaseCap is a running high-water mark and must strictly increase. The last phase’s cap must
equal the hard cap.Phases don't overlap
Phases don't overlap
Each phase starts at or after the previous one ends. A gap between phases simply reads as
pending — no buys until the next phase opens.
FCFS within every phase
FCFS within every phase
First-come, first-served inside each phase too — no pro-rata.