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-31

48 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)
#74 ecb7cfd57dc58ebadc307a73305a69c50510eff2b3ce04405a05d37810001931
#75 f1861feb6e7860cb1750d9d2031a71d234fa0d46009fafcab362dd81361913e8
#76 2555226ccf276af9280322b6e579710401b23a3d6f5eb88d8a5b4fc22ce52c49
#77 9ca3eabfe9072efb526b0b5e47c1459c75d0afb4bbb36ff00f41c246d791f753
#78 a317c4843c0d2f5cc062a02378bd06b37470435cfcaf1629fa37ac3e960d6e34
#79 d755d96cd84d6ea493475d13fe4845d7aa8bc2cf8defe568447e029972f95862
#80 8213a008a83dc4da42f91ad803b4e9fd201c7a224de3054cfce9a5556d90a2f9
#81 bb23a8d2f20f7b842aa669db9df4fdf511bd3c1f5633e0cf2e024f452eca1716
#82 0f8ef60b6d6309a19ad19d939fb60af3be737d66e7e36fbb8df0c727a0e041be
#83 26d91d66b5fadda81b521e9376d3512eb0f87b4c761f8319448cbba8608eb52b
#84 56fed110d876829d29478fb08111a61ef4e141165181319168cb94a1a535caf0
#85 5f51f564d7109ea81d2bfa8450577635d0bdbd73a661c64565030ace0c8ce3e5
#86 6f74d08b53b59e62f824d1738dd7d2dd077e5882f8f420ecd61f20b9b61984b9
#87 f0fcfafcf559e6a75c454b14e79d936974d397838eaf6c56d103d2391b688eee
#88 e5766a7e0f5e4cb9d410d235d025e805e743a60c6999b7dd09995c09f8e2cf7f
#89 4e6049c5e948c7b0cb76d0c0f7e9112c666f784e867f31b5a843f377779d747e
#90 c8d0f948cdcfb1c21b82a3fd38a0a055f4c6dba0a5f1d09d3e2c29abff11943b
#91 1b837c4965681d5ae284d890a785f3adbfeb0e4e8c73e6522880f7e5ee9274e7
#92 c6f93f67d60e1e3dcfb349e73414701fee0b435debbaea16d103539c7edc9404
#93 f0d0bae378ee26d6979aa4192a9146465e749e7023d852f3b7acca9c9dea0be2
#94 4a19895860be16df3e6b6d9d6dc0bd4c263c7d14d7a312c282af35d9520af0d7
#95 f2161753bc2372ba6dcb09cc5d6a9c3b04c7411ff953bc049f959d3a0f69885d
#96 76b17b7c1281ec83b073b6262be7746e743292e0e9b8c5e1d662919e7ea39029
#97 d8612d2f62b7310a508f564e277d406b74ed108272c126eba369165f57b3200e
#98 50fdecae1efecc207a2ef39fb32bee8f2c37c7286ae84fe79b38b9c41b5458b9
#99 96894e16aa8945614db7b71bde9e8445e8a43e9833ca400d03214a185141c8d2
#100 3cb2a3ae3f4f635e9828deb42ac87241f7e2aeb2a98cf85a4ce69e3d45b3adc6
#101 b9e7c55d2881c61d72617b8198780ccd46db5d5a40b02d0aebaa88c496045e99
#102 9fd806dcbd6d9f184512d766c71e5c432b0c039fe087505182915ba0dc6b0d65
#103 b6c0f6c427cd14a0000e177207e6ab55a4643341d813a874d025eb0741b8c93f
#104 45987a3776d42a5a17f36537ec40ca8229408a81869268f50c5a98456b0b904e
#105 4d7f8dfc49c36f1344e378c3a5f54d2bd8ea7518d1bdbdea6d35854a4f5bc0f2
#106 5ec4a61646abfb186232a763f861cd4b97e9e6635042355ab6f80ea29f0584fb
#107 923d37dd50fea194f729e0e6ec20f8df8b3139e171c5b2730f5b8c51652907bc
#108 49caad54abc5cf739c55bcc0fa08980ade7ed78cada558b93797ae8af5dcb0e5
#109 9ea1332f20ba16db75ac385412d34c21db61a703751e8dbd89249882e4e3577c
#110 1e2581ca4b56cd4afc02440a437b41f4bcbfc59cccc994528ed0f58fcd5a652f
#111 955ec1be0d924ed628e852300c04759caa812ecbdef16d49701e4a309c898462
#112 ecf9dfe1927932a508e960235d115ced698a7ac00db3f0e5aa6b2a9d8c29e2ae
#113 4684f42db3a9f599f4e8d6de3681d0ab2d48d302abd6382ece81801ba6ef8553
#114 b529e43e528bd68983eb421a8fd756a12d7cc73484f531f320e1e206daa519fd
#115 a593dcd38882066eca8c9c26f8b0d6d18d3a3ce58d1667f53420a516d5639b77
#116 2767f9dd9c6b15bec6c9f2748b45ad327a66b4021b6b2001c42ca5f43aa847bc
#117 92b0b3406ee4a235e73ff653dbfb3a6fd4b472455416afcb3f25b37bf7d99b85
#118 468fecda19a9cd3a9557d7a239bac8ef4d843c58c44cf7a6c9d20355d836a431
#119 dd8709edf2401743b8bd24d36e9eea5693377efc932d852b24af33f456eddbc4
#120 e2dbd3ae76328a7c43cedde9b8ef5632d56ff221afc000a88b50a893486ef8a6
#121 a0449fae622234da0b1345d5c53c440b8a774c6c60d9d6aef0309e38dfa3c2af

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.