Arena: blackjack and Dice on Kaspa L1
No trusted casino holds a balance or decides the outcome. Commit–reveal fixes the randomness, a zero-knowledge proof verifies the hidden deck and shuffle, Merkle openings verify each revealed card, and the Kaspa L1 covenant enforces legal game transitions, timeouts and payouts. Dice adds a second protocol: two committed seeds, one deterministic roll and a verifiable settlement receipt.
The one idea everything is built on: covenants
A covenant is an on-chain script that fixes in advance where coins are allowed to go. Kaspa's Toccata upgrade (live on mainnet since June 30, 2026) made such scripts possible on the Kaspa L1 — no tokens, no bridges, plain KAS locked by rules.
Every Kaspa Forge money service is a covenant with a short, fixed list of exits. A vault coin can go back to the vault, to the withdrawal destination or to the heir. Escrow and Deposit coins can go only to their two parties or the visible service fee; Deposit uses the same covenant with a default return to the depositor. If a transaction tries another destination, the Kaspa network simply rejects it.
The nine pieces
KaspaForge Arena
The flagship protocol. Its first game is P2P blackjack: commit–reveal randomness, a ZK-proven hidden deck, Merkle card openings and covenant-enforced settlement on Kaspa L1.
How an Arena hand is verified ▸Arena Dice
5/10/15 KAS rooms with 2×/5×/10× payouts: two committed seeds produce one deterministic roll, while the covenant constrains settlement and timeout returns.
Verify a Dice roll ▸Desk & keys
Your control room and key store: a password-locked, age-encrypted profile in your browser, an independent master key-file backup, and optional end-to-end encrypted Forge Sync between copies on your devices. Vault alarm keys remain on separate cards and never enter the synced mirror.
How the Desk works ▸Key security
A precise view of what stays in the browser, how age protects the profile at rest, how transactions are signed locally, what voluntary Forge Sync encrypts twice, and exactly what the server can see.
Read the security model ▸Kaspa Safe
A personal KAS vault where every withdrawal waits out a delay you set, a separate alarm key can cancel a theft in progress, and an optional dead-man switch passes the vault to an heir.
How Safe works ▸Kaspa Escrow
P2P deals where the money sits in an on-chain covenant, the deal chat is end-to-end encrypted on-chain messaging, and even the dispute arbiter can only route funds to the buyer or the seller.
How Escrow works ▸Kaspa Deposit
Security deposits for rentals, equipment and obligations: the depositor locks KAS, the holder can file an evidence-backed claim, and no claim by the deadline means automatic return.
How Deposit works ▸Marketplace
Listings priced in KAS where the Buy button doesn't pay the seller — it opens an escrow deal with the listing's terms.
How the Market works ▸Kaspa Boards
Accountless public threads where every text post is a signed Kaspa transaction, images are best-effort hosted with an on-chain hash, and tips go directly to each post's key.
How Boards works ▸The security model in six claims
Each claim is explained in depth on the service pages; this is the map.
- Keys are generated in your browser and never leave it. The server receives public keys, public parameters and signed transactions — never a private key, never your password. We physically cannot move your funds; nobody at OfficeForge can.
- The rules live on-chain, not on our servers. Vault delays, Escrow outcomes, Deposit returns and emergency timeouts are enforced by the Kaspa network itself. If our website disappeared tomorrow, the open-source Safe recovery CLI still works and every funded deal retains its fixed timeout outcome.
- Every privileged party is boxed in by the covenant. Our watcher can broadcast keyless transactions — but those paths hard-wire the destination (a matured withdrawal only to its fixed address, an inheritance only to the heir). The escrow arbiter signs verdicts — but no path in the script pays the arbiter or any third party.
- The server sees public data and ciphertext only. Vault registrations are public parameters; deal chats are end-to-end encrypted (the relay stores what it cannot read); a chat key is revealed only if you open a dispute — and that key can't move money.
- The claims are verifiable. The covenant contracts (vault.sil, escrow.sil), the recovery CLI, the offline key-file decryptor, the web front-end and the Android app are open source: github.com/Kaspaforge/kaspaforge. Don't trust this page — check it.
- Arena's fairness is layered, not delegated to one server. ZK verifies the hidden deck and shuffle; commitments fix both seeds; Merkle proofs bind revealed cards; the covenant enforces states and payouts; the wallet verifies the room and exact JOIN before signing.
What we will never ask for
Not your Desk password, not a private key, not a seed phrase, not your master key file — not in chat, not by email, not "for verification". Anyone who asks is a scammer. Keys are entered only on kaspaforge.org (check the address bar) or in the offline open-source tools.