Skip to main content

/ VERIFY

Public hash-chain verifier

Every NuroPicks pick is committed with a SHA-256 hash before the game starts (the pre-commit hash) and a second SHA-256 over the captured closing line after the line moves (the closing hash). Both hashes are stored UNIQUE in the picks table, and the immutability trigger blocks every UPDATE after insert. Paste any hash you have - even a prefix of 8 characters from a Discord embed footer - and we will resolve it back to the canonical /record entry. If the hash matches, the pick was not edited after publication. If the hash does not resolve, either the row never existed or you are looking at a forgery.

Match: pre-commit hash

San Francisco Giants ML

mlb · San Francisco Giants @ Tampa Bay Rays · Moneyline · -118 · 1u · result: LOSS

pre-commit (pick_hash)2c6651ffce6d25c8fc4b9e75e187193295ff58464c525c1678779cdf863725a9
closing-line (closing_hash)6a241a1c2646e3fbb2299e66ad4175b9b42f20c8e13a679b3e0539b5eb6f9a93
View full /record entryBrowse all picks

How verification works

  1. When a pick is locked, our publisher computes SHA-256(pick_uuid || odds || market || posted_at || nonce) and stores it in picks.pick_hash with a UNIQUE constraint.
  2. The first 12 hex chars of the pre-commit hash are surfaced in the Discord embed footer the moment the pick is published.
  3. When the closing line is captured (typically 5 minutes before tip), we compute SHA-256(pick_uuid || closing_odds || closing_at) and store it in picks.closing_hash, also UNIQUE.
  4. Both columns are append-only - the immutability trigger from migration 0017 raises an exception on any UPDATE to a settled row.
  5. This page does the inverse: paste any hash and we resolve it back to the canonical row. The hash either matches (proof) or does not (forgery / never existed).