Back Donovan Crader Let's talk
Showcase project 2023

Social Stakes

Provably fair, multiplayer browser blackjack — every shuffle seeded by the Bitcoin blockchain.

  • React
  • Redux
  • Express
  • PostgreSQL
  • Socket.IO
  • AWS
Six-player blackjack table with dealer, player hands, chip stacks, and a live chat sidebar.

Case study

  • Real-time / multiplayer
  • Games & entertainment
  • Stretch capability

Multiplayer browser games are among the hardest web applications to build correctly. Every player has to see what every other player is doing the instant it happens — and if players are wagering anything, they need a way to confirm the house didn't cheat. Social Stakes solves both problems at once.

The fairness mechanism uses Bitcoin's blockchain as an independent, tamper-proof randomness source. Before each game, the server announces which future Bitcoin block hash will serve as the client seed — a value that hasn't been mined yet, so it can't be known or manipulated in advance. The server also commits to a pre-generated server seed stored as a SHA-256 hash chain. After the game, both seeds are published and any player can independently re-derive the shuffle and confirm it matches what was played. This is a public, auditable fairness proof — no trust in the house required.

The real-time layer is built with Socket.IO on an Express + PostgreSQL backend, with React + Redux on the frontend. The server is the sole authority for all game state: cards dealt, bets accepted, turn order, balance updates. Clients never calculate outcomes — they only send actions and render what the server says. This design eliminates any path for a client-side exploit to affect a real hand.

Up to six players can join a single table. Players can run multiple tables simultaneously for multi-table action. Private tables require an invite link. Live in-table chat lets players talk during hands, send friend requests, and open private conversations. The social graph — friends list, DMs, online status, and notifications — runs on the same Socket.IO channels as the game events.

A full UI overhaul redesigned the table layout, added chip-stack animations, and cleaned up the hand-resolution sequence. The lobby shows open and private tables at a glance with live player counts. Each player's profile tracks their complete hand history with a bankroll chart. Social Stakes is deployed on Render and publicly accessible.

Screenshots

Like what you see?

Let's build something together.

Have a project in mind? I'd love to hear about it.