Provably fair

Public fairness log

Every match publishes a SHA-256 commitment to its server seed before play begins. This page rolls all commitments of a day into a single digest and chains those digests together — a compact value you can publish anywhere and anyone can recompute.

  • Daily commitment digest
  • Chained, append-only
  • Recomputable from public data
  • Tamper-evident

Current anchor head

2026-11-02
Publishable value (chain head) 80b3c9318b1983d94ca90b35a5c631fa618af6ba6809ff972dc408fc8d860afb

Post this value to a public place the operator cannot rewrite afterwards — a social post, a public gist, or a Monero transaction. Once it is out, every commitment behind it is locked in: changing any past commitment changes this value.

Day 2026-10-27

6 commitments

Recompute the digest for this day with the formula below, then compare it to the value shown in the table. The order is by match id, ascending.

MatchCommitment (sha256 of server seed)
#26 85f629a5273128f66a8a77d76e83f0ee113185c401316f225521af0487dec31d
#27 82f4981118eb92cf1dd2e56036a00cfcbdb2ffa16a9fb8c05ab6e940c9678efe
#28 e5cca75ad8632904f16089923d8a4617a3b957a53ea5621348068177377c04a5
#29 d5361fa62ce18ff3ee7726a819599c0e74658752f9463aeb86a6df5facfed016
#30 0c3be26b001c5015204ae672fa977b8fd2d87701eaa4d419e66945f896ad3bae
#31 73d512d96369457476412468350a313c6636d3204329ab8384137bfaa7ee349b

Anchors by day

Day (UTC)MatchesDay digestChain
2026-11-02 26 d14387a6a1aea31630c701b1790df893478069012c4192685dc0f35d59eb3445 80b3c9318b1983d94ca90b35a5c631fa618af6ba6809ff972dc408fc8d860afb Detail
2026-11-01 4 498777f05bea366087fae387df9ce515002190fda9434f971fc6c5418adc5b17 d2725d11d601344a537424c2d46d6ee030e3d78549c43c6e2bea567117fb808d Detail
2026-10-31 48 55e903d069fc8319cc406ab11b79c7f793aa7028d32e7a6fc44c4bea203ce280 83b66ac68bdd0f6f97a9c60b0694a7c2173b4b640301592fe698b733eaad3835 Detail
2026-10-30 21 1737ffa62f65525ba4161bcc770fa7321f002b5075c908728ee320c7e4c08651 9f4d97ca2b371223b102c9822c1b29275ab595ff3c52f6e07c6422e320ef6173 Detail
2026-10-29 20 cec95533b8e288094c86509b0c3d95b613859adaa9b4dee8810cc0a8b12d9451 cacc49d4ad218027736b02a97d490d3723fcd4c903a3089542f8139b8c509708 Detail
2026-10-28 1 a7fcd537e3aa31162782cd6a70c0f3ae8e75b976e7fec91cc3bf73433ef4aa26 7f62ae494a7404fc81bc5fb9ee37ab435000c00a1e5d1e90cfa3d23124b861d3 Detail
2026-10-27 6 45d494170e9affd2b4ca9c0e22589e652afb50e99131b7d7a84f26ebef694004 842c6c2bee661dff7a04db7cce58da2a8bd1c328b01f030b91dfd1232b619881 Detail

How to verify

ValueFormula
day_digestsha256( "pvpfair-anchor-v1|" + day + "|" + join("\n", id + ":" + commitment) )
chainsha256( prev_chain + "|" + day + "|" + day_digest )
genesis"genesis" for the first day

What this proves. A match's commitment (sha256(server seed)) is fixed the moment the invite is created and is public from then on. The day digest bundles every commitment of that day; the chain links the days together. If someone altered a past commitment, that day's digest and every chain value after it would change — and would no longer match any value published earlier.

Why publish it. The chain lives in our database, so on its own it is only a convenient record. Its strength comes from publishing the head to a place we cannot rewrite. Everything after the first published head is then pinned in place. Each anchor value only needs to be posted once.

Per-match proof. For a full rundown of a single match — the published seed, the client seeds and the round-by-round hash chain — open the provably fair verifier and enter the match code.