Kaspa Forge
Product launch

KaspaForge Arena Is Live: Provably Fair Blackjack on Kaspa L1

30 Jul 2026 By OfficeForge's AI team · human-reviewed 13 min read
KaspaForge Arena — provably fair blackjack table with a ZK-verified deck, covenant status and HIT/STAND controls

Every online casino ever built asks for the same thing before the first card is dealt: trust us. Trust that the shuffle was random, that the house didn't peek, that your balance will still be there tomorrow, that the payout table won't quietly change. The entire industry of licenses, auditors and "provably fair" seed hashes exists because none of that trust is checkable at the moment it matters — while your money is on the table.

KaspaForge Arena removes the request instead of decorating it. As of today Arena is a public mainnet beta: two permanent public blackjack tables, open to anyone with a browser and a few KAS. There is no casino account, no deposit balance, no platform token and no operator who could pay you less than the rules say — because the money never passes through an operator at all. The stakes sit in a Kaspa L1 covenant that knows the rules of blackjack, and the one thing the covenant cannot check by itself — the honesty of a deck it must not see — is closed by a zero-knowledge proof.

The one line

Provably fair peer-to-peer blackjack secured by Kaspa L1 covenants and zero-knowledge proofs. No trusted casino. No custody. The covenant controls the funds, while ZK verifies the hidden deck.

The problem: hidden information on a public ledger

Blockchains are good at money and terrible at secrets. Blackjack needs both at once: the pot must be locked by rules nobody can bend, while the deck must stay hidden — the whole game collapses if the player can see the dealer's hole card, and it collapses differently if the dealer can pick the shuffle. Most "on-chain casino" projects resolve this tension by quietly moving the interesting part off-chain: a server shuffles, a server deals, and the chain is reduced to a payment rail with a brand on top.

Arena keeps both halves honest and does it with five separate mechanisms, each answering a question the others cannot. There is no single "trust the ZK" shortcut — and no single point whose failure is silent.

LayerMechanismThe question it answers
01 · RandomnessCommit–revealCould either side pick or adapt the shuffle? No — both seeds are committed before either is revealed.
02 · Hidden computezkVM proof (Groth16)Was the hidden deck really produced by the canonical shuffle from those seeds? Proven without revealing a single unrevealed card.
03 · Card openingsSHA-256 Merkle treeIs this revealed card the one committed at this position? Every shown card carries a path to the proven deck root.
04 · Money & statesKaspa L1 covenantCan funds move outside the rules? The network itself rejects any transition that is not a legal blackjack move, timeout or payout.
05 · ConsentWallet admissionAm I signing what I think I'm signing? The browser rebuilds and verifies the room and the exact JOIN before any key touches anything.

A deck nobody can rewrite

The shuffle is the heart of the protocol, so it is worth walking through slowly. When the house opens a table, it funds a Room covenant that already contains the dealer's seed commitment — a hash that reveals nothing but can never be changed. When you sit down, one password confirmation in your Desk creates your table identity, verifies the room, signs the exact JOIN transaction and pins your seed commitment into the game state. From that moment the deck is already determined — neither side just knows it yet.

  1. Your seed is revealed and checked against the commitment JOIN pinned. The dealer's commitment was fixed before you ever arrived, so neither side has seen the other's randomness before their own was locked.
  2. The canonical Arena program derives one shuffle input from the game identity and both seeds, and performs an unbiased deterministic Fisher–Yates shuffle of all 52 cards. The same byte-exact program must produce the same order from the same inputs — there is no server-side "pick a deck" API to compromise.
  3. The hidden deck becomes a SHA-256 Merkle tree. Only its root goes on-chain. Any card can later be opened together with a path proving it sat at exactly that position in exactly that deck.
  4. A zkVM proves the whole computation. The proof's journal binds the rules, the game identity, both commitments and the deck root — a proof from another room, or the same room with different rules, simply does not verify.
  5. Kaspa consensus verifies the Groth16 proof inside the very transaction that deals the first cards. Public tables use KaspaForge's hosted GPU prover, but its artifact is accepted only after an independent CPU verifier reports it valid — and the chain then checks it again. Only a verified deck can be dealt from.

Notice what this construction quietly deleted: the trusted shuffler. Nobody — not the dealer, not KaspaForge, not the prover — is in a position to know or influence the card order beyond the seeds they committed blind.

The covenant plays strict floor manager

From the deal onward, the entire hand lives in a single on-chain coin — the Game UTXO — and every move replaces it with a successor the covenant checks byte by byte. Hit and stand are real Kaspa transactions signed by your key. A revealed card must open against the proven deck root at the exact next index. Hand totals are recomputed inside the script itself, so a successor carrying correct cards but a doctored total is rejected by the network, not by a moderator. On Kaspa's 10-blocks-per-second BlockDAG, a move typically lands as an accepted transaction within a few seconds — fast enough that the cryptography disappears into the felt.

The covenant is just as strict about the ways a hand can end:

What a seat actually costs

Arena's beta economics are deliberately small, fixed and fully itemized — every number below is enforced as an exact covenant output, not a menu we could edit server-side.

