Sky Ace
The aviation classic, tuned hot: two bet slots, auto-bet, live chat and freebets riding a 99% RTP curve.
B2B crash game platform · seamless wallet
Your games, our engine, your wallet. Players' money never leaves your systems — games embed in an iframe, every bet settles over an HMAC-signed server-to-server API, and every crash point is committed to before the round starts.
// server-authoritative · integer minor units · no floats in money
Not a video. Real math, live in your browser — the production curve m = ek·t with a real sha256 commit–reveal on every round.
Integration
You keep the wallet and the player. We run the game, the math and the ledger. A typical integration is measured in days, not months.
Your backend issues a one-time token and opens
/play/game/{id}/play.html?token=…&operator=you. No SDK on the page,
nothing to bundle — the game client ships from our origin (or your CDN).
Six HTTPS endpoints on your side — login, balance,
bet, win, refund, logout —
HMAC-SHA256 signed, idempotent by transactionId, retried from a
durable outbox until acknowledged.
Each round settles in one database transaction on our side and reconciles against your wallet to the cent. Crash points are provable by anyone through the public fairness verifier.
Games
A game is a folder: manifest, theme, scene. The math, wallet, fairness and protocol underneath are identical — certify the engine once, launch skins forever. Try each one on fun money, no signup.
The aviation classic, tuned hot: two bet slots, auto-bet, live chat and freebets riding a 99% RTP curve.
Blink and it's boarding again: a 4-second betting window and a queue that never lets a round leave without you.
For prospectors with nerve: bank half mid-climb and let the rest ride — or insure the whole dig before takeoff.
Adding a skin touches zero engine code — it is a folder with a manifest, not a fork.
Feature catalog
Every feature below is a per-game flag. Turn it on for one brand, off for another — the money core never changes, and features that change the math ship only after the simulator has replayed them across millions of rounds.
A feature that is absent from a game manifest simply does not exist
for that game — clients hide it, servers reject it. One flag: features.partialCashout: true.
Provably fair
Every room consumes a precomputed sha256 hash chain. The hash is committed before betting opens and revealed after the bust — so neither we nor the merchant can steer a round, and any player can check any round after the fact.
Before betting opens the client receives prevHash — the sha256 of the
hash that will decide this round. The chain's terminal hash is published when the
chain is provisioned.
When the round busts, the round hash is revealed. Anyone can check
sha256(hash) == prevHash — the commitment made before any bet was placed.
The crash point is a pure function of the revealed hash: recompute it in the public verifier, or in your own code from the formula on the right.
// r = RTP (e.g. 0.99), hmac = HMAC-SHA256(salt, roundHash)
X = uint52(hmac) / 252 // uniform [0,1)
crash = max( 1.00, floor( 100·r / (1−X) ) / 100 )
// properties, for r = 0.99:
P(crash ≥ m) = r / m
P(instant bust) ≈ 1.98%
median crash ≈ ×1.98
Get started
Feel the engine on fun money first — the demos run against a live platform environment. Then read the wire format: launch, wallet API, protocol, math, mechanics. Six endpoints stand between you and a certified crash title.
.
Set platformBase in assets/config.js to a running platform.