Pipoke
Play

Poker

Pipoke poker is provably fair Texas Hold'em on chain. Hole cards are sealed with a NaCl box and only revealed post-hand. The deck commits before the hand and reveals after, so neither the dealer nor a player can manipulate the order. The pot, the chip stacks, the rake, and the payouts all settle on-chain.

Pipoke runs on Octra Devnet today. Any fee, price, or limit referred to here is a contract setting chosen for testing. Every one is owner-settable, and mainnet values will be different. These docs describe how the mechanics work, not what the numbers are.

#Cash and tournaments

Format Contract Players
Cash tables PokerShard 6-max ring games. You buy in, you cash out any time.
Tournaments PokerTournament Single-table SnGs and multi-table tournaments up to 180 players.

#Base constants

Constant Value
Small blind 5
Big blind 10
Default starting stack 1,000
Turn timer 60,000 ms (60 seconds)
POKE decimals 1,000,000 raw per POKE

#Table status enum

Status Number Meaning
OPEN 0 Open for buy-ins.
RUNNING 1 Hand in progress.
SETTLED 2 Final settlement.
CANCELLED 3 Table cancelled.

#Hand state on chain

While a hand is live, the table record tracks:

  • street (0 = preflop, 1 = flop, 2 = turn, 3 = river, 4 = showdown)
  • board[] (community card numbers as they reveal)
  • pot, current_bet, min_raise
  • committed[] (per-seat chip commitments)
  • to_act (whose turn it is)
  • folded[], all_in[]
  • act_deadline (epoch + ms by which the current player must act)
  • result at showdown: winner, split, by_fold, pot, hand_name, hands[], best5[], awards[], pots[]

#Cash table flow

You join a table with a buy-in. The dealer assigns you a seat. Each hand:

  1. The dealer commits to a deck order (a hash on chain).
  2. Hole cards are dealt and sealed to each player with a per-hand symmetric key, wrapped to that player's box pubkey.
  3. The board reveals as community cards in normal Hold'em order: flop, turn, river.
  4. Players act in turn. Each action (check, call, bet, raise, fold) is a signed transaction.
  5. At showdown, the dealer reveals the deck commit and players reveal their hole cards. The contract checks every reveal against the commit.
  6. The pot pays out, the rake is collected.

#Tournament structure

A tournament has a starting stack, a blind schedule, a payout table, and a re-entry policy.

Setting Value
Tournament rake 5% (500 basis points)
Re-entry hard cap 5
Minimum starting stack 10,000 chips
Locked payout split p1 = 50%, p2 = 30%, p3 = 20% (in basis points: 5000 / 3000 / 2000)

Three blind schedules ship out of the box. Each is a BlindLevel[] with per-level small blind, big blind, ante, and epochs per level. Octra runs ~4 epochs per minute, so an epochs value of 20 is a 5-minute level.

Schedule Per-level duration
Turbo 5 minutes (20 epochs)
Standard 12 minutes (48 epochs)
DeepStack 20 minutes (80 epochs)

Starting stack presets: 10,000 / 15,000 / 20,000 chips. Payout structures: winner-take-all, top 2, or top 3.

#Tournament status enum

Status Number Meaning
REGISTERING 0 Late registration open.
RUNNING 1 Tournament in progress.
FINISHED 2 Final table settled.
CANCELLED 3 Cancelled.

#Provability

Hole-card seal. Your hole cards are sealed to your wallet only. The dealer cannot peek.

Deck commit. The dealer publishes a commit to the deck order before the hand. After the hand, the dealer reveals the salt. Players can verify the commit and the reveal match. A dealer who tries to swap the deck mid-hand fails the verification.

Open seed. The seed used to shuffle the deck is publicly revealed post-hand. Anyone can replay the shuffle to confirm the order.

#Session-keyed

Every cash and tournament action other than the buy-in goes through the session key. No popup per fold.

#See also