Channel
verifying on-chain…
Channel
verifying on-chain…
v14 · Channel #2659
−$8.80
whole session · 5 epochs · 239 rounds · 562 steps · $40.60 wagered
final epoch −$5.70 · earlier epochs −$3.10
Settled on-chain. The written walk-through below is skipped for this session — its game trees are large enough that rebuilding them server-side would stall the page. The panel above verifies the whole thing in your browser instead, which is the authoritative check anyway.
Verified in your browser
Re-deriving every check from chain reads in this browser — reconstructing the game trees, re-rolling the seed, recovering the signature…
Don't trust this site's RPC either? Paste any HyperEVM RPC URL and re-run — the verification then never touches this site. The algorithm is verifyChannel in @freeroll/sdk — run it yourself from a terminal for zero trust in this page.
Parameters chain
Session epochs
This channel re-armed itself mid-session 4 times: each checkpoint settled the epoch's net, revealed its seed, and committed a fresh one — one continuous session, several sealed proofs. Every epoch below is replayed from its checkpoint transaction's signed stream — rolls re-derived, nets recomputed, signatures recovered ✓ and the chain of commitments anchors to the on-chain channel state. Every settled figure below is decoded from the checkpoint transaction's own event — never this site's database.
Proof of randomness · final epoch
This session played games with large sealed trees (thousands of nodes), and rebuilding them from chain words server-side would hold this page open past its limit — so the written round-by-round walk-through is skipped here. Nothing is missing from the proof: the panel at the top of the page runs the identical seven checks in your browser, where there is no such limit, and that is the verdict that counts. The committed inputs are below if you want to replay it yourself.
Seed commitment (bound at open)
0x51f454892f772140fcb588cb1e6320ce9cf547f953717467a3291ceb8d0b5ac5
Client seed (your entropy, bound at open)
0x22ced6673ae465112d57036f4d10c9a8eeb08eed0794006c9812a6f0609e9bb1
Round 1 · played against game #11 (player-registered set) — sealed tree #11
fold t1 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 2 · played against game #15 (player-registered set) — sealed tree #15
fold t3 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 3 · played against game #13 (player-registered set) — sealed tree #13
fold t5 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 4 · played against game #15 (player-registered set) — sealed tree #15
fold t7 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 5 · played against game #13 (player-registered set) — sealed tree #13
fold t9 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 6 · played against game #15 (player-registered set) — sealed tree #15
fold t11 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 7 · played against game #13 (player-registered set) — sealed tree #13
fold t13 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 8 · played against game #13 (player-registered set) — sealed tree #13
fold t15 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 9 · played against game #13 (player-registered set) — sealed tree #13
fold t17 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 10 · played against game #13 (player-registered set) — sealed tree #13
fold t19 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 11 · played against game #13 (player-registered set) — sealed tree #13
fold t21 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 12 · played against game #15 (player-registered set) — sealed tree #15
fold t23 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 13 · played against game #17 (player-registered set) — sealed tree #17
fold t25 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 14 · played against game #7 (player-registered set) — sealed tree #7
fold t27 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 15 · played against game #15 (player-registered set) — sealed tree #15
fold t29 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 16 · played against game #15 (player-registered set) — sealed tree #15
fold t31 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 17 · played against game #6 (player-registered set) — sealed tree #6
fold t33 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 18 · played against game #7 (player-registered set) — sealed tree #7
fold t35 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 19 · played against game #9 (player-registered set) — sealed tree #9
fold t37 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 20 · played against game #9 (player-registered set) — sealed tree #9
fold t39 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Rounds from here draw their roll graphics when opened — tap a round to see where each roll landed. The browser panel verifies every round either way.
Drawing this round's rolls…
Round 1 · played against game #7 (player-registered set) — sealed tree #7
fold t1 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 2 · played against game #9 (player-registered set) — sealed tree #9
fold t3 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 3 · played against game #7 (player-registered set) — sealed tree #7
fold t5 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 4 · played against game #9 (player-registered set) — sealed tree #9
fold t7 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 5 · played against game #9 (player-registered set) — sealed tree #9
fold t9 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 6 · played against game #9 (player-registered set) — sealed tree #9
fold t11 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 7 · played against game #9 (player-registered set) — sealed tree #9
fold t13 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 8 · played against game #7 (player-registered set) — sealed tree #7
fold t15 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 1 · played against game #7 (player-registered set) — sealed tree #7
fold t1 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 2 · played against game #9 (player-registered set) — sealed tree #9
fold t3 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 3 · played against game #9 (player-registered set) — sealed tree #9
fold t5 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 4 · played against game #7 (player-registered set) — sealed tree #7
fold t7 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 5 · played against game #7 (player-registered set) — sealed tree #7
fold t9 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 6 · played against game #9 (player-registered set) — sealed tree #9
fold t11 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 7 · played against game #7 (player-registered set) — sealed tree #7
fold t13 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 8 · played against game #9 (player-registered set) — sealed tree #9
fold t15 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 9 · played against game #17 (player-registered set) — sealed tree #17
fold t17 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 10 · played against game #17 (player-registered set) — sealed tree #17
fold t19 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 11 · played against game #6 (player-registered set) — sealed tree #6
fold t21 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 12 · played against game #6 (player-registered set) — sealed tree #6
fold t23 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 13 · played against game #9 (player-registered set) — sealed tree #9
fold t25 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 14 · played against game #9 (player-registered set) — sealed tree #9
fold t27 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 15 · played against game #7 (player-registered set) — sealed tree #7
fold t29 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 16 · played against game #7 (player-registered set) — sealed tree #7
fold t31 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 17 · played against game #7 (player-registered set) — sealed tree #7
fold t33 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 18 · played against game #7 (player-registered set) — sealed tree #7
fold t35 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 19 · played against game #7 (player-registered set) — sealed tree #7
fold t37 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 20 · played against game #9 (player-registered set) — sealed tree #9
fold t39 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Rounds from here draw their roll graphics when opened — tap a round to see where each roll landed. The browser panel verifies every round either way.
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Round 1 · played against game #17 (player-registered set) — sealed tree #17
fold t1 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 2 · played against game #7 (player-registered set) — sealed tree #7
fold t3 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 3 · played against game #9 (player-registered set) — sealed tree #9
fold t5 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 4 · played against game #6 (player-registered set) — sealed tree #6
fold t7 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 5 · played against game #9 (player-registered set) — sealed tree #9
fold t9 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 6 · played against game #17 (player-registered set) — sealed tree #17
fold t11 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 7 · played against game #6 (player-registered set) — sealed tree #6
fold t13 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 8 · played against game #17 (player-registered set) — sealed tree #17
fold t15 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 9 · played against game #15 (player-registered set) — sealed tree #15
fold t17 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 10 · played against game #6 (player-registered set) — sealed tree #6
fold t19 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 11 · played against game #9 (player-registered set) — sealed tree #9
fold t21 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 12 · played against game #7 (player-registered set) — sealed tree #7
fold t23 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 13 · played against game #7 (player-registered set) — sealed tree #7
fold t25 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 14 · played against game #17 (player-registered set) — sealed tree #17
fold t27 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 15 · played against game #15 (player-registered set) — sealed tree #15
fold t29 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 16 · played against game #7 (player-registered set) — sealed tree #7
fold t31 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 17 · played against game #17 (player-registered set) — sealed tree #17
fold t33 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 18 · played against game #7 (player-registered set) — sealed tree #7
fold t35 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 19 · played against game #6 (player-registered set) — sealed tree #6
fold t37 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Round 20 · played against game #9 (player-registered set) — sealed tree #9
fold t39 · roll = keccak256(serverSeed ‖ clientSeed ‖ channelId ‖ t) mod 10000
Rounds from here draw their roll graphics when opened — tap a round to see where each roll landed. The browser panel verifies every round either way.
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…
Drawing this round's rolls…