Roadmap
The phase model — Phase 0 paper copy, Phase 1 testnet desks, Phase 2 open desks and $SEAT — and what is explicitly later.
The roadmap below contains only phases that exist in the repository. It is non-binding by the project's own declaration, and each phase's status is verified against code, not aspirations.
Phase 0 — Paper copy ::status{value="implemented"}
Goal: prove the mechanism without real money.
- The keeper observes hypothetical leader fills and produces copy signals.
- The risk module accepts, rejects, or sizes each signal deterministically.
- Execution is paper only — no router is configured and no funds move.
- Every decision is explainable: the tape records why a fill was copied, resized, or skipped.
Run it with make paper. Specification: litepaper.
Phase 1 — Testnet desks ::status{value="implemented"}
Goal: wire the cash vault to Robinhood testnet 46630.
DeskFactory.createDesk(leader)on46630.- Depositors approve USDG and mint seat shares; redeem is instant when cash is available, otherwise queued.
- The app reads NAV, shares, cash and leader from the vault; writes are enabled on
46630(and4663once a capped vault exists). - The keeper binds to
vault.leader(); it does not choose a leader. - Fill tape rows are labelled
source=fixtureorsource=chain; fixtures are never labelled live. - Live execution fails closed on
46630(no cited router). On4663it requiresExactInputRouter02plus a trade-eligible symbol.
Runbook: Phase 1. Cited mainnet facts: Phase 1 live.
Capped mainnet desk ::status{value="planned"}
Wired into DeployMainnet.s.sol but not broadcast:
- One desk on
4663with a $50,000 USDG deposit cap. - Cited NVDA / AAPL / SPY tokens, Chainlink feeds, and Uniswap SwapRouter02 (via
ExactInputRouter02, pool fee 3000). - Refuses to run unless
CONFIRM_MAINNET=I_UNDERSTANDand the chain id is4663. Never deploysSeatToken.
See Deployment → Mainnet.
Phase 2 — Open desks + $SEAT ::status{value="experimental"}
Code shipped; TGE guarded. Specification: Phase 2.
SeatToken: fixed 1,000,000,000$SEAT, 18 decimals, minted once to the holder at deploy, no mint after.- Fee split becomes 70% leader / 20% protocol / 10% stakers on Phase 2 desks (Phase 1 vaults keep 80/20).
StakingPool: stake$SEAT, claim pro-rata USDG from desk fee harvest.- Stake-to-list: anyone can
listDesk(leader)by posting a$SEATbond (default 100,000$SEAT); ownercreateDeskremains. LpLocker: locks a Uniswap v3 position NFT for ≥ 365 days.- Up to three leader desks from
LEADER_ADDRESS/LEADER_2/LEADER_3; later leaders vialistDesk.
Broadcast requires both CONFIRM_MAINNET=I_UNDERSTAND and CONFIRM_SEAT_TGE=I_UNDERSTAND. Checklist: mainnet-day.
Later ::status{value="not-implemented"}
Named in the litepaper and Phase 2 doc as out of scope, with no code in the repository:
- Buyback-and-burn keeper
- Vesting cliffs and merkle airdrop
- Bond slashing (Phase 3)
- Ungated mainnet AUM
- Phase 3 tools (gap skip, agent seat, multi-leader portfolio) and Phase 4 (RFQ/Rialto, insurance)