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 · 687c84ef727cd57afae051d33dc15509

Watch the replayCheck it is fair

  1. b7b888…0954Seat 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
cbef4acc7136b50780518ef240c509a4e89756835b043d4768a4e6ede8d97f81
Seed hash
c68a7088c375bc0c5e8ef232098ab5aa5fab32d5c815ece153e399948b910a82 = SHA-256 of "degen.match.seed.v1", a zero byte, and the 32 seed bytes. Checked: it matches.
Commitment
Batch 43, Merkle root 90e62455e7426d3fdad5b91d7d85878398a5a794e203d3360d8a2738194130e3. Recorded by Degen Protocol; on-chain publication is not available yet.
Merkle path
  1. e201f189a2ef71c6e3a4c63abfe5035dad862caf7dd403832794c25f213ca69d
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"scissors"
12"scissors"
21"rock"
32"paper"
41"paper"
52"rock"timed out
62"rock"timed out
71"rock"
81"scissors"
92"rock"
101"rock"
112"scissors"
122"paper"
131"scissors"