Skip to content

Verify a Receipt

Compare your file's hash to the receipt:

bash
$ sha256sum yourfile

If the output matches hash.value in receipt.json, the file is authentic.

Every .veristamp.zip bundle includes a verify.html file.

  1. Double-click verify.html to open it in your browser.
  2. Drag and drop your file, receipt.json, and keyring.json into the page.
  3. The browser uses native cryptography to instantly verify the SHA-256 file integrity and Ed25519 signature entirely offline.

If you are online, it will also fetch the public epoch to verify Merkle inclusion and TSA anchors.

Open stamp.veristamp.in/verify, drag in the file and receipt.json. Everything runs locally in the browser — the file is never uploaded.

The web app checks:

  1. File integrity — SHA-256 matches the receipt
  2. Signature — Ed25519 signature is valid against the keyring
  3. Public ledger — Receipt appears in the transparency log (optional, requires network)
  4. External anchoring — Which TSAs anchored the epoch (shown after ledger check)
LayerWhat it provesNeeds network?
File hashThe file hasn't changedNo
Receipt signatureVeristamp issued this timestampNo
Ledger inclusionReceipt is in the public Merkle logYes
TSA anchoringThe epoch root was anchored by external authoritiesYes (included in epoch data)

If you need to cryptographically audit the public ledger using your own independent tools (like OpenSSL), you can use the bundled verify.py script.

  1. Via Web: In the verification UI (online or offline), click Download .tsr next to any TSA anchor to inspect the raw RFC 3161 Timestamp Responses.
  2. Via Script: The bundled verify.py can be used to independently rebuild the Merkle tree from the transparency log and verify the signature using OpenSSL:
bash
$ python verify.py receipt.json yourfile --verify-sig --show-anchors

The script will fetch the public epoch, verify the inclusion of your file, rebuild the Merkle tree, and provide the exact openssl ts -verify commands needed to validate the .tsr files against the root authorities.

For details on how the transparency log works, see the Transparency Log guide.