Dog Poker Club: fair, private blockchain poker with zero-knowledge proofs and seamless play.
Dog Poker Club is a trustless multiplayer poker platform that brings fair and private poker gameplay to the blockchain. Unlike traditional on-chain poker, where every card and action is visible to all due to transparent ledgers, our system ensures that cards are dealt and revealed only to the relevant players, preserving the secrecy and excitement of real poker.
Players can participate in provably fair games without having to trust any central authority. Using advanced cryptography, the platform guarantees that no player can manipulate the deck or see others’ cards, while every participant can verify that the game was conducted honestly.
To ensure a safe and legally compliant environment, the platform requires players to prove they are of legal age and in a jurisdiction where poker is allowed — all without exposing sensitive personal information. This maintains player privacy while preventing underage gambling or participation from restricted regions.
Recognizing that user experience is key, Decentralized Poker removes the friction of constant transaction signing and gas payments by providing a seamless, gasless gameplay experience. This makes it easy and enjoyable for anyone to join and play without the technical hurdles often associated with blockchain games.
Dog Poker Club showcases how zero-knowledge cryptography and decentralized identity can seamlessly converge to create a truly fair, private, and user-friendly on-chain gaming experience — delivering the excitement of poker on the blockchain while preserving the integrity of the game and safeguarding players’ privacy.
There are three major challenges in developing a truly decentralized poker platform:
1) Lack of privacy on the blockchain.
To address this, we have developed a fully decentralized platform prototype that uses smart contracts (written in Solidity) to handle funds and enforce the game rules (in a basic version with some tests).
However, card dealing cannot be performed on-chain. To solve this, we implemented a system based on homomorphic encryption and zero-knowledge proofs (leveraging protocols such as Schnorr and Chaum-Pedersen). This system enables cards to be dealt fairly and privately using zero-knowledge proofs. Our implementation builds upon the GitHub repository geometryxyz/mental-poker
in Rust, which uses the Ark cryptography libraries.
2) Player identity and age verification.
Not everyone can or should play poker: minors are prohibited, and in some countries online poker is illegal. Therefore, it is essential to verify players’ age and location without compromising their privacy.
Fortunately, the Self protocol allows us to achieve this. We developed a registration page enabling players to prove they are of legal age, located in a jurisdiction where poker is legal, and not included on OFAC sanction lists.
Thanks to Self Protocol, we can also ensure that each player is a real human. We leveraged this capability to implement a daily rewards system without the risk of bots manipulating the game. Additionally, we added special rewards for events such as players’ birthdays, and we could even organize airdrops without worrying about Sybil attacks.
3) User experience and transaction costs.
Manually signing every transaction and paying gas fees can be tedious and discourage players. To solve this, we integrated a smart wallet solution via Thirdweb, allowing players to participate without signing each transaction or paying gas fees, thus providing a seamless, frictionless experience.
Moreover, with Self Protocol, it is possible to implement a recovery mechanism for these smart wallets, adding an extra layer of security for users.
Finally, we created an interface prototype in Figma, followed by a working poker game prototype in TypeScript using v0.