suited briefs
Flywheel product

flywheel.games — v1 brief

The launcher, the fee split and the games that sit on top of it.

2026-10-12 · product brief

Product definition and locked scope for the token launcher + house games platform (Dice live in pad; American Blackjack next). Brand is FLYWHEEL.GAMES; $SUITED is the pairing / ecosystem token, not the product brand. Domain flywheel.games is owned.

Companion design refs (workspace assets / chat attachments):

  • Coming Soon landing (pre-launch waitlist) — primary first ship surface
  • Earlier FLYWHEEL.GAMES marketing / how-it-works comps (style inspiration only)
  • SUITED-style launcher form mock (launch UX inspiration for post–Coming Soon)

One-paragraph product

Anyone can launch a meme token on Robinhood Chain via Flywheel. Every token is paired with $SUITED. At launch the creator picks exactly one registered game; a fixed 50% of supply goes to that game’s house vault (not choosable); the rest (50%) seeds a Model C $TOKEN / $SUITED V4 ask book (early depth bands + deep α≈2 tail). One token → one game (no multi-game split). Players buy the token from the pool to play that game. Games without a related pad token show Practice Mode Only. Pad v1 ships Dice first; American Blackjack remains in the registry for launches. Creators earn $USDG yield from permanently staked $SUITED LP fees (not liquid $SUITED) via a transferable Flywheel Creator NFT (one per launch); the house is funded by launch allocation, $TOKEN-side LP fees, and 100% of public-table rake. Private rooms keep today’s SBJ rake split.

Locked architecture choices

IDChoice
A2Add launcher-pad/ beside existing blackjack/; do not relocate BJ yet
B2 + B4One game per token at launch (dropdown); fixed 50% house → that game’s vault, not an EOA
C1One vault per (game × token); many tokens may fund the same game over time
D1Brand FLYWHEEL.GAMES; $SUITED is pair asset only
Tokens in playPad-launched only (auto-enabled). Arbitrary external tokens later
Existing SBJFreeze MockUSDG / USDG vault path; rebuild for multi-token C1
DeployShip launcher + BJ together when ready; cut over live SBJ then
Poker / Suited.clubOut of v1; coordinate later with Suited devs
Model C LP6 early FDV/SUITED-depth asks + deep tail → max tick (~50% supply)
Creator LP fees$SUITED → shared StakeVault (keyed by token) → permanent stake; $USDG claim rights = holder of that launch’s Flywheel Creator NFT
Creator NFTTransferable ERC-721, one per launch, minted to launcher at launch; no mint fee; no royalties; unclaimed $USDG follows the NFT

In scope for v1

  1. Coming Soon page on flywheel.games (exact visual match to the Coming Soon reference; waitlist / notify; promote while building).
  2. Token launcher (after Coming Soon): name, symbol, supply, description; dropdown: pick one registered game; fixed 50% house to that game’s vault (not choosable); seed $TOKEN/$SUITED pool.
  3. Immutable on-chain game registry + app registry (src/lib/games.ts) — fixed set of games / vault factories; lobby + launch dropdown read the app list; deploy registers the same gameIds on-chain.
  4. Dice (pad) + American Blackjack (rebuild): each accepts pad-launched tokens that allocated to that game; no related token → Practice Mode Only; C1 vault per token; public rake → house; private rooms as current SBJ policy.
  5. Fee split
  6. LP: $SUITED → StakeVault → SuitedStaking (one-way); $TOKEN → house
  7. NFT holder claims $USDG staking rewards only (no principal); claim tx must be from the current owner
  8. Public tables: 100% rake → house
  9. Private rooms: unchanged (host / platform split as SBJ today)
  10. Flywheel Creator NFT — ERC-721 per launch; on-chain SVG tokenURI with token identity + live Total Staked / Total Claimed; UI on token detail + gallery.

Out of scope for v1

  • Bonding-curve / full Pons-clone graduation (may come later)
  • Non–pad-launched tokens as play currency
  • Roulette, slots, craps, baccarat (registry may reserve slots; no playable v1)
  • Geoblocking (defer; product framing is meme tokens, not USDG)
  • Integrating Suited NLHE as a Flywheel game house
  • Moving blackjack/ under launcher-pad/games/ (revisit after co-deploy)
  • Creator withdrawing or redirecting staked $SUITED principal
  • Creator NFT royalties, mint fees, or secondary-market fee skims

