Provable picks

Picks you can prove

Every time you save picks, Comped writes down a fingerprint of them and hands you a short code. Post it in the group chat before kickoff. After the games lock, anyone — not just the commissioner, not just us — can check that the picks showing are the ones that code fingerprinted. Here's how it works, and a checker you can run right now.

Have a link and a week? Skip to the checker →

Check a receipt

Paste an entry link (or just the entry id) and the week. Everything below comes straight from Comped’s public receipts endpoint; the hash comparison runs in your browser.

How a receipt works

  1. 01

    Save picks, get a code

    Every time you save, Comped lines up your picks for the week in a fixed order, adds a random salt, and takes a SHA-256 fingerprint of the result. The first ten characters of that fingerprint are your receipt code, shaped XXXXX-XXXXX.

  2. 02

    Post it before kickoff

    Drop the code in the group chat. The chat's timestamp is the witness — it shows the code existed before the games started, and the code can't be produced without the picks.

  3. 03

    Sealed until each game locks

    Nobody can see anyone's picks until each game locks — not the commissioner, not us through any public page. Only the fingerprint is on record, and a fingerprint can't be reversed into picks.

  4. 04

    After kickoff, anyone can check

    Once every game you picked has locked, the exact text that was fingerprinted and the salt are disclosed. The math is public: hash them together and you get the code back — this page does it in your browser, or you can run it yourself anywhere.

A real example

Two picks in one week (one with a confidence value), lined up in the fixed order, then the salt:

v1|k7m2p9qx4v|1|0f3c1a2e-5b6d-4c7e-8f90-1a2b3c4d5e6f:2b7e1c9d-3a4f-4b5c-9d6e-7f8091a2b3c4:{};4a1b2c3d-6e7f-4a8b-9c0d-1e2f3a4b5c6d:9e8d7c6b-5a4f-4e3d-8c2b-1a0f9e8d7c6b:{"confidence":2}
|3f9a1c7e5b2d4680a9c3e1f7b5d2c4a6

SHA-256 of that text is

9242f35a5fe8ba56cedefa73dd5ee80971327e33b86eb3dc05458e67ecbb04c6

and the receipt code is the first ten characters:

9242F-35A5F

What it does, and doesn’t

  • It proves the picks showing after kickoff are the ones fingerprinted before. A pick changed after the fact — by anyone, us included — reads as a mismatch.
  • The receipt log can’t be edited, only appended — enforced in the database, not just by policy. Every save adds a row; nothing updates or deletes one. (The one exception: erasing your entry erases its receipts with it.)
  • It does not prove when you decided. The chat timestamp on the code is the witness for that; the fingerprint only proves the picks match.
  • It can’t stop a commissioner from deleting an entry outright. That isn’t hidden — it’s visible on the roster — but it’s a different problem than editing picks.
  • It covers picks, not squares. A squares board is claims on a grid, and it writes no receipt.

Run a pool where the picks prove themselves.

One link. No accounts. A receipt on every save.

Start a free pool →

Or see how that compares →