A crash game you can audit, line by line.

Provably fair by construction: the outcome of every round is fixed by a hash chain committed to before a single bet is taken, and any player can re-derive it in their own browser. Below is the real game. The lobby mints a demo session and hands the client a token, which is the shape of an operator's launch flow; a real deployment takes the token from the operator instead.

RTP 97.00% Cap 25,000x Server-side auto cash-out Seamless-wallet boundary
launch /game/?token=…

Play money only. Balances are demo credits with no cash value, and the lobby is populated with clearly labelled simulated players so the bet feed is not empty. Everything in this build is held in memory: a restart clears balances, history and the chain.

Provable fairness

seed[i+1] = SHA256(seed[i]), played backwards from a published commitment. The crash point is HMAC-SHA256(salt, seed) mapped onto the distribution P(crash ≥ x) = 0.97 / x, and a round pays the highest rung of its ladder at or below that point. The ladder is built from the commitment, so it is public before betting closes and says nothing about the outcome.

The salt is meant to be a block hash published after the commitment, so the chain cannot have been shopped for. Whether this table has one set is shown below.

commitment
salt
/api/fairness has the rest, and POST /api/verify re-derives any revealed round.

For operators

What the round loop already holds to:

  • Auto cash-out settled on the server, on the server clock
  • A seamless-wallet boundary: open, balance, debit, credit, rollback
  • Idempotency keys derived from the bet id on every money call
  • Outcomes decided in memory before the wallet is written
  • Per-round exposure cap and configurable table limits

What this build does not have:

  • A real wallet: the only implementation is play money, and a failed credit is logged, not retried
  • Operator identity or launch-token exchange: the demo mints its own sessions
  • Durable storage, a back office, reporting, or responsible-gaming limits
  • A certificate or a licence

One loop, one chain, one bet feed for every connection: there is no operator separation yet. ROADMAP.md sequences the rest; INTEGRATION.md is the contract a wallet integration implements.

House edge

One dial. Return to player is exactly 1 − edge at every cash-out target, so no strategy beats any other — a property the test suite asserts against 300,000 simulated rounds on each run. The stepped ladder, the bonus rungs and the gold rounds change the route to a number, not its probability; that is tested too.

The edge surfaces as rounds that end before their first rung and nowhere else: about 5% of rounds at a 3% edge, against 3.96% on the bare curve, because the first rung is the lowest payable number.