Domain model (commitments)

  • Game — immutable registry entry (id, name, vault factory / house path); also listed in the app registry for lobby + launch UI.
  • Launch — creator, token address, supply, single game + fixed 50% house, pool address, timestamp.
  • HouseVault(game, token) — holds launch allocation + $TOKEN LP fees + public rake; pays wins; settler-controlled like today’s Suited/SBJ vault model.
  • Pool — $TOKEN ↔ $SUITED V4; Model C trenches; fee sides routed as above.
  • StakeVault — single contract; keyed by launched token address; tracks staked $SUITED per token; stakes into SuitedStaking; splits $USDG rewards pro-rata by token stake. Claim payee / permission = FlywheelCreator.ownerOf(tokenIdOf[token]).
  • FlywheelCreator — ERC-721 collection; one NFT per pad launch; maps launch token ↔ tokenId; tokenURI is on-chain SVG (name/ticker + live staked / claimed from StakeVault). Optional off-chain art URI settable by holder.
  • Creator (NFT holder) — current owner of that launch’s Creator NFT; earns $USDG only; does not take public table rake; does not receive liquid $SUITED fees. Transfer moves claim rights and unclaimed balance.
  • Player — buys $TOKEN from pool; deposits into that token’s BJ vault; plays.

Model C launch book (locked)

StageFDV band (at 10k SUITED = $1)SUITED to clearTOKEN (approx)
Early 1$10k → $50k1M~4.47M
Early 2$50k → $100k1M~1.41M
Early 3$100k → $1M8M~2.53M
Early 4$1M → $2M5M~0.35M
Early 5$2M → $4M10M~0.35M
Early 6$4M → $8M10M~0.18M
Deep tail$8M → ∞ (max tick)α=2 deep book~490.7M residual

Open: 1 SUITED = 10 TOKEN (P = 0.1). Bid: 10k $SUITED thin floor from ~$0 → open (min usable tick → just under open); always a bid, very little depth per tick. House: exactly 50% of supply (fixed; not choosable).

Balanced house allocation

RuleValue (current pad)
Games per tokenexactly one (AllocationLib + launch dropdown)
Total to houseexactly 50% (HOUSE_BPS) to that game
Remainder50% Model C LP
Choosable?No — protocol + UI fixed at 50%; launch form shows read-only

Flow (launch → play → creator yield)

  1. Creator launches via Flywheel (paired with $SUITED), picks one game (Dice / Blackjack / …); house is fixed 50% to that game.
  2. Factory mints token; FlywheelCreator.mint (1 NFT → launcher); sends house % to HouseVault(game, token); remainder → FeeSplitter Model C positions; StakeVault.register(token) (NFT must exist).
  3. Players buy $TOKEN from the pool to play that game. Games with no related token stay Practice Mode Only.
  4. FeeSplitter.collect(): $TOKEN fees → houses; $SUITED fees → StakeVault.creditFees(token) → stake into SuitedStaking (one-way).
  5. NFT holder claims $USDG from StakeVault for that token; principal $SUITED stays locked / relocked in staking. Unclaimed follows NFT transfers.

Flywheel Creator NFT (locked)

RuleValue
StandardERC-721, transferable
SupplyExactly one NFT per pad launch
MintAt launch, to msg.sender (launcher); no mint fee
RoyaltiesNone (no EIP-2981 / marketplace skim)
Claim rightsOnly current ownerOf may call StakeVault.claim(token)
Unclaimed $USDGAccrues to the token bucket; paid to whoever holds the NFT when claiming
ArtOn-chain SVG tokenURI (ticker/name + live Total Staked / Total Claimed); holder may set an optional image URI for metadata
SurfacesToken detail (claim + NFT ref) + /gallery of all Creator NFTs

Repo / delivery sequence

  1. Brief (this doc) — updated for Model C + StakeVault + Creator NFT.
  2. Coming Soon under launcher-pad/ — pixel-faithful to reference.
  3. Launcher contracts + UI — Model C, StakeVault, FlywheelCreator NFT, SuitedStaking + MockUSDG on local; fee routing + gallery as above.
  4. BJ rebuild — freeze USDG path; C1 multi-token vaults; pad-token allowlist.
  5. Co-deploy launcher + BJ; wire mainnet SuitedStaking / USDG when ready.

Open questions (follow-up)

  • Exact public rake rate for meme-token BJ / Dice.
  • Side bets in multi-token BJ.
  • Mainnet: use live SuitedStaking (0x1071…18dC) vs Flywheel-owned instance.
  • StakeVault lock tier (default max / 30d) and permissionless relock cadence.
  • Whether creator can allocate to multiple games → locked: one game per token.

Design note for Coming Soon

Build the landing exactly from the Coming Soon reference image.

Non-goals / framing

  • Do not market as a USDG casino; tokens are meme / game fuel.
  • Geoblocking later if needed.
  • Minimum centralization: immutable registry after deploy; no admin re-pointing of house destinations for a given launch.