Texas Hide'em

Texas Hide'em

No Frontend, No Backend, Just poker-on-chain

101
Built at ETHDenver 2024
First Prize

The problem Texas Hide'em solves

(Please add your own sound effects when you read this)

Howdy, Partner. "Texas Hide-Em" our brand-new, fully decentralized poker platform for onchain poker enthusiasts.

By leveraging the Oasis Sapphire chain for confidentiality and randomness on the contract side, and hosting the dapp webpage directly on ethstorage, we present a poker dapp that has neither centralized frontend, nor a centralized backend, only a fully decentralized contract. (Whip Sound Effect)

If you have been playing online poker regularly, you can remember the scandals with Absolute Poker or Ultimate Bet, where cheating superusers could view other player's cards. Our solution eradicates the superuser dilemma with confidential computing, keeping all cards provably secret until the showdown. (Good Bad and Ugly Theme Riff)

This is not just poker; it's the future of online gaming, combining privacy, security, and fairness for all players.

Welcome to "Texas Hide-Em," Hide-em high at the mile high city, Denver, Yeeeeeehaw.

Challenges we ran into

  • Migration between frontend build systems / frontend challenges - Cultivated Flexibility and Powered through
  • Source of Secret Onchain Randomness - Used Sapphire RandomBits Precompile
  • Partially Revealed Cards - Use a homespun hashing technique with player generated keys and brute force on a tiny preimage space
  • Hand selection from 7 cards is too complex onchain - Client does hand selection (js), contract does hand confirmation
  • Poker state machine and poker logic was very complex - used https://github.com/dxganta/poker-solidity trust-FUL poker state machine implementation that we altered and adapted
    https://github.com/thlorenz/phe Poker Hand recognizing code used client side to identify hands

Tracks Applied (5)

Identity, Privacy & Security Track

We are leveraging Oasis Sapphire to hide confidential information like poker cards. Poker is a great use case for this b...Read More

Build a Decentralized On-chain Gaming Using Web3 and EthStorage

ETHStorage enables us to have an entirely serverless game, entirely mitigating any 3rd party risk.

ETHStorage

Unleash your creativity with MetaMask SDK

We are using the Metamask SDK (web) to provide a wallet connection to our dapp. This also gives us mobile support with n...Read More

Linea

Build a dApp on Oasis Sapphire

Our contract is deployed at 0x89E4934E5549d67CE6d5773433CFf3C50FBD65c3 on the oasis sapphire testnet. We are using Sapph...Read More

Oasis Protocol

web3 Notifications Alerts for XMTP Users

We are using XMTP to relay player actions and notifications between the active player and the next player, without using...Read More

XMTP

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion