Docs
last updated 21 Oct 2026Storeyrafter is a top-down pixel game set inside an exchange tower on Robinhood Chain. You play the floor runner. A pneumatic tube spits out order slips; each slip names a tokenized Robinhood Chain stock, a quantity and a price. Carry it to the desk that trades that stock, or to the shredder if its price has gone stale, and clear the floor's quota before the shift clock runs out.
Nothing in the game asks you to predict a price. It holds no funds, takes no deposits and pays nothing out.
How to play
no wallet on floors 1–5- Open /play. No wallet prompt, no sign-up, no e-mail: floor 1 starts from a single button and you are moving straight away.
- Move with the arrow keys or WASD on a keyboard, or the thumb stick on a phone.
- Pick up a slip by walking into it where the tube drops it. You carry one slip at a time; the slip shows its stock, quantity and price while you hold it.
- Read the desk boards. Each desk trades one stock and its board shows that stock's live Chainlink price, straight from Robinhood Chain.
- Deliver or shred. Walk the slip into the desk whose stock it names if its price is still inside the floor's tolerance. If it is stale, walk it into the shredder instead.
- Clear the quota before the clock hits zero and the lift opens for the floor above. Miss it and you ride down one. Floor 1 is the bottom.
What counts against you
- Misroute. A good slip delivered to the wrong desk. Look-alike tickers on the higher floors are there precisely to catch this.
- Bad shred. Shredding a slip whose price was still good.
- Bad delivery. Taking a stale slip to a desk instead of the shredder.
- Miss. A slip still lying on the floor, or still in your hands, when the clock stops.
The boards
In the artwork every desk board is drawn lit but empty: no ticker and no price is painted into the art. The symbol and the number you read on a board are drawn onto it while you play, from the Chainlink round the server just read on Robinhood Chain. That is why a board can disagree with the slip in your hand — the board is live and the slip is a quote from a moment ago.
How to spot a stale slip
Compare the price printed on the slip with the desk board for that stock. If the difference is bigger than this floor's tolerance, it is stale. Slips also carry their quote age, so an obviously old quote is readable in your hand — but the price is what decides it.
How a shift is judged
the server decides, not your browserWhen a shift starts, the server builds the floor plan and the slip script from Chainlink rounds it has just read on Robinhood Chain. Whether a slip is stale is worked out on the server and never sent to your browser — the game cannot tell you the answer, because it does not know it.
Your browser draws the floor and keeps a running score so the shift feels alive, but that number is cosmetic. At the end it sends back only what you did with each slip and when. The server re-judges every delivery against the rounds it used and returns the result it stores, with its round IDs. That stored result is what the board and the proof link show.
- Delivered: a good slip taken to the right desk.
- Shredded: a stale slip taken to the shredder.
- Misrouted: wrong desk, bad shred, or a stale slip delivered.
- Missed: never finished before the clock stopped.
Speed matters only after correctness: a misroute gains nothing from being fast.
Floors and tolerance
ten floors and the PenthouseTolerance is how far the price on a slip may sit from the desk's current round and still count as good, written as a percentage of that round's price. Inside the tolerance, the slip belongs at the desk; outside it, the slip belongs in the shredder.
A floor is a difficulty setting, not a market. Going up means more desks to keep straight, a tighter tolerance, slips arriving faster, tickers that look alike, and more clerks crossing your path. The numbers for every floor are published at GET /api/state under floors, and the table below is filled from that response when this page loads. The same values come back from POST /api/shift/start when a shift begins — tolerancePct, quota and seconds — and the floor's door shows them before you accept the shift. Nothing in the table is typed into this page.
| Floor | Desks | Tolerance | A slip every | Quota in 60s | Access |
|---|---|---|---|---|---|
| Reading the floor curve from the server… | |||||
The lift
One shift is one ride. Clear the quota and the lift opens for the floor above; miss it and it takes you down one. You can ride back to floor 1 whenever you like. Floors 1–5 never need a wallet, before or after the token exists.
Verify a price from a round ID
four steps, no wallet, no trust neededEvery price on a desk board is a Chainlink round on Robinhood Chain, and every finished shift stores the round IDs it was judged against. You can re-read any of those rounds yourself on the chain's Blockscout explorer and get the same number.
- Get the round ID. It is on the result screen after a shift, and in
GET /api/shift/:id(also served as/api/run/:id) underroundIds, one entry per stock. The cards under Proof on chain show each feed's current round too. - Open that feed's aggregator on the explorer. Each card on the home page links straight to it. The addresses are the Chainlink reference data for Robinhood Chain — for example the AAPL / USD proxy is
0x6b22a786baa607d76728168703a39ea9c99f2cd0, so its page isexplorer.chain.robinhood.com/address/0x6b22…2cd0. - Read the round. On the contract's Read contract tab, call
getRoundDatawith the round ID. You get backanswer,startedAt,updatedAtandansweredInRound.latestRoundDatagives the newest round instead. - Scale it.
answeris an integer withdecimals()decimal places — 8 for these feeds, so divide by 100000000 for the price in USD.updatedAtis a Unix timestamp in seconds.
That scaled answer is the price your slip was judged against. If it differs from what the game showed, the game is wrong and the chain is right — the round ID is published precisely so that can be checked.
Feeds are Chainlink price feeds on Robinhood Chain, chain id 4663. The game reads them through a public RPC and never writes to the chain.
Token rules
rules that take effect once the token existsThere is no token contract yet. Until the contract address on the home page is a real address, none of the rules below have happened to anybody; they describe what the site does from the moment it is real. No contract of our own is deployed for any of it — the rules are evaluated by reading the chain.
Holding
Floors 6–10 open for an address whose balance of the token is above zero. When the lift reaches floor 5, the play page asks for that address and the site calls balanceOf for it, at the moment you ask (no wallet connection, no signature). Nothing is locked, nothing is staked, nothing is held by us, and there is no minimum beyond a non-zero balance. Sell and the floors close again, because the check is live rather than a snapshot. Floors 1–5 never ask for an address at all.
Burning
Sending the token to the burn address 0x000000000000000000000000000000000000dEaD opens the Penthouse for the sending address: floors 6–10 stay open for it for good, whether or not it still holds the token. You paste the transaction hash into the form that appears on the play page when the lift reaches floor 5; it fetches that receipt from Robinhood Chain, checks it is a transfer of the token from your address to the burn address, and records it. Burning is irreversible and gives nothing back: the tokens are gone. /api/burns lists every stored receipt plus the burn address's own balance, so every entry can be re-checked on the explorer.
Fees
A 2% trading tax goes to the creator wallet. It is not a game mechanic: no floor, score, quota or unlock depends on it, and the game itself never takes a payment.
What the token does not do
- It does not change how a shift is judged. Tolerance, quota and the round data are the same for everyone on a given floor.
- It buys no advantage inside a floor — only access to higher floors.
- It is not an investment, there is no revenue share, and we promise no return of any kind.
Data, accounts and limits
ground level- No account. Floors 1–5 need no wallet, no e-mail and no sign-up. A shift result is stored with the name you type on the board, and nothing else about you. A shift with no name is still stored as proof but stays off the board.
- Addresses. If you ask the site to check a balance or a burn, it uses the address you give it for that check. We hold no keys and never ask you to sign anything to play.
- The board starts empty. There are no seeded names or sample scores anywhere on this site. If it says there are no shifts yet, there are none.
- Public RPC. Prices come through a public Robinhood Chain RPC. If it is unavailable the site says so rather than showing an old number as if it were live.
- In the browser. Plain HTML, CSS and ES modules with a 2D canvas. No wallet connector is loaded on this site or on floors 1–5.
Disclaimer
foundationNot financial advice. Prices are public Chainlink feeds on Robinhood Chain. The game holds no funds and pays nothing out.
The stock feeds are price data published on chain. Running a shift does not buy, sell or hold any stock, tokenized or otherwise, and no slip in the game reaches any market.