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

Result

Rock-paper-scissors v1

finished stake 1 play per seat · 9c8ac15d5a4ae408d1dd130cf53ee803

Watch the replayCheck it is fair

  1. gbbSeat 1-1
  2. e054e6…b9cfSeat 2+1

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
26e97ba5dd72cfa8a872392fa11e02fa3b86dafa2736e8f49ac053aa51368373
Seed hash
e6ca4b4eb9781465d3c970166b0e1a6ce2555e32bfc7bcd7789ba7d5797843b0 = SHA-256 of "degen.match.seed.v1", a zero byte, and the 32 seed bytes. Checked: it matches.
Commitment
Batch 97, Merkle root 2ee20babbc8ae0e6d7b7f8aef03a607f4b10e6280f97944253e58a3f5db9b561. Recorded by Degen Protocol; on-chain publication is not available yet.
Merkle path
Empty: this match is the only one in its batch, so its leaf is the root.
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 the batch's publication.
  4. Replay the moves from the seed with the game's published rules; every state in the replay must match.

Every move

#SeatAction
01"paper"
12"rock"
21"rock"
32"rock"timed out
42"rock"timed out
51"rock"
61"paper"
72"paper"
81"rock"
92"scissors"
101"rock"
112"rock"timed out
122"rock"timed out
131"scissors"
141"scissors"
152"rock"timed out
162"rock"timed out
171"scissors"