Below you see a FSM representing one game of Texas Hold’em Poker ( see miro board: https://miro.com/app/board/uXjVOaTcQLI=/ )

In the Table, you see a better description of what’s going on.
| State | Description | Transitions |
| Start | Players P[i] agreement | All P[i] check-in → shared secret, defined order, broadcast. |
| Shuffle | P[i]s shuffle | All P[i] shuffle and broadcast. |
| Deal | P[i]s know cards | All P[i]s Ack that know the cards |
| Bet0 | Initial Bet with SB, BB | 1 Player Left → Payout2+ Pi left → Next |
| Flop | Show 3 community card | All Ack’s (as in Deal) |
| Bet1 | Betting round | 1 or 2+ P[i] (as in Bet0) |
| Turn | Show 4th community card | All Ack’s (as in Deal) |
| Bet2 | Betting round | 1 or 2+ P[i] (as in Bet0) |
| River | Show last community card | All Ack’s (as in Deal) |
| Bet3 | Betting round | 1 or 2+ P[i] (as in Bet0) |
| Showdown | Show private cards | All Ack’s (as in Deal) |
| Payout | Results written to Ledger | All P[i]s check-out → result is on-sidechain. |
Reusing the results from 2017-899_Kaleidoscope, we add the following
- The game is played on a channel
- The players know each other before check-in
- At check-in the players initialize the data needed for the game, and become active by notifying the others on the channel
- At checkout the players terminate the session, become inactive, and settle up the outstanding amounts
- After check-out is possible to initialize a dispute-resolution mechanism
- The shuffle is done all together by all players in the game
- After each action, an active player broadcasts a message to the others
- After receiving a status update all the active players broadcast Acknowledgement to the others.
Betting Round
Below you see the available actions:
- FOLD: Pi marked inactive and broadcast (FOLD,i) [Pi also need to broadcast decryption of all community cards, but not necessarily decryption of own private cards]
- CALL: if Pi has enough money send (CALL,i) and update the state, otherwise run the Compensation Procedure
- (RAISE, r): if Pi has enough money send (RAISE, i, r) and update the state, otherwise run the Compensation Procedure
- ALL-IN: if conditions apply, send (ALL-IN, i), otherwise run Compensation Procedure
- CHECK: If it’s the Hand’s first betting round or anyone has bet in the round, run the compensation procedure. Otherwise broadcast (CHECK, i) .