Draft ยท v0
receipts/v0
A receipt is a BSV transaction that witnesses a web document by its fingerprint. The document stays on the web. The ledger holds only the fingerprint and where to find the document.
Format
One output of the transaction is a data-carrier script with five pushes, all plain text:
OP_FALSE OP_RETURN
"https://ryanwold.net/receipts/v0"
"sha256"
<64 lowercase hex characters>
<URL of the exact version>
<media type, e.g. "text/vcard">
| Push | Meaning |
|---|---|
| 1 | This page's URL. The receipt explains itself. |
| 2 | The digest algorithm. |
| 3 | The digest of the document's exact bytes, as hex text. It's text, not raw bytes, so it reads in any block explorer. |
| 4 |
A URL for that exact version, not a URL whose content changes.
The server also sends an RFC 9530 Repr-Digest header.
|
| 5 | The document's media type. |
Checking a receipt
- Fetch the document at push 4, or use a copy you already hold.
- Compute its SHA-256 and compare with push 3.
- The tx's block time is the latest moment the document could have existed. Mempool receipts are witnessed but not yet timestamped by a block.
Principles
- Commitments on the ledger, contents on the web.
- Readable by people, not only by software.
- Checkable without trusting the issuer, the explorer, or this page.
- No wallet needed to read or check.
- Nothing personal on-chain. Deleting a document leaves a fingerprint that points to nothing.
Not yet
v0 proves existence and integrity, not authorship.
A later version may add a signature from the key published in the card's vCard KEY property.