Kakure docs

Games

Practice, Lucky, Duel, Line Rider and Candle Hop, the boards and profiles, and what a nickname is.

The games hall is at /games. Range and Moonshot are trades priced by the house (see Rules and formulas); the three below cost nothing and never touch your chips.

GameStakeScored on
Practice: Beat the coinFreeThe live price, 30 seconds after each swipe
Line RiderFreeThe arcade service's replay of your run
Candle HopFreeThe arcade service's replay of your run
LuckyYour stakeOne ordinary trade, settled like any other
DuelFreeThree live Windows' signed outcomes, head to head

Practice: Beat the coin

Five live Windows are dealt, soonest-closing first, each with at least two minutes left. Swipe up if you think the price will be higher in 30 seconds, down if lower. The coin calls the same cards: its call is a fixed function of the round's seed and the card, so it's a coin flip and nothing more.

  • Each card is scored on the live price exactly 30 seconds after your own swipe, never on the Window's settlement.
  • A move to the same price is flat: nobody's card.
  • A card whose price couldn't be read at its close stays unscored; it's never given a number.

Practice runs entirely in your browser. Nothing about a round is sent anywhere; the tally of rounds you've played and won stays on your device for the hall's achievements.

Lucky

Three reels draw a live asset, a side (Up or Down) and a reach (×2, ×3, ×5, ×10 or ×25); you pick the stake from four chips. The machine then deals the drawn asset's Window whose drawn side pays closest to the reach, at the live price from the public formula, and shows that quote. Slide the lever to place it: one ordinary trade from your chips, through the same sealed path as the terminal, settled at the Window's close.

  • Drawn on your device. The draw is HMAC-SHA256, keyed by the hash of the latest signed bundle (the operator's latest.json names it; nobody knows it before that minute is published), over the policy, a hash of the candidate Windows and a seed your browser makes at the spin. Proof shows every input in full, recomputes the draw and copies the inputs so anyone can redo it. Your browser makes the seed, so this proves the draw follows from those inputs and that nobody could aim it before that minute, not that you couldn't have picked them.
  • Nothing is sent until you place it. A server-dealt draw would learn your bet before it's a bet, so there is no draw server. Your draws, placed or not, are listed on your device only, each with what its Window decided. They're kept encrypted in the same vault as your chips, under the same lock, and aren't part of a backup.
  • A Window needs a minute and a half left to be drawn, so there's time to slide before entry closes 30 seconds out.

Duel

Find a duel and the arcade service pairs you with another nickname near your rating (±100 Elo at first, widening by 50 every 15 seconds to ±400; whoever has waited longest goes first). The same two players meet at most three times a day, and up to 200 can wait at once. You both get the same deck: three live Windows, on different assets where it can, each with at least three minutes before entry closes and closing within half an hour. Call each one Up or Down at its close. Once both of you have revealed, you can queue for the next duel while this one settles.

  1. Sealed calls. When your third call is in, your browser sends only a commitment: SHA-256 of the duel, your key, your calls and a random salt kept on your device. You have 75 seconds from the pairing.
  2. Reveal. Once both of you have committed, each browser sends its calls and salt, and the service checks them against the commitment. Neither your opponent nor the service can read a call before both are locked in, and nobody can change one after.
  3. Scoring. Each card is decided by its Window's signed outcome, from the bundle or, once the Window has left the bundle's ten-minute list, from its hour's signed prints file. More right calls wins; a tie is a draw; a refunded Window counts for nobody, and if every card refunds the duel is void.
  4. Deadlines. Miss the call or the reveal deadline and you forfeit: your rating falls as for a loss, and your opponent is credited the win but their rating doesn't move, so a no-show can't be farmed. If both miss, it's void.
  5. Elo. Everyone starts at 1,000. Your first ten finished duels move at K = 48, then K = 24. A void moves nothing.

Every Duel call that names your key is signed by it, with the call it's for and the time, so it can't be replayed later or as another call; your key travels in the request body, never in a URL.

The ladder, the last duels and your history show nicknames, results and days only. Nothing is staked.

The arcade: Line Rider and Candle Hop

Both games ride a tape: twelve hours of one asset's 1-minute closes (BTC or ETH, picked by the run's seed), cut from Kakure's signed hourly prints files and checked against the operator's key before use. Line Rider turns the minute-to-minute moves into a slope to sled; Candle Hop turns each minute into a candle to fly between.

  • Line Rider. Hold to press into the line and build a charge, let go to hop, lean ← → to flip. Clean landings, flips and gaps cleared build the combo; a bad landing ends the run.
  • Candle Hop. Tap or Space to lift the coin. Hitting a body, a wick or the floor ends the run.
  • Calmer ramp. A slower speed ramp; runs played with it are marked on the boards.

