Aere Proof

Verify a proof in your browser

AIP-23On this deviceNo request madeML-DSA
Updated 2026-10-18 Judge verify-proof.mjs, the reference verifier Mode offline

Paste or open an AIP-23 proof envelope. Its form, the integrity of its statement and its post-quantum signature are checked here, in your browser, by a build of the published reference verifier. The page sends nothing, and it says so with a number you can check.

This page verifies only when its script runs. Without it, use the reference verifier below with Node.

What this page checks, and what it does not

The verdict follows the reference verifier's rule: VALID when every level present passed, PARTIAL when nothing failed but a level the proof claims was not measured, INVALID when a level failed. A claim that was not checked is never VALID.

Nothing leaves this page

Once this page has loaded, a verification makes no request: not to Aere Network, not to anyone. The line under the verdict counts the requests this browser recorded during the check (resource timing); it reads 0. To see it yourself: open your browser's developer tools, choose the Network tab, clear it, and verify a proof. Or switch the device to airplane mode first: the verdict is the same. The envelope you paste stays in this tab; nothing is stored.

The same judge, with the chain, in Node

curl -O https://aere.network/tools/verify-proof.mjs -O https://aere.network/tools/verify-anchor.mjs -O https://aere.network/tools/mpt.mjs -O https://aere.network/tools/falcon512.mjs -O https://aere.network/tools/registry-v3.mjs -O https://aere.network/tools/package.json && npm install
node verify-proof.mjs proof.json              # form, integrity, signature, finality (post-quantum anchor + Merkle proof), witness
node verify-proof.mjs proof.json --offline    # exactly what this page does

What runs here

A browser build of verify-proof.mjs, the reference verifier served at /tools/verify-proof.mjs: the same functions, not a rewrite. What the browser lacks is supplied beside them: SHA-256 and ML-DSA in JavaScript (the @noble libraries the verifier already depends on) in place of Node's OpenSSL, and nothing that reaches the network. The source this page was built from has the SHA-256 926c97ffc3c9bf45e21b5949fbd72bd73d8e573e305a56a93e7fdfa7d26d9701; compare it with the file above.

What this page is not

It is not a notarization service and it does not anchor anything: to record a hash on chain 2800, see Post-Quantum Notarization. It does not read the chain, so it cannot tell you when a statement was notarized or whether an anchor covers it; the reference verifier with Node does. It judges the envelope you give it, as it is: a verdict here says what that file holds, not who made it or what it means.

Next up Aere Proof