Whitepaper · v3 · design draft
A daily stock-picking
tournament, settled on-chain
SKYRAT is the protocol. $CHEESE is the currency. A Seat is one NFT — a desk on the floor — and it is the only way in.
1 · What it is
Each trading day there is one pit. A Seat holder names a ticker and a direction. Every entrant is ranked by how far their ticker moved relative to its own normal volatility, and the top ranks split the pot. Entry costs one ticket, and a ticket is the only thing at stake.
A Seat arrives from mint already holding tokenized stock inside its own account, plus three tickets. That stock is never wagered. It leaves only when the Seat is burned.
Fantasy stocks, and the stock is in the seat.
2 · The Seat
An ERC-721 with a token-bound account per token, using the canonical ERC-6551 registry deployed on chain 4663. Everything the desk owns is keyed to the Seat’s id in the contract that holds it:
- Backing stock — credited to the Seat at mint, in
BackingVault. Locked until burn, and released by the same call that burns. - Tickets — pit entries, a flat 10,000
$CHEESEeach, forever. - Locked winnings — 25% of every prize, released only on burn.
- Claimable winnings — the other 75%, withdrawable any time.
- Record — pits played, wins, best score, current streak.
The backing deliberately does not live in the token-bound account. A reference ERC-6551 account authorises through ownerOf, which fails the design twice: the holder could execute a transfer and empty it at any time, and burning the Seat makes ownerOf revert, so the one exit the design permits is the exact moment the account stops being able to authorise anything. Keying the shares to the Seat id instead makes “release” and “burn” the same function call, so they cannot come apart. The account remains, for identity and for anything a holder parks there themselves.
Selling a Seat sells the desk, its stock, its locked winnings and its history in one transaction. Entry is keyed to the Seat, not the wallet — there is no ownership check at lock or settle, so if a Seat changes hands mid-pit the entry and the prize go to whoever holds it at settlement. That is deliberate, and it is the most distinctive surface in the design: scores are public while the pit runs, so a Seat leading with hours left is a tradable asset at a legible price.
Backing stock
30% of net mint proceeds buys tokenized equity, credited to each Seat at mint. Every Seat is owed the same number of shares forever, and that holding rises and falls with the market. It is a market-linked floor, not a static one, and that is the whole reason for holding stock rather than cash.
The mint is priced in ETH — 0.0003333 per Seat, 1.111 ETH across the collection — so the dollar value of the backing is set by whatever ETH is worth on drop day, not by a figure fixed in advance. The share count per Seat is decided once the tranche is bought and is identical for every Seat from then on.
Activation
Optional, and playing never requires it. An unactivated Seat can enter every pit, win every prize, and trade freely. Activation puts a Seat on the payroll: activated Seats share a slice of token trading fees, by weight.
| Tier | Cost ($CHEESE) | Weight |
|---|---|---|
| Base | 33,333 | 1.0× |
| Floor | 100,000 | 2.0× |
| Pit Boss | 333,333 | 3.5× |
90% of every activation fee is burned; 10% goes to treasury. Activation lapses when the Seat transfers, and unclaimed accrual is forfeited at that moment.
Those costs are flat token amounts written into the contract at deployment, with no setter and no oracle. Against the fixed 1,000,000,000 supply, Floor activation runs $1.00 at a $10,000 market cap and $5.00 at $50,000. The protocol does not target a dollar figure and does not pretend to know which of those is the real one.
That last rule is the entire point. Seats are bought and sold in ETH, so the Seat economy contributed nothing to $CHEESE before activation existed. With lapse-on-transfer, every Seat sale creates fresh token demand.
3 · Scoring
For entrant i on symbol s, over the pit window:
r = price(close) / price(open) − 1 score = side × r / max(σ, σ_floor)
side is +1 or −1, declared at entry. σ is that symbol’s own recent volatility, an EWMA over the trailing 30 pit observations.
Why divide by volatility. Over one session a large-cap moves perhaps 1–2%. Ranked on raw return, everyone converges on the highest-beta ticker, ticker choice stops being a decision, and everyone on the same ticker ties. Dividing by the ticker’s own habit changes the question from which ticker moves most to which moves furthest beyond what it usually does.
σ is seeded at deployment from published historical daily volatility and converges on live data over the first six weeks. Whoever computes that seed can tilt early scoring, so the numbers and the method are published before launch and Season 0 is unranked regardless.
Payout ranks
| Entrants | Paid ranks |
|---|---|
| under 5 | pit voids, tickets refunded |
| 5 – 24 | winner takes all |
| 25 – 99 | top 3 — 55 / 30 / 15 |
| 100+ | top 10 — 30 / 18 / 12 / 9 / 7 / 6 / 5 / 5 / 4 / 4 |
Ties on the same ticker and side split the sum of the slots they span.
4 · Why daily, and the lag
One pit per trading day, scored close-to-close on the US regular session. This is a cost decision, stated plainly: the paid oracle rail costs $150/month per ticker against a launch budget near $9,000 total. The free push feeds update on a 24-hour heartbeat or a 0.5% move — which an hourly window routinely fails to clear and a daily window reliably does.
The consequence is accepted, not solved. The feed updates two to four times a trading day. On the day it was measured, the last update before the 16:00 close landed at 10:21 ET — five hours and thirty-nine minutes early. So the “close” a contract can read is not the close, and a player can be right and still lose because the move landed after the last update.
The other half of that: stale feeds are readable, and that is an edge. Anyone can compare the feed price to the real market price and see a ticker carrying catch-up into the next window. The mitigation is not to hide it but to publish it — the site shows per-ticker freshness live, so it is part of the visible board rather than private information held by whoever thought to check.
Hourly pits are the upgrade, gated on turnout paying for the subscription. That migration changes the oracle adapter and the schedule, and nothing else.
5 · Economics
| Per pit | Share |
|---|---|
| Prize pot | 87% |
| Treasury | 5% |
| Burn | 5% |
| Keeper tip | 3% |
The total deduction is 13%, inside the 10–15% band daily fantasy operators charge. Earlier drafts of this design claimed the same while deducting 28%; that was not true and would not have survived being checked.
Operator revenue comes from four places: the one-off Seat mint, a 1.5% fee on$CHEESE swaps, the 5% rake, and 10% of activation fees. Under a daily cadence the rake is not the main line — the trading fee is. That is more robust, because a quiet game with an active token still funds operations. It also means revenue partly depends on speculation, which is volatile, so fixed costs should not be sized against launch-week volume.
The trading fee also carries cold-start. At $10,000 daily swap volume, the 0.6% pot slice puts $60/day into prizes, against the 870,000 $CHEESEthat 100 players at a 10,000-token ticket would fund — $8.70 at a $10,000 market cap, $43.50 at $50,000. At launch, traders fund the pot more than players do, and how much more depends entirely on the token.
6 · $CHEESE
Total supply 1,000,000,000, fixed. No inflation and no emissions.Nothing paid out is newly minted; rewards come from allocation. Once the cold-start seed decays to zero at the end of Season 2, every $CHEESEpaid out was paid in by a player or a trader.
| Allocation | Share |
|---|---|
| Liquidity and launch | 25% |
| Treasury and operations | 25% |
| Community and airdrop | 20% |
| Team — 12-month cliff, 24-month vest | 15% |
| Ecosystem and partnerships | 10% |
| Cold-start pot seeding | 5% |
Demand, stated honestly. Nothing in the game is USD-pegged. A ticket is 10,000 $CHEESE and activation is 33,333 / 100,000 / 333,333, fixed at deployment with no setter and no oracle anywhere in the path. Game demand is therefore a fixed token bid: a day with 100 entrants removes 1,000,000 $CHEESE from circulation regardless of price, and the 5% rake burn plus the 90% activation burn take a further cut permanently out of supply.
The honest flip side is that entry gets more expensive in dollars as the token rises, and there is no lever to soften it — deliberately, because a lever that can make entry cheap can also make it unaffordable, and §14.5 named exactly that as the risk. Against the fixed supply the numbers bracket where a peg would have sat anyway: at a $10,000 market cap a ticket is $0.10, at $50,000 it is $0.50. Above that range entry stops being casual, and the design accepts that rather than hiding it behind an oracle.
7 · Risk
The backing stock is custodial
Every Robinhood stock token consults an issuer-run registry on every transfer. A blocker role can freeze any address with no timelock. A registry-level pause halts transfers across every stock token at once, and the event history shows it has been exercised. An admin burn needs no holder approval. These roles are held by a plain deployer wallet — no multisig, no timelock — and the powers are instantaneous and unilateral.
This exposure is identical for every participant on this chain, and sealing the stock in a different wrapper would not avoid any of it. The response is to size it so a total loss is survivable: that is what the 30% cap is for.
Claimed: every Seat holds real tokenized stock, checkable by anyone on-chain.
Never claimed: a guaranteed floor, a price that cannot go to zero, assets nobody can touch, or trustless backing.
No external audit
The contracts are self-reviewed against a written checklist, verified on the explorer at deploy, and exposed to six weeks of unranked live play in Season 0 before prizes carry value. A bug bounty is funded from treasury before launch. That is not the same as an audit, and it is not presented as one.
The oracle is not ours
The free push feeds exist for whoever sponsors them, not for us. Deprecation comes with two weeks’ notice, and after shutdown the read reverts — a hard stop, not a graceful degradation. A read access controller could be installed at any time, which would halt settlement outright. Settlement reverts rather than settling on a stale value, so the failure mode is a paused game, never a wrong payout.
Sybil resistance rests on supply
A hundred entries requires a hundred Seats bought on the open market. That makes the 3,333 cap load-bearing beyond fundraising: it cannot later become an open mint without replacing this defence with something else.
8 · Still open
This is a design draft, and the following are genuinely undecided rather than quietly settled: the collection’s own name; the token launch venue; whether activation should expire seasonally as well as on transfer; and the exact locked share of each prize, currently proposed at 25%. Three of the four launch tickers still need their price feeds confirmed on chain.
Contracts are not deployed. Nothing on this site is investment advice.