Check our records
Some steps must never change after the fact: freezing the answer key, wiping test data before launch, and tagging the analysis plan. Each one is a line in our audit log. Here you can check that no line has changed since it was stamped.
The audit log
Each line has a receipt. The receipt is a hash of the line, and the line holds the receipt before it. Change one line and its receipt stops matching, and so does every receipt after it. This is an audit log, not a blockchain.
The chain held when this page was built: 11 lines. Your browser checks it again when the page loads.
Line 1 of 11
The answer key was frozen.
- Written at (UTC)
- 2026-09-21T19:41:52Z
- Receipt
- b04d63ec158466f4aa4d2e7083016be68b347f2e4a37c701f5452fb44383e02a
- Receipt of the line before
- None. This is the first line.
- Hash of what it recorded
- 1ce615762f5a36bc288835326c21929bf1aacd37da00ae2a989658aae6bd9508
- OpenTimestamps
- In Bitcoin block 968372, 2026-09-24.
Line 2 of 11
Test data was wiped before launch.
- Written at (UTC)
- 2026-09-22T05:33:44Z
- Receipt
- 9104d2056f09f76448ce097514fc06fa7c7228df165cfb649ec2f1e5bb69175a
- Receipt of the line before
- b04d63ec158466f4aa4d2e7083016be68b347f2e4a37c701f5452fb44383e02a
- Hash of what it recorded
- 10c6eceea4eb095d66dc4c9c99ebe46a0d0abff791c10648a2d324a0727110d0
- OpenTimestamps
- In Bitcoin block 968372, 2026-09-24.
Line 3 of 11
The analysis plan was tagged.
- Written at (UTC)
- 2026-09-22T05:36:06Z
- Receipt
- 3d3cbb4da01ac26e9e9579dac9681d67e5b034006cfc1ddd4215ea28d0fb3cc3
- Receipt of the line before
- 9104d2056f09f76448ce097514fc06fa7c7228df165cfb649ec2f1e5bb69175a
- Hash of what it recorded
- 0419ca1187970fec4a1d6636bbb1db99f42602a5665314af40485065b8dd72f2
- OpenTimestamps
- In Bitcoin block 968372, 2026-09-24.
Line 4 of 11
The analysis plan was tagged.
- Written at (UTC)
- 2026-09-26T01:34:28Z
- Receipt
- bf68d0a8214227254cfdd23d5c90a7bf063cf02322388b5aaedc47ff635aec13
- Receipt of the line before
- 3d3cbb4da01ac26e9e9579dac9681d67e5b034006cfc1ddd4215ea28d0fb3cc3
- Hash of what it recorded
- 0f05d7423048afcd3b1454af1ec5a31bbbd63fa752b7a107451b4b1f09b422f8
- OpenTimestamps
- In Bitcoin block 968622, 2026-09-26.
Line 5 of 11
Records were copied to the shared test server.
- Written at (UTC)
- 2026-09-28T15:02:37Z
- Receipt
- 97981375195a8be27052d16575adffe30f0fc0cc94fe210b821083f723d7536d
- Receipt of the line before
- bf68d0a8214227254cfdd23d5c90a7bf063cf02322388b5aaedc47ff635aec13
- Hash of what it recorded
- f3a4d603759daa61fd65303e4fb6f75e9d4e4d953d19fa63fb8baedcc50e3ceb
- OpenTimestamps
- In Bitcoin block 969160, 2026-09-29.
Line 6 of 11
The study data was locked.
- Written at (UTC)
- 2026-09-29T20:31:36Z
- Receipt
- 92461e66b87ff383a7fc541d63558cbf6c4a3b06f2bbef9d0f02b24001a4323b
- Receipt of the line before
- 97981375195a8be27052d16575adffe30f0fc0cc94fe210b821083f723d7536d
- Hash of what it recorded
- 459208623a01dd7a6f0193a3438a31f2d85c4b316d22d87435d2d0ee9dbc2174
- OpenTimestamps
- In Bitcoin block 969233, 2026-09-30.
Line 7 of 11
The analysis plan was tagged.
- Written at (UTC)
- 2026-09-30T00:33:43Z
- Receipt
- cd0a0a68d56b423120086d9a95b865b13c0aaa499aa23dd02bbd5ca0be1aca63
- Receipt of the line before
- 92461e66b87ff383a7fc541d63558cbf6c4a3b06f2bbef9d0f02b24001a4323b
- Hash of what it recorded
- 1cdeecd8fd20ab07a6b6a1dedec1dad8fb6f13fa5d462d735db6c9904d0c1b41
- OpenTimestamps
- In Bitcoin block 969233, 2026-09-30.
Line 8 of 11
Records were copied to the shared test server.
- Written at (UTC)
- 2026-09-30T16:14:57Z
- Receipt
- 9e14f7c6f46cfe43f798c0ae4e50c31328320df36aceab7c2d3a681c6f2706d8
- Receipt of the line before
- cd0a0a68d56b423120086d9a95b865b13c0aaa499aa23dd02bbd5ca0be1aca63
- Hash of what it recorded
- 4fa85fd412682285594458b199adcc0c05a7380d107a728438caea63c4bc6ec1
- OpenTimestamps
- Stamped on 2026-10-04. Waiting for a Bitcoin block.
Line 9 of 11
Records were copied to the shared test server.
- Written at (UTC)
- 2026-10-01T15:03:11Z
- Receipt
- 044843b4c511df823f912a981482b137992d343bdcedfe872b84d0d104156d76
- Receipt of the line before
- 9e14f7c6f46cfe43f798c0ae4e50c31328320df36aceab7c2d3a681c6f2706d8
- Hash of what it recorded
- 4fa85fd412682285594458b199adcc0c05a7380d107a728438caea63c4bc6ec1
- OpenTimestamps
- Stamped on 2026-10-04. Waiting for a Bitcoin block.
Line 10 of 11
Records were copied to the shared test server.
- Written at (UTC)
- 2026-10-03T15:05:34Z
- Receipt
- 59f52e85f8529e2a6c95d07614e0fb7d68a9548f48d5856711fd42712aaa24c8
- Receipt of the line before
- 044843b4c511df823f912a981482b137992d343bdcedfe872b84d0d104156d76
- Hash of what it recorded
- 4fa85fd412682285594458b199adcc0c05a7380d107a728438caea63c4bc6ec1
- OpenTimestamps
- Stamped on 2026-10-04. Waiting for a Bitcoin block.
Line 11 of 11
The study data was locked.
- Written at (UTC)
- 2026-10-04T07:21:35Z
- Receipt
- 918da1fd9cce5e310cbd6e959e963ccd0228033d29856889cf310fd0446ce679
- Receipt of the line before
- 59f52e85f8529e2a6c95d07614e0fb7d68a9548f48d5856711fd42712aaa24c8
- Hash of what it recorded
- 09c75a8e1cac512a197f069c8ec408f1a66ba5ef0df502fff4847868b0caf1b0
- OpenTimestamps
- Stamped on 2026-10-04. Waiting for a Bitcoin block.
Timestamps anyone can check
OpenTimestamps is a public timestamp service. It is not ours, and it is not our own chain. It takes the hash of a file, gathers it with many others, and writes one summary of them into Bitcoin. Once that is in a block, anyone can show the file existed by that block's time. Only the hash is sent, never the file.
We stamped the analysis plan and its tag before the study data was locked. Once a day we stamp the audit log's last receipt, if it has changed since the last stamp. A stamp on the last receipt covers every line before it too.
A stamp shows each line as it was on the day of the stamp, not the day it was written.
The analysis plan
Confirmed in Bitcoin block 968372, 2026-09-24.
proofs/analysis_plan.md.ots
Part 2's analysis plan
Confirmed in Bitcoin block 968618, 2026-09-26.
proofs/analysis_plan_v2.md.ots
The second wave's analysis plan
Confirmed in Bitcoin block 969233, 2026-09-30.
proofs/analysis_plan_v3.md.ots
The tag prereg-v1, which fixes the analysis plan in git
Confirmed in Bitcoin block 968372, 2026-09-24.
proofs/prereg-v1.tag.ots
The tag prereg-v2, which fixes part 2's analysis plan in git
Confirmed in Bitcoin block 968618, 2026-09-26.
proofs/prereg-v2.tag.ots
The tag prereg-v3, which fixes the second wave's analysis plan in git
Confirmed in Bitcoin block 969233, 2026-09-30.
proofs/prereg-v3.tag.ots
The audit log up to line 3
Confirmed in Bitcoin block 968372, 2026-09-24.
proofs/audit-head-2026-09-24.ots
The audit log up to line 4
Confirmed in Bitcoin block 968622, 2026-09-26.
proofs/audit-head-2026-09-26.ots
The audit log up to line 5
Confirmed in Bitcoin block 969160, 2026-09-29.
proofs/audit-head-2026-09-29.ots
The audit log up to line 7
Confirmed in Bitcoin block 969233, 2026-09-30.
proofs/audit-head-2026-09-30.ots
The audit log up to line 11
Waiting for a Bitcoin block. That takes a few hours after a stamp.
proofs/audit-head-2026-10-04.ots
Put the proof and its file in one folder. Then anyone can check the proof on their own computer with the OpenTimestamps client: ots verify, then the name of the proof.
Last asked at 2026-10-04T07:43:44Z.
Check it yourself
In a copy of the code, these commands run the same checks on your own computer.
uv run python scripts/verify_audit.py uv run ots verify proofs/prereg-v1.tag.ots uv run ots verify -f docs/analysis_plan.md proofs/analysis_plan.md.ots uv run python scripts/ots_status.py
To finish on its own, ots verify needs a Bitcoin node. Without one, it names the block to look up, and ots_status.py checks that block for you.