Skip to content

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, CoilMaker approve_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_bps on 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