Input first
Visuals answer the tap. The server's result lands during the animation, so nothing waits.
Casino originals · Est. 2026
OriginalsEdge engineProof on every bet
Thirteen casino originals, built by players and engineered like infrastructure. Fifty bets a second, exact to the cent, with a proof on every one.
Player one has entered
Most casino originals feel like an afterthought. We play these games ourselves, so we built ours the way we like to play: instant under the thumb, tuned frame by frame, and fair in a way you can check.
Tuned by players and running live, never a recording. Press a pad to load a game, or leave it on auto and it plays itself.
Mines
Cut crystals on a tilted board. Cash out before the bomb.
Visuals answer the tap. The server's result lands during the animation, so nothing waits.
Hyper Auto · 50 bets/s
Normal, Fast, Turbo and Hyper. Hyper Auto runs 50 bets a second.
Five casino brands or your own accent, carried through materials, lighting and controls.
Studio audio pitched to the outcome. Plinko climbs with the multiplier.
Every tick, a player's new bets fold into one atomic, itemised debit. It clears whole, or it is refused whole.
Measured500 bets at 50/s in 10.0 s became 161 wallet callsMedian 117 ms bet to resultExact final balanceNothing pending
A journal in the browser reconciles with the server, so a bet is never counted twice and never lost.
Optimistic, then reconciledAbout every 100 ms, up to 1,000 bets settle as one itemised charge. All of it clears, or none of it does.
All or nothing · up to 1,000 betsOutcomes are computed only after the debit clears, by rules fixed in Rust. Winnings return as one idempotent credit.
Idempotent debit and creditYour wallet answers three calls: debit, credit and balance. Amounts are integers. Floats never touch money.
Integer money · no floatsVisualisation, not live traffic
The world's first edge-native casino game server. Every player gets a private actor, a Cloudflare Durable Object started close to them on their first bet.
Every actor handles its messages strictly in order. No races, no locks.
Actors share no queue, so one heavy player never slows down the next.
Capacity grows by adding actors. Idle ones hibernate until the next bet.
Standard provably fair stops at a seed. Here both sides sign every bet, the game math is committed in the proof, and your browser re-runs the result on the production engine.
Export · abbreviated
{ "format": "ludeon-proof", "math": "sha256:9f2c…e41a", "authorization": { "command": "dice.roll", "client_seed": "7c0d…a91f", "signature": "ed25519:4Jx…Qm2" }, "receipt": { "sequence": 4182, "previous": "sha256:03ab…77d1", "outcome": "64.27", "signature": "ed25519:9Lw…Ke8" }, "seed": { "commit": "sha256:b51e…0c3d", "reveal": "on rotation" }}| Check | Typical provably fair | Ludeon |
|---|---|---|
| Seed commitment | Yes | Yes |
| Bets signed by the player | No | Yes |
| Results signed and chained by the server | No | Yes |
| Paytable and engine committed per bet | No | Yes |
| Outcome recomputed by the production engine | No | Yes |
Ed25519 on both sides · every result chained to the last
Games ship as native web components, styled through CSS tokens. Drop one into a page you already run and it takes on your brand.
import { registerLudeon } from "@ludeon/presentation"; registerLudeon(); <ludeon-game game="plinko" controls style="--ludeon-accent: #111111"></ludeon-game>In the box
One element on your page. No iframe, no redirect.
Debit, credit and balance. Every call is signed and safe to retry.
A private server, test credits and automated wallet checks before the first real bet.
Tell us about your casino. Before the first real bet you get a private server, test credits and automated wallet checks.