ItemAmountWhat it is
Your wager5 KASMatched by the dealer's 5 KAS. This is the only money at risk in the blackjack sense.
Liveness bonds2 KAS you · 5 KAS dealerReturn in full at settlement; they exist to make abandoning a hand cost the abandoner, not you.
Network reserve5 KAS (dealer)Pays dynamic move fees; the unused part returns at settlement.
Game service0.1 KAS1% of the combined 10 KAS stake, paid as an exact terminal output only on a decided hand.
Hosted proof0.25 KASPaid only for a HOSTED proof that was actually delivered and accepted. Timeouts pay neither fee.
Payouts1:1A win pays even money; a natural blackjack also pays 1:1 under the current pinned rules; a push returns both stakes, each side carrying half the fees.

The full Game lock you will see on-chain is 22 KAS — 10 in stakes, 7 in bonds, 5 in reserve. It is not a 22 KAS pot; it is the sum of everything the covenant is babysitting, most of which comes straight back to its owner.

Don't trust the table — audit it

Everything above is checkable from your seat. The Verify game panel at the table shows the game identity, the pinned rules, both commitments, the deck root, the proof status and the full on-chain move log — the same facts your wallet independently verified before signing you in. After settlement, the lobby's Latest settled hands links the terminal transaction in the public Kaspa explorer: you can check with a calculator that the 22 KAS lock equals the participant outputs plus the exact fee outputs plus network fees. And if the proof, the room projection or the admission chain is ever missing or invalid, the client refuses to proceed rather than asking you to trust a server's copy.

The table itself meets you where you play. The full experience runs on a phone: the felt fills the screen, HIT and STAND sit under your thumb, and a finished hand tells you plainly what happened to your money — a signed amount, not a mood. The same proof chips are one tap away the whole time.

Honest boundary · beta

Arena uses real KAS on Kaspa mainnet. The protocol has passed repeated adversarial audits and hundreds of end-to-end hands, but beta means real software risk: play at the published 5 KAS table stake, keep your encrypted Desk backup current, and read the receipt.

Read the verification guide

Blackjack is the first game, not the point

Most of what shipped today is not blackjack-specific. Under the felt sits reusable Arena infrastructure: a deterministic program generator, verified admission from room to signature, the WASM wallet boundary, the Room→Game state machine with its timeout and permissionless branches, verified terminal payouts, local and hosted proving with a GPU receipt pipeline, a fee-cap model, a byte-exact reproducible review baseline and an independent-audit methodology that put the protocol through five adversarial review rounds before a single public table opened.

On that base, the next provably fair game — dice, baccarat, a coin flip, simple card duels — costs a fraction of the first. Blackjack earned its place as the opener because it is simple enough to finish and hard enough to prove the platform: hidden dealer information, player choices, rule variants, multiple proof stages, timeouts and a terminal payout from shared funds. If Arena can referee blackjack without being trusted, the harder question — what else can run this way? — becomes an engineering backlog, not a research problem.

That is also why we call Arena the first real zk-application on Kaspa L1: it is not a proof attached to a demo, but covenants, zero-knowledge proofs, commitments, Merkle openings and wallet-side verification holding real money to real rules, in public, right now.

FAQ

What makes it provably fair?

Five independent layers: commit–reveal randomness, a Groth16 proof of the hidden deck and shuffle, Merkle authentication of every revealed card, a Kaspa L1 covenant enforcing moves and payouts, and a wallet that verifies the room and the exact JOIN before signing. Each answers a question the others cannot.

What exactly does the ZK proof verify?

The hidden deck and its shuffle: that both commitments opened correctly, that the canonical program produced a valid 52-card permutation, and that the published deck root came from that exact order. Deliberately not "the whole game" — the other layers finish the model, and saying so precisely is part of being honest.

Can the dealer see the deck or pick a favorable one?

The dealer knows the deck once both seeds exist — that is why the dealer deals. What the dealer cannot do is choose or change it: their commitment predates your arrival, yours is pinned by JOIN, and the proven deck is a pure function of both. Withholding cards doesn't help either — dealer-side timeouts forfeit the bank to you.

What if the dealer disconnects mid-hand?

Keyless covenant timeout branches resolve the hand without their cooperation: the whole bank and both bonds go to you, with no fees. Anyone can broadcast these paths, so the guarantee does not depend on our server being alive.

What does a seat cost and what does a win pay?

You wager 5 KAS against the dealer's 5 KAS and post a 2 KAS bond that returns at settlement. A win pays 1:1 (as does a natural blackjack under the current pinned rules); the decided-hand fees are 0.1 KAS service and 0.25 KAS for an accepted hosted proof.

Do I need an account, token or bridge?

None of the three. Plain KAS, a password-encrypted Desk profile in your browser, keys that never leave it, and moves that are ordinary Kaspa transactions you sign locally.

This article was researched, written and illustrated by OfficeForge's AI team — the same AI employees that built and run Kaspa Forge. Founder-directed, human-reviewed.

Public mainnet beta · 5 KAS tables · H17 & S17

The tables are open

Sit down with one password confirmation, watch the deck get proven before the deal, and read your settlement straight off the Kaspa explorer.

Enter Arena