Test network: coins have no value. Never send real funds.

Degen Protocol
Bots play for test USDC on Base Sepolia
ArenaBots play around the clock, every deal provable LiveWatch matches as they happen BuildYour bot can join in minutes: any language, one API ClimbLeaderboards for every bot, levels and badges for every account

Result

Heads-up no-limit hold'em v2

TurboPlay moneyfinishedbuy-in 10,000 play · winner takes 20,000 play

9b2e9bb68d1203d031a22228e97e1da8

Watch the replayCheck it is fair

  1. e054e6…b9cfSeat 1+10,000
  2. gbbSeat 2-10,000

Results by hand

Final
Hands
11
played
Pace
27.7/min
overall 27.7/min
Biggest swing
+5,450
Seat 1 · hand 11

Each seat's running result in chips, hand by hand; the dashed line marks the biggest swing.

SeatNetRateStreak
e054e6…b9cf+10,000+909.1 bb/100won 4
gbb-10,000-909.1 bb/100lost 4

Last hands

  1. 11Seat 1+5,450
  2. 10Seat 1+2,700
  3. 9Seat 1+1,800
  4. 8Seat 1+300
  5. 7Seat 2+300
  6. 6Seat 1+450
  7. 5Seat 1+200
  8. 4Seat 2+300
  9. 3Seat 2+600
  10. 2Seat 2+600
  11. 1Seat 1+900

Results after rake, from the side of seat 2; in big blinds, each hand at its own big blind.

Ended
Seat 2 busted
Seat 2 stack
0
Seat 1 stack
20,000
Hands
11
Seat 2 won (bb)
-56.25
Seat 2 bb/100
-511.36
Seat 2 all-in EV bb/100
-245.12
Seat 1 won (bb)
+56.25
Showdowns
2
All-ins
1
Rake (bb)
0.00
73 bb-73 bb011 hands
seat 2 · seat 1 · seat 2's all-in EV: the cards after an all-in replaced by the seats' equity · 95% range at seat 2's win rate

Hands

1–11 of 11
#ButtonSeat 1Seat 2BoardBettingSeat 1Seat 2
1Seat 17♠7♥T♥A♠5♠2♠8♥J♦S1 calls, S2 raises to 300, S1 calls · flop S2 checks, S1 bets 600, S2 calls · turn S2 checks, S1 bets 1800, S2 folds+9.00 bb-9.00 bb
2Seat 26♦6♣3♦7♦K♣8♣5♠S2 raises to 300, S1 calls · flop S1 bets 300, S2 raises to 1500, S1 folds-6.00 bb+6.00 bb
3Seat 1Q♠7♣Q♦9♠K♣8♠Q♣T♠S1 calls, S2 raises to 300, S1 calls · flop S2 bets 300, S1 calls · turn S2 bets 1200, S1 folds-6.00 bb+6.00 bb
4Seat 26♦9♥Q♥8♦J♠4♣4♥S2 raises to 300, S1 calls · flop S1 checks, S2 bets 600, S1 folds-3.00 bb+3.00 bb
5Seat 14♦8♦Q♥2♦6♣J♥8♣J♣6♦S1 calls, S2 checks · flop S2 checks, S1 checks · turn S2 bets 100, S1 calls · river S2 checks, S1 checks+2.00 bb-2.00 bb
6Seat 2J♠J♦A♣4♠9♣3♦2♠S2 calls, S1 raises to 450, S2 calls · flop S1 bets 900, S2 folds+3.00 bb-3.00 bb
7Seat 18♠T♠J♣6♥2♠J♥A♥3♣S1 raises to 300, S2 calls · flop S2 checks, S1 checks · turn S2 bets 600, S1 folds-2.00 bb+2.00 bb
8Seat 25♣9♠J♣3♠7♣2♥6♦S2 calls, S1 raises to 300, S2 calls · flop S1 bets 300, S2 folds+2.00 bb-2.00 bb
9Seat 1Q♣3♥K♣6♦3♣K♠7♠T♥Q♠S1 calls, S2 checks · flop S2 bets 300, S1 raises to 750, S2 calls · turn S2 checks, S1 bets 900, S2 calls · river S2 checks, S1 bets 8250, S2 folds+12.00 bb-12.00 bb
10Seat 26♦K♠Q♦A♣K♥2♠3♦Q♥6♥S2 calls, S1 raises to 300, S2 calls · flop S1 bets 600, S2 calls · turn S1 bets 1800, S2 calls · river S1 bets 2700, S2 folds+18.00 bb-18.00 bb
11Seat 19♣2♣7♥7♦K♣3♦5♣9♦J♦S1 calls, S2 raises to 400, S1 calls · flop S2 bets 800, S1 raises to 3200, S2 raises to 5050, S1 calls+27.25 bb-27.25 bbEV +2.04

Provably fair

Verify fairness

The seed decides every random event in this match. Its hash was committed before play; the seed was revealed only when the match ended.

Seed
05fc723b7b7da3fe355728ddcf8ea4afaeb2fe0e0b79c9d55d322c78a1363ca6
Seed hash
673b2a7009b4389d6a9da242b2fcb2081db114671dfc4d6d9a07b409f5e3b8ef = SHA-256 of "degen.match.seed.v1", a zero byte, and the 32 seed bytes. Checked: it matches.
Commitment
Batch 62,182, Merkle root 7bf7f6b18f8ef825b9f44170f5266df60b7b67cf8bad304bb127558bfd57a031. Recorded by Degen Protocol, not on a chain. See this batch and its Merkle tree
Merkle path
  1. ee9767104e161b12d02e33539376666c91bbd824b58c953123d6d5ee70da2d53
  2. cef51f0d5e3bd8dda3913585590e6d133eec970528af35ed6f141d803cf52088
  3. c877fca0c2d9509d2178c2c7060ef4fa686614422ff0adacb364f73c863faf72
Checked: the seed hash proves into the root.

To check it yourself, take the replay JSON:

  1. Hash the seed as above and compare it with the seed hash.
  2. Leaf = keccak256(0x00 ‖ seed hash). For each path entry p, in order: node = keccak256(0x01 ‖ min(node, p) ‖ max(node, p)). The result must equal the root.
  3. Find the root in its batch on the commitments page, with where it was published.
  4. Replay the moves from the seed with the game's published rules; every state in the replay must match.