This page recomputes the Merkle root, re-verifies every Ed25519 signature, and self-certifies the agent DID — entirely inside your browser. Nothing is uploaded.
version: 2.bundle.merkle_root.did:mp:<32-hex> hashes back to its public key (SHA-256 of SPKI-DER, first 16 bytes).canonicalize({meta, merkle_root, built_at}).
All cryptography runs in crypto.subtle (WebCrypto). Ed25519 is supported in Chrome 137+, Firefox 130+, and Safari 17+. The verifier is ~10 KB of vanilla JS — view source on verify.js to audit.
The shipped article12-demo.json is signed with a public demo Ed25519 key. The private key is derived from a fixed seed in scripts/generate-article12-demo.mjs — anyone can re-sign their own forged bundle with it. This is intentional. Real customer bundles are signed with the customer's own wallet (see @mnemopay/sdk → Wallet.create()). The demo proves the verification mechanics, not the trust anchor.