Provable picks
Picks you can prove
Save your picks and Comped hands you a ten-character receipt — a fingerprint of that week's sheet that gives away nothing about it. Post it in the group chat before kickoff. Once the games lock, anyone can check that the picks showing are the ones that code stands for: not just the commissioner, not just us.
Why it matters
Every pool has this argument.
The claim
“I had that one”
Everyone remembers their picks a little better on Monday. The code sitting in the chat from Saturday came out of that week's sheet and nothing else — after the games lock, the sheet either reproduces it or it doesn't.
The commissioner
The person running it plays too
Nobody can read anyone's picks before a game locks — not the commissioner, not Comped through any public page. All that exists in the meantime is the fingerprint, and a fingerprint can't be turned back into picks.
The late edit
A pick that changed after kickoff
Every save appends a new code and nothing ever overwrites an old one — the database itself refuses. A pick altered after its receipt was recorded reads as a mismatch to anyone who checks.
Check a receipt
Check anyone’s receipt right now.
Paste an entry link and the week. Everything below comes straight from Comped’s public receipts endpoint — the hash comparison runs in your browser, not on our server, so you aren’t taking our word for the answer either.
How a receipt works
Four steps, and none of them ask you to trust us.
- 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.
- 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.
- 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.
- 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.
The math, in public
Here is a whole receipt, start to finish.
Two picks in one week — one of them carrying a confidence value — lined up in the fixed order, then the salt. This exact example is hashed by our test suite on every build, so it can never quietly stop being true.
THE PICKS, 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
9242f35a5fe8ba56cedefa73dd5ee80971327e33b86eb3dc05458e67ecbb04c6
↓ FIRST TEN CHARACTERS
9242F-35A5F
RUN IT YOURSELF · ANY TERMINAL WITH SHASUM
printf '%s|%s' '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' | shasum -a 256It prints that same hash, character for character. The checker hands you the same command for any real entry once its games have locked — nothing about the calculation is ours to keep.
The honest version
What it proves, and what it doesn’t.
What it proves
- The picks showing after kickoff are the ones fingerprinted before it. A pick changed after the fact — by anyone, us included — reads as a mismatch.
- The receipt log can't be edited, only appended. That's 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.)
- Your picks stayed private while it mattered. The salt and the exact text are withheld until every game you picked has locked, so the receipt gives nothing away before kickoff.
What it doesn’t
- 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 →