Verify a Satsignal proof.
Add the original item and the proof bundle to verify three things: the proof is intact, the item matches, and the anchor exists on-chain. Everything runs in your browser — your files never leave your device.
Original file or item
Optional · recommendedWe fingerprint the file locally in your browser to compare it against the proof. Nothing is uploaded — the file is only used locally. Verifying a disclosure proof? Add the redacted copy you received here — we check its bytes against the disclosed view the disclosure commits to.
Optional, but recommended for full verification — the file is fingerprinted locally in your browser.
Proof bundle
RequiredAdd the .zip proof package or
.mbnt bundle. The bundle is located inside the zip.
(both are accepted — we’ll find the bundle inside the zip)
Other verification methods — transaction ID + canonical JSON
For verifiers who didn’t keep the bundle but kept the transaction id and the canonical proof JSON. If you have the proof package or the .mbnt, drop it above — these fields auto-fill.
What verifying actually checks
When you verify, we run three checks in your browser. No data leaves your device.
Proof intact
Confirms the proof bundle is valid, complete, and has not been tampered with.
Item matches
Verifies the fingerprint of your file matches the one committed in the proof.
Anchor exists
Checks that the BSV anchor transaction exists on-chain and is confirmed.
A privacy note on Standard proofs:
a Standard anchor is publicly resolvable by the file’s SHA-256.
Satsignal’s auth-free, CORS-open
/lookup_hash
endpoint — callable from any site without an account —
returns a Standard proof’s existence, anchor timestamp, and
txid for a given file hash, so anyone holding or guessing the exact
hash can confirm it was anchored. Sealed proofs are excluded from
that endpoint by design; choose
Sealed mode
when confirm-by-hash itself must stay private.
First time using this? Try a demo.
We load a real bundle and the matching item for you, then run every check end-to-end so you see what a fully-verified result looks like.
Prefer a CLI you can audit and run offline?
A standalone
satsignal verify CLI (with --spv /
--min-confirmations) is planned but not yet shipped.
In the meantime, three verify paths work today:
- the hosted verifier at
proof.satsignal.cloud/verify
— drag-drop the
.mbnt, account-free; - by hand — unzip the bundle and run
sha256sum bundle/canonical.json | cut -c1-40, compare todoc_hash_expected, then resolve the txid in any block explorer; python agent_anchor.py verify-handoff(the stdlib helper atscripts/agent_anchor.py).
Everything runs in your browser. Your files never leave your device.
Network behavior: files you add are read and fingerprinted locally and
never uploaded. The only network requests verification makes are to two
public block explorers — WhatsOnChain and Bitails — to read
the anchor transaction. This page carries its full verification code
inline: a saved copy re-runs every hash and structure check from a local
file: URL without contacting this site, even if this site is
gone. Two things still use the network by nature: the anchor lookup (the
explorers above) and PDF text recompute, which loads the PDF.js library
on demand. Served online, the page loads the same code from this site
only (the JSZip library is integrity-pinned with SRI).