Mainnet bootstrap sequence¶
ELI5: Don't launch all four protocols at once. Turn them on in phases so each step has revenue or credibility before the next depends on it.
Why phased launch¶
FLYWHEEL 2.0 is a revenue recycler — Coil fees and CDP stability fees fund Keep, sTARE, and voter bribes. At zero volume the loop degrades to idle CoilMaker + zero USDC bribes + lending-only Keep yield. Phasing avoids marketing a flywheel that isn't spinning yet.
Phase overview¶
flowchart LR
P0[Phase 0 CDP + pool] --> P1[Phase 1 Keep fallbacks]
P1 --> P2[Phase 2 Coil soft launch]
P2 --> P3[Phase 3 veForge activation]
P3 --> P4[Phase 4 Full flywheel]
| Phase | Live products | Flywheel state |
|---|---|---|
| 0 | TARE CDP, sTARE, Curve peg pool, PegKeeper | CDP fees → sTARE only |
| 1 | Keep vault (fallback strategies) | USDC yield vault; no Coil |
| 2 | Coil + CoilMaker + owned solver | Fee loop starts; keep_bps on |
| 3 | veTARE locks, gauges, USDC bribes | Governance steers fallback weights |
| 4 | Full routing + keeper mesh | Closed loop at target volume |
Phase 0 — CDP + peg pool¶
Goal: TARE mintable, peg credible, sTARE yield from stability fees.
Deploy:
- TareEngine with real WETH/WBTC + dual Chainlink feeds
- sTARE wired to engine or SurplusSplitter path
- Curve TARE/crvUSD (or USDC) pool — target depth per mainnet params
- PegKeeper bot on 15-min cadence
Params: Set stability_fee, surplus_buffer_target, PegKeeper debt_ceiling.
Do not enable yet: Coil, Keep CoilMaker, veForge bribes.
Success criteria: Peg within band for 30+ days; CDP TVL > internal floor; sTARE PPS rising from fees.
Phase 1 — Keep (fallbacks only)¶
Goal: kkUSD as USDC yield product while Coil infra matures.
Deploy:
- MultiStrategyVault with Aave/Compound/Morpho/CurveTARE only
- Do not add CoilMakerStrategy yet (or set
max_debt = 0) - Accountant + deposit cap for launch
Success criteria: Vault share price stable; withdrawals work under stress test.
Phase 2 — Coil soft launch¶
Goal: First trading fees; protocol-owned market making.
Prerequisites:
- Solver M2–M7 complete (solver README)
- CoilMakerStrategy added with seeded
max_debt - CoilFeeRouter wired; set
keep_bps+max_swap_in - Dedicated solver key (not deployer EOA)
Ops:
- Run keeper fleet:
harvest,vault-allocate, CoilMakerapprove_intent - Monitor solver P&L vs gas
Success criteria: >$X monthly Coil volume (internal target: $5M+ before Phase 3); positive solver economics.
Phase 3 — veForge activation¶
Goal: Voters steer capital; USDC bribes from real fees.
Enable:
gauge_bpson CoilFeeRouter (e.g. 2000)- VotingEscrow + GaugeController + BribeDistributor
- GaugeWeightRouter
poke()after epoch boundary (Thu 00:00 UTC)
Optional: Protocol-seed epoch 1–N bribes if organic fees still thin.
Success criteria: veTARE TVL grows; bribe APR competitive with lock opportunity cost.
Phase 4 — Full flywheel¶
Goal: Closed loop at scale.
Enable:
- SurplusSplitter
emission_bps→ CoilMaker reinvestment - Full keeper mesh (surplus pipeline + peg + harvest + poke)
- Raise deposit limits; decentralize solver allowlist when ready
Monitor: Fee split ratios, CoilMaker utilization, sTARE vs kkUSD yield competition.
Capital and ops checklist¶
| Item | Phase | Notes |
|---|---|---|
Pool depth ≥ 20× max_swap_in |
0 | StressSim harvest guidance |
| Keep seed TVL | 2 | CoilMaker resting liquidity |
| Keeper bots | 0–4 | See script/keepers/ |
| Timelock on admin roles | 0 | Before any public TVL |
| External audit sign-off | 0 | Blocker for all phases |
deploy_verifier GO |
Each | pre_launch_check.sh |
Degraded modes (expected)¶
| Condition | System behavior |
|---|---|
| No Coil volume | CoilMaker idle; fallbacks earn lending APR |
| No CDP fees | sTARE flat; surplus only from Coil path |
| No veTARE locks | Bribes accrue unclaimed in distributor |
| Oracle halt | Mint/deposit/liquidation pricing reverts — no bad mints |