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 · 604dbcddcfc902d77884a042a42dba82

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
50c4c2170d9f424cc606d897d0105d18d094ac504fbe532bd7f55065d7c768dd
Seed hash
d7025afcd945c2218deeb3813bb0e3874519216ef47278624a7f115340e9b9bb = SHA-256 of "degen.match.seed.v1", a zero byte, and the 32 seed bytes. Checked: it matches.
Commitment
Batch 29, Merkle root b366a47b98b353ba7fd6143d5b5954c68e6b987a573db4de48e4d8a31fe5350c. 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"rock"
12"rock"timed out
22"rock"timed out
31"rock"
41"rock"
52"rock"timed out
62"rock"timed out
71"paper"
81"scissors"
92"rock"timed out
102"rock"timed out
111"scissors"
121"rock"
132"rock"timed out
142"rock"timed out
151"paper"
161"rock"
172"rock"timed out
182"rock"timed out
191"scissors"