The problem
In any product that moves money — betting, wallets, credits — the question is the same: how do you prove the system doesn’t cheat and the balance is never wrong?
The solution
Provably fair: the server commits the seed hash before any bet; each roll is HMAC-SHA256(seed, clientSeed:nonce); on rotation the old seed is revealed and the user re-verifies everything in the browser. Balance = sum of transactions, enforced by atomic Postgres functions.
The platform on screen
Commercial highlights
A transparency page redoes the math with Web Crypto in the user’s own browser — no trust in the server required.
Append-only transactions with the invariant balance = sum(transactions), row locking and atomic database functions.
Stripe deposits keyed on the session id: the webhook can retry forever — the credit lands exactly once.
A single Nuxt build ships as a Cloudflare Pages site and an Android app via Capacitor.
Technology
This product was born from a real problem. Yours can be too.