Provably Fair
Every instant round Cymba resolves is committed before it's played and replayable after: server seed hash published up front, player-supplied client seed, HMAC-SHA256 outcome derivation, and a verify-card endpoint that reproduces the entire reveal from the seeds.
API example
POST /api/v1/verify
Authorization: Bearer cy_live_...
{
"server_seed": "e8d4a1...",
"client_seed": "player-chosen",
"nonce": 42,
"config": "my-dice-game"
}
{
"server_seed_hash": "3e1c7d...",
"result": {
"round_id": "9f2c41...",
"prize": { "prize_id": "m15", "multiplier": 15, "kind": "win" },
"card": {
"mechanic": "beat_target",
"cells": ["5", "2"],
"meta": { "your_value": 5, "target_value": 2 }
},
"result": { "total_multiplier": 15, "breakdown": { "base": 15 } }
},
"verified": true
}
The test of a fairness protocol isn't whether honest players trust it — it's whether a player who assumes you're cheating can prove you aren't. For instant games that requires three properties:
GET /api/v1/seed). The drawn prize is a pure function of (server_seed, client_seed, nonce) — nothing about scratch order or timing can change it./api/v1/verify reproduces the round byte-identically — prize, card, and round id. Any independent implementation of the spec arrives at the same bytes.Instant games have a failure mode slots don't: the reveal is generated separately from the outcome, so a buggy or malicious presentation could display something the draw doesn't pay. Cymba closes that gap twice — at play time, the engine reads every generated card back through the mechanic's own win rule and refuses mismatches; at dispute time, /api/v1/verify-card takes the card block a player was shown (no seeds required) and reports exactly the prize it displays, refusing tampered or ambiguous cards with a 422.
Each logged play stores its seed commitment, client seed, nonce, config hash, and result hash. The dashboard's Rounds view exposes this per round, and the public /verify page replays any round from that provenance — a link you can hand to a player mid-dispute.
Cymba proves the math was fair. It does not handle wallets, balances, player identity, licensing, or jurisdictional compliance — those stay in your platform.
Start with a free API key, clone a template, and run your first provably fair spin.