docseal.ink
Method and limits

What a Docseal record shows.

When you select a file, your browser reads and hashes its bytes using SHA-256. It sends the 64-character digest, not the document, to Docseal. Our server stores that digest, a random record ID and the UTC time it received the digest.

To check it later

Anyone with the record link can see the saved digest and server time. They select a file in their browser. It is hashed locally and compared with the saved digest. A match indicates the selected bytes have the same SHA-256 digest. Keep both the original file and the record link; Docseal cannot retrieve the file for you.

Check a receipt in this browser

Select a receipt you downloaded. This page fetches the published key and checks the signature on your device. Add the original file to compare its digest too. Neither file is uploaded.

Check a receipt without this service

Each record comes with a receipt that this service signs with its Ed25519 key. You can download it from the record page. The public key is published at /.well-known/docseal-receipt-key.json. Save a copy of that key next to your receipts. Then you can check a receipt without this service:

node scripts/verify-receipt.js docseal-<id>.json original-file.pdf --key docseal-receipt-key.json

To create records from a terminal, run node scripts/seal.js first.pdf second.pdf. Each file gets its own record and a receipt saved next to it.

To check a file against a record link from a terminal, run node scripts/check.js original-file.pdf https://docseal.ink/verify/<id>. It hashes the file on your machine and compares the digest with the record.

After several files, the create form can save every receipt in one docseal-receipts-<n>.json bundle. The same command and the receipt check on this page accept that bundle. They check every entry and look for the one whose digest matches your file.

The script ships in the Docseal source. A valid signature shows only that this service's key signed that id, digest and server time.

What it does not prove

A match is evidence the exact bytes matched this service's earlier record; not identity, consent, signing, notarization or a third-party timestamp.

Need a signing workflow?

agree.ink shows an engineering preview for preparing, routing and tracking agreements. It cannot yet send, sign or store legal documents.

Create a free record