Kaspa Forge
Blog · Arena · Product launch

Provably Fair Dice on Kaspa: Two Seeds, One Verified Roll

11 Aug 2026 · 7 min read · Public mainnet beta
KaspaForge Dice lobby with house seed and player seed committed before one verified roll

Dice is now live as the second game in KaspaForge Arena. It turns a familiar one-click game into a short, inspectable protocol: the house commits one seed, your browser commits another, Kaspa L1 fixes the order, and the Desk displays a roll only after verifying the settlement.

TL;DR. Choose 5, 10 or 15 KAS, then 2×, 5× or 10×. Your keys and fresh randomness stay in the browser. A settled roll comes with enough evidence to reconstruct the outcome instead of trusting a casino database.

Why online Dice needs more than “server RNG”

A random-looking animation proves nothing. If one server chooses the number, the player cannot tell whether it was generated before or after the bet, whether a losing result was selected, or whether the history was rewritten. KaspaForge Dice starts from a stricter question: what evidence should exist before the interface is allowed to celebrate a win or report a loss?

The answer is commit–reveal. A commitment is a cryptographic lock on a secret seed. It fixes the value without publishing it. The house locks its seed before the player joins; the player then creates and locks a fresh seed locally. Neither side can replace its committed value after seeing the other opening.

From Room to verified roll

  1. Room: the house funds a single-use covenant UTXO with the rules, reserve and its seed commitment.
  2. JOIN: your Desk checks the room, creates fresh player randomness and signs the exact transaction locally.
  3. PLAYER_REVEAL: your browser opens the player commitment. Kaspa L1 fixes this state before settlement.
  4. Settlement: the house opens its seed. Both seeds and the game ID deterministically produce one 16-bit roll; the covenant pays the permitted branch.

This is the useful difference between “transparent” and verifiable. KaspaForge publishes not just a label such as WIN, but the inputs and chain references that let the client recompute it. The complete technical sequence is documented in the Dice verification guide.

Three stakes, three risk profiles

48.9990% win chance
19.5999% win chance
10×9.7992% win chance

All three payout modes are published at 5, 10 and 15 KAS. The winner service fee is 0.90% of the gross payout. For example, a winning 5 KAS roll returns 9.91 KAS at 2×, 24.775 KAS at 5× or 49.55 KAS at 10×. Threshold rounding plus the service fee gives an effective house edge of about 2.88–2.89%. Network fees are separate and shown before signing.

The multiplier changes variance, not the verification standard. A 2× loss and a 10× win must pass the same commitment, transaction and settlement checks.

The result is an object you can inspect

After settlement, open VERIFY. The receipt contains the game ID, house and player commitments, both revealed seeds, the threshold, calculated roll, outcome, exact returned amount and the transaction IDs for Room, JOIN, reveal and settlement. The shared All settled rolls history exposes the same evidence for completed games.

That receipt lets the Desk confirm four facts: each seed opens its earlier commitment; the deterministic calculation produces the displayed number; the number agrees with the published win threshold; and the covenant outputs match the selected mode. You can also inspect the linked transactions in the Kaspa explorer and review the open-source client in the KaspaForge repository.

What the public beta does — and does not — promise

Settled rolls are independently verifiable. Relay availability is operator-trusted. KaspaForge currently operates the house and reveal relay through its own Kaspa nodes. We do not claim protection against the operator refusing to settle. If the reveal race times out, the covenant returns the exact player stake and no roll is produced or shown.

That boundary matters. An operator availability failure is not the same as changing a settled result, but it is still a trust assumption. We publish it because “provably fair” should describe exact evidence, not hide the parts that remain operational.

How to try Dice

  1. Open KaspaForge Desk and unlock your local profile.
  2. Choose Dice, a live 5/10/15 KAS room and a 2×/5×/10× mode.
  3. Review the return, service fee and network cost before entering your password.
  4. Keep the tab open through reveal and settlement, then inspect Verify roll.

Dice uses real KAS and beta software. Start with the smallest stake, keep an encrypted Desk backup and treat every wallet confirmation as a transaction you are choosing to sign.

Frequently asked questions

Can KaspaForge choose the number after I bet?

A settled roll is fixed by the house seed committed in the Room, the player seed committed in JOIN and the game ID. Replacing either seed breaks its commitment. The current operator can affect availability by withholding relay service, which is why that boundary is disclosed separately.

Does KaspaForge hold my Dice balance?

No separate casino balance is created. Your Desk selects wallet UTXOs and signs locally; the bet moves through Room and Game covenant states on Kaspa L1. You still trust the software you run and should verify the transaction details before signing.

What happens if the roll does not settle?

The timeout path returns the exact player stake and produces no random result. Network fees already paid to submit transactions are separate. Check Wallet history for submitted transactions and retry only when the interface presents a valid recoverable action.

Where are completed games listed?

The Dice lobby includes All settled rolls. New settlements are published there with the evidence needed by the verification drawer. Your local Wallet history remains the source for transactions signed by your own Desk.

Two seeds. One verified roll.

Open Dice in KaspaForge Desk, start with 5 KAS and verify the receipt after settlement.

Play Dice Read the docs