Inspiration

On chain poker usually feels terrible. It is either slow because every action waits fifteen seconds for a block or it is clunky because players must sign a transaction for every move. We wanted to build poker that feels native with Web2 speed and Base level security. By denominating the game in USDC we remove volatility and create a real skill based experience instead of a gamble on token prices.

What it does

BasePoker is a high frequency multiplayer Texas Hold’em platform.

Instant Action

We use WebSockets for real time betting so the table updates in milliseconds.

Stable Betting with USDC

The game is fully denominated in USDC on Base. One chip equals one USDC.

Self Custody Architecture

Players deposit into a smart contract escrow, play off chain, and settle on chain. They always control their funds.

How we built it

We used a hybrid model that balances speed, UX, and on chain trust.

Frontend Built with Next.js and TailwindCSS, optimized for mobile. We use viem for typed wallet interactions.

Backend A Node.js server using socket.io maintains the global game state machine S_t. Every action triggers a transition S_{t+1} that is broadcast to all players.

Simplified Game Loop (in TypeScript):

socket.on("action", (data) => { const newState = pokerEngine.handleBet(data.amount); io.emit("gameState", newState); });

Smart Contracts

We deployed an Escrow contract on Base that handles deposits, locks USDC, and releases funds after verifying signed end game results.

Challenges we ran into

The Side Pot Problem Side pots are extremely hard to implement cleanly. For example, if Player A is all in for 50 and Players B and C have 100 each: Pot_main = 50 × 3 Pot_side = 50 × 2 Every possible ordering of all ins creates more edge cases.

Race Conditions

Six players clicking actions at the same time caused inconsistent states until we added strict server side mutex locking to prevent chip duplication and phantom bets.

Accomplishments that we are proud of

We achieved Web2 level speed with on chain security. We eliminated constant wallet signatures so gameplay feels smooth. We proved that USDC can power high frequency gaming without volatility or gas friction.

What we learned

Poker logic is far more complex than it seems. Kicker rules and split pots each require dozens of edge case checks. We also learned that Base is incredibly easy to deploy on and has the performance needed for real time gaming.

What’s next for BasePoker

ZK Hand Provenance Zero Knowledge proofs to verify the deck was not manipulated, even off chain.

Paymasters Gas free buy ins so users only need USDC and no ETH.

Tournaments Scaling the system to support multi table tournaments with hundreds of players.

Built With

Share this project: