Public verifier · runs in your browser
Verify any Project Ledger receipt.
Paste a signed receipt and the public key it was signed with. The verifier runs entirely in your browser using the published Receipts Protocol v0.1 — no server call, no login, no Project Ledger dependency at runtime. This is what "openly verifiable" actually means.
🔒
Your receipt never leaves this tab. All cryptographic work happens locally via audited Ed25519 + SHA-256 primitives.
Input
Samples:
Verification recipe — the same one the SDK uses
- Take the
receiptobject and setintegrity.receipt_hash = "". - Canonicalize per RFC 8785 (sorted keys by UTF-16 code units, no whitespace, RFC 8259 escapes).
- Compute SHA-256 hex of the canonical bytes. This is the
expected_receipt_hash. - Compare to the original
integrity.receipt_hash. They must match. - Canonicalize the full receipt (with the populated
receipt_hash) — these are the bytes that were signed. - Ed25519-verify
signatures[0].sigagainst those bytes and the supplied 32-byte public key. Must verify. - If a previous receipt is supplied, check
integrity.previous_receipt_hashequals the previous receipt'sintegrity.receipt_hash.