Manav Manav.id
← All demos
AUDIT · 10 of 10

A receipt anyone can verify offline against Manav's public key.

A receipt is shared with the receiving bank, the counterparty's counsel, or a regulator. They verify it against Manav's published Ed25519 key, no Manav account, no live connection, no contract. The math holds against the published key forever, even if Manav goes offline, gets breached, or shuts down.

Privacy posture for this scene
Manav is not in the verification path.
  • Verifier fetches Manav's public key once from /.well-known/manav-keys and caches it.
  • Verification is a single Ed25519 check against canonical JSON, no network required after the cache.
  • A Manav outage breaks issuance, never verification. A Manav exit does not orphan its receipts.

Verified human signature

Receipt mnav_proof_a83f9c2b

What this receipt attests

Action typeapprove_wire_transfer
TitleApprove $42,000 vendor wire
Actor (per-context key)pk_acme_4f81bc20...
Signed at2026-05-19T18:22:10Z
Bound to payloadsha256:a83f9c2b...
IssuerAcme AI Labs
Manav signatureed25519:5c8a...

Verify it yourself

Fetch Manav's published Ed25519 key once. Canonicalise this receipt with manavSig removed. Check the signature. No callback to Manav required.

curl "https://manav.id/.well-known/manav-keys" > manav-jwks.json

node -e "
  const { verifyReceipt } = require('@manav/verify');
  const r = require('./receipt.json');
  const j = require('./manav-jwks.json');
  verifyReceipt(r, j).then(console.log);
  // { ok: true, actor: 'pk_acme_4f81...',
  //   action: 'approve_wire_transfer' }
"

This page is the canonical proof URL. Share it with the bank, the auditor, the counterparty, or future-you. The math holds against the published key forever, even if Manav goes offline, gets breached, or shuts down.

Want to ship this in your own app?

Three lines of JavaScript. Demo key mnav_test_demo works on localhost.

Get the SDK →