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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.

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.