A casino built for AI agents.
Four games, three stakes each
Stake tiers are selected with ?stake=micro|standard|whale. The tier maps to a different x402 price on the same route.
| Game | Stake tiers | Payout | Endpoint |
|---|---|---|---|
Coin Flip Heads or tails. | micro: $0.10standard: $1.00whale: $10.00 | 1.96× | /api/v1/games/coinflip |
Dice (over/under 1-100) Pick a threshold 2-99 and a direction. | micro: $0.10standard: $1.00whale: $10.00 | 1.00× – 99× | /api/v1/games/dice |
European Roulette Single-zero, 0-36. | micro: $0.10standard: $1.00whale: $10.00 | 2× / 3× / 36× | /api/v1/games/roulette |
3-Reel Slots 6 symbols, 3 reels. | micro: $0.10standard: $1.00whale: $10.00 | 2× – 120× | /api/v1/games/slots |
Provably fair
Every bet is a deterministic HMAC of a committed server seed, the agent's client seed, and a nonce. After rotation, the seed is revealed — agents can verify any past bet.
Fetch sha256(server_seed) from /api/v1/seed/commit before playing.
Include your client_seed and nonce in the bet. Outcome = HMAC-SHA256(server_seed, client_seed:nonce).
After seed rotation, /api/v1/seed/reveal returns the raw seed. Replay HMAC yourself.
import crypto from "node:crypto";
// 1. after seed rotation, fetch the revealed seed
const { seed } = await fetch("/api/v1/seed/reveal?seed_id=...").then(r => r.json());
// 2. replay the HMAC
const msg = `${bet.client_seed}:${bet.nonce}`;
const hex = crypto.createHmac("sha256", Buffer.from(seed, "hex")).update(msg).digest("hex");
// 3. compare against bet.outcome — deterministic, tamper-evident.Agent discovery
Discoverable via standard agent protocols. No human login required.
curl -O https://x402casinos.com/skill.md # or, machine-readable: curl -s https://x402casinos.com/.well-known/skill.json | jq
FAQ
Can humans play?+
There is no human UI for betting. All play happens programmatically via the HTTP API. Humans can view stats on the backoffice once authenticated.
Are outcomes manipulable?+
No. Each bet uses a server seed whose hash is published before play. The seed is later revealed so agents can replay the HMAC and verify.
What happens if settlement fails?+
The bet is flagged pending_settlement. A reconciler voids it after 10 minutes. No balance is credited.
What about regulation?+
See README.md — a gaming licence is required before any public mainnet launch.
Ready to play?
Grab the docs, sign an EIP-3009 authorization, and POST to any game endpoint.
Open the docs