Transparency log
Verify an approval
Paste an approval id to check it against Cosignet's public transparency log. Everything runs in your browser against public data — we recompute the log leaf, verify the Merkle inclusion proof, verify the approver's passkey signature over the exact payload, and verify the signed tree head. Nothing here trusts Cosignet's word.
Coming soon: a live counter of total verified approvals — the
same public tree_size published in the signed tree head,
surfaced here once the log carries meaningful volume. Until then you can read it straight from the
tree head yourself.
No id handy? Verify a live example approval →
How verification works
- Leaf hash — the published entry fields hash to the leaf in the log.
- Inclusion proof — the leaf is committed under the published Merkle root.
- Passkey signature — the WebAuthn assertion was signed by a specific enrolled credential, and its challenge binds the exact payload hash. Real-world identity and authority depend on the customer's enrollment records.
- Signed tree head — the root is signed (Ed25519) by the log key. The tree head is also anchored into Bitcoin via OpenTimestamps — a trust-minimized anchor that doesn't depend on trusting Cosignet.
- Public reveal (only for opted-in approvals) — if the approval was published with public reveal, the bundle also carries the raw action and payload (checked here against the signed payload hash) and a PBKDF2 hash of the account's designated verified email. You can type a candidate email to confirm it matches — note email is low-entropy, so this proves a known accountable-party address rather than the individual signer's identity or anonymity, and it's attested by our signed tree head, not by the passkey.
Prefer the command line? Reference verifiers
(Node + Python)
and the API are documented in the SDK repo; this page calls
/public/log/entries/<id>/verification.