Proof Receipt

BSV mainnetStandard proofAnchored on chain

Standard receipt — file never left your device. Your file was NOT uploaded. Only its SHA-256 hash, file size, and any label you typed were transmitted.

File SHA-256
139eb4599dace99757b1d7a441abc4981d629951aaa91f23089a38f8240ae17d
File size
1,920 bytes
Filename label
sample.png
Anchored at (UTC)
2026-05-02T02:04:16Z
Transaction
031e6b1e44a0edab62d1ea75f9a898a994e86f11c87be0779fa12cbec7bd4538
On-chain commitment
6e9091e901a76d463e7282383d91bb5ecbec447a (sha256 of canonical receipt doc, first 20 bytes)
What this receipt proves — and what it does not.
A valid receipt proves the file existed in this exact form at the time of the on-chain transaction. It does not prove:

Proofs anchored

Three orthogonal proofs about your file are committed in a single on-chain anchor. Use whichever the situation calls for.

Byte-exact
139eb4599dace99757b1d7a441abc4981d629951aaa91f23089a38f8240ae17d
SHA-256 of the file as uploaded. A single-byte change anywhere produces a different hash.
Content-canonical
2a61b3da3e704fd82f73248130c69068f3ec78a8dd31912a29923f24f08eaba9
Scheme: image pixel data (metadata stripped). Resilient to non-meaningful changes (resave, metadata churn, line-ending drift).
Per-section commitment
779e410d002ab5a5bf8870a8558fd8ae51c58333efd51c6de2f4dfab8a71445e
Scheme: per-tile · 2 leaves. Lets a holder later prove a single chunk was part of this file without revealing the rest.

Includes the bundle, a printable PDF receipt, and a verify guide. Keep alongside the original file.

Other download options
Bundle only (.mbnt)

Create another proof →

How to verify this receipt yourself (manual recipe)
In one sentence: re-fetch the transaction from any BSV block explorer, recompute the canonical receipt's hash, and check that your file's SHA-256 matches the one inside — if all three match, the receipt is intact and the original file is the one anchored. The verifier at /verify does this for you in your browser in one click.

For an audit trail or scripting, here are the manual steps anyone can run with jq + sha256sum:

  1. Re-fetch the on-chain transaction: https://whatsonchain.com/tx/031e6b1e44a0edab62d1ea75f9a898a994e86f11c87be0779fa12cbec7bd4538 — confirm an OP_RETURN output starting with the bytes MBNT.
  2. Decode the OP_RETURN payload: bytes 6–25 are the document_hash (sha256 of the canonical receipt doc, truncated to 20 bytes). It must match 6e9091e901a76d463e7282383d91bb5ecbec447a.
  3. Re-canonicalize the included canonical.json from the .mbnt bundle (jq -cS . canonical.json), sha256 it, take the first 40 hex chars — must equal 6e9091e901a76d463e7282383d91bb5ecbec447a.
  4. Sha256 the original file — must equal the File SHA-256 above. The bundle does not contain the bytes; you kept them.
What we kept: this bundle (downloadable above) and one access-log line for this request. What we did NOT keep: the original file — the bytes never reached us. The on-chain anchor is permanent.