Sealed-run protocol

How a run is sealed before you ever choose.

PSIGames is a blind-trial instrument. The signature move is that today's targets are committed in advance and provable after the fact — so a run cannot be edited to look better than it was. Here is the whole mechanism in plain language.

1 · CommitBefore a trial shows you anything, the server derives its target from a secret salt and publishes a SHA-256 commitment of it. You see the commitment hash on the trial card. The target itself stays hidden.
2 · Blind choiceYou log an impression, then pick one of four targets. The server only advances the run one trial at a time, in order, so the choice is made against an already-sealed target — there is no way to peek ahead.
3 · RevealAfter you choose, the server reveals the target and its per-trial nonce. Your browser recomputes the commitment on the spot and confirms it matches the one shown before you chose. The target could not have been swapped.
4 · Hash chainEach trial's outcome is linked into a running hash chain, so the sequence of results is tamper-evident as a whole — you cannot reorder, drop, or insert a trial without breaking the chain.
5 · Public auditWhen a run completes, the salt and every nonce are published at /api/verify. Anyone — you, a skeptic, a bot — can recompute all of it independently. Until completion the salt stays secret so the run stays blind.
What this does not proveSealing proves the run was honest, not that psi is real. A hit rate above 25% still has to survive many runs, stricter controls, and independent replication before it means anything.

Independent verification

Check a sealed run.

Enter a run's day, mode, and participant ID — or open a shared verify link — and the app recomputes every commitment against the revealed targets and nonces. Nothing here is taken on trust; the math is redone in front of you.