How a score is checked

  1. When you press Play, the arcade service issues a seed and the tape it rides. A seed is good for one score, within an hour of being issued (the longest run, 30 minutes, plus 30 to start and post it).
  2. Your browser records every input by the engine's tick (60 a second) and, when the run ends, sends the seed, the score, the length and the inputs, signed by your device's key.
  3. The service replays the same engine over the same seed, tape and inputs, for no longer than the run claims. The score counts only if the replay reproduces it to the tick. It can't prove a person rather than a script played, so the boards say "server-checked".
  4. Each nickname may post 120 runs an hour, counted before the replay.

Nicknames and boards

A nickname is 3–16 letters, digits, _ or -, case-insensitively unique. It's bound to an Ed25519 key your browser makes for the arcade; claiming one takes a small proof of work instead of a captcha, so nothing third-party loads. A claim is signed and dated, so an old one can't be sent again to undo a rename.

  • The boards show each nickname's best run, today, this week or all time, with the day it was played and never a time. No address, wallet or IP is ever attached.
  • The key and nickname live in this browser. Forget this device clears them; the nickname then can't be posted to from here again.
  • Sign in with X (where it's switched on) names the device with your X handle instead. Your browser makes the PKCE pair and goes to X; X sends you back to /x with a code that's good for 30 seconds; the arcade exchanges it, reads your handle, revokes the token at once and keeps only the handle and a salted hash of your X id. One X account names one device, a handle that's already someone's nickname can't be taken, and a device named by X keeps that name. The /x page drops the code from the address bar before anything else and is never cached.

Bets board and profiles

The Leaderboard's Bets tab counts calls their owners chose to publish. A paid position's Share sheet has the switch: On the Bets board.

  • What can be published: a single Up or Down call, once paid, whose Window decided Up or Down and had at least three trades opened on it, while the operator still holds the position (two days after it's paid).
  • How it's checked: your device asks the operator over the same sealed path as a trade, with the position's secret and a blinded random point. The operator checks the call against its own book and blind-signs the point under its "right" or its "wrong" key, once per position, with a NUT-12 proof. Your device unblinds it into a receipt only it has seen and gives that to the arcade, which checks it against the operator's published keys. The operator can't recognise the receipt and never learns your nickname; the arcade never sees the trade.
  • What the board shows: right calls over calls for each nickname with five published calls or more, last week or all time. It changes once a week (Monday 00:00 UTC), counting calls published before that week began. Never a market, side, size or return.
  • What it can still give away: a nickname's weekly change, read against the Windows that settled that week, can narrow down which Windows it called, more so while few people trade. Publishing the moment the receipt is signed lets Kakure match the two by time. Publish only calls you're content to have tied to your nickname.
  • Taking it back: turn the switch off and the call comes off at the next week's turn, so the moment you took it back doesn't show either. Only the arcade key that published a call can take it down; Forget this device takes this device's calls down before it deletes the key.

A nickname's profile (/u#name, from any board) shows its Duel rating and record, its arcade bests and ranks, its Bets record from five calls, and the badges those earn. The name stays in the page's fragment and travels to the arcade in a request body.

A decided duel can be shared as a card: the opponent's nickname, the right calls each and the day, with a link to the Duel.

What's kept where

Kept by
Nicknames, device public keys, runs (game, score, inputs' hash, day), duels (the deck, both calls once revealed, the result, ratings, the day), published calls (receipt id, right or wrong, day)The arcade service
Your arcade key, your runs list, Practice's tally, your streaks and achievementsThis browser
Lucky's drawsThis browser's vault, encrypted with your chips
Your IPNobody on the arcade's side: the site forwards only the request's method, path and body

The arcade's calls aren't sealed like trades: the site sees them with your IP, though it keeps no logs. See The privacy model.

On this page