Verify a Codex Paper

Check that a Codex paper is genuinely from Nullproof Studio and hasn't been altered since it was signed. The verifier fetches the paper, its detached signature, and the signer's did:web document, then verifies the Ed25519 signature end to end — all in your browser.

Accepts a full URL, a path like /codex/paper-3-field-report, or just a slug like paper-3-field-report.
Try a sample →

What this page proves — and what it doesn't

When the check succeeds, it proves that the raw source of the paper we fetched is byte-for-byte identical to the bytes that were signed by the holder of the Ed25519 private key published under the signer's did:web document at the time of your visit. It does not, by itself, prove who that signer is in the real world, nor that the key hasn't been compromised.

Because this page runs on the same origin that publishes the paper, the signature, and the DID document, a full compromise of that origin would let an attacker replace all three and still pass this check. The real weight of the signature comes from running the same verification against an independently trusted copy of the public key — for example, a key you pinned the first time you read a Nullproof paper, or one vouched for by a third party you already trust.

The verification logic is small on purpose and can be read end to end. It uses @noble/ed25519 for the signature primitive and @scure/base for the multibase public-key decode — both auditable, dependency-free JavaScript libraries. If you want to confirm that what runs in your browser is what we say it does, read the source of this page on GitHub — every check performed here is in a single file.