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-02Post 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 commitmentsRecompute 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.
| Match | Commitment (sha256 of server seed) |
|---|---|
| #26 | 85f629a5273128f66a8a77d76e83f0ee113185c401316f225521af0487dec31d |
| #27 | 82f4981118eb92cf1dd2e56036a00cfcbdb2ffa16a9fb8c05ab6e940c9678efe |
| #28 | e5cca75ad8632904f16089923d8a4617a3b957a53ea5621348068177377c04a5 |
| #29 | d5361fa62ce18ff3ee7726a819599c0e74658752f9463aeb86a6df5facfed016 |
| #30 | 0c3be26b001c5015204ae672fa977b8fd2d87701eaa4d419e66945f896ad3bae |
| #31 | 73d512d96369457476412468350a313c6636d3204329ab8384137bfaa7ee349b |
Anchors by day
| Day (UTC) | Matches | Day digest | Chain | |
|---|---|---|---|---|
| 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
| Value | Formula |
|---|---|
| day_digest | sha256( "pvpfair-anchor-v1|" + day + "|" + join("\n", id + ":" + commitment) ) |
| chain | sha256( 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.