verifyum
Prove that a file existed, unchanged, at a point in time. The file never leaves your machine: only a domain-separated commitment is sent.
Four independent records, none of them ours. Every proof is folded into an hourly Merkle checkpoint, and each checkpoint is witnessed by
- OpenTimestamps into Bitcoin, whose durability is a property of the protocol: every full node holds every block;
- a qualified electronic timestamp under eIDAS Article 41(2), issued by Sectigo (Europe) SL, whose qualified service is granted on Spain's EU Trusted List, so the timestamp carries a legal presumption of accuracy across the Union;
- Sigsum, cosigned by witnesses run by Glasklar, Mullvad and Tillitis;
- Certificate Transparency, one certificate per daily checkpoint whose hostname encodes the checkpoint root.
Four further records are the operator's own and are labelled as such, never counted as independent. A Solana Mainnet memo carries the commitment and gives finality in seconds; it is the fast confirmation, not the durable one.
The eIDAS presumption covers the checkpoint root, not the contents of your file. All of it is spelled out at https://verifyum.com/witness
pip install verifyum
verifyum stamp contract.pdf
verifyum verify contract.pdf
stamp writes contract.pdf.verifyum.json beside the file. That receipt
holds the nonce, which is the only thing tying your file to its public
proof, and which Verifyum never has. Losing it loses the link for good.
Treat it like a key. The file is created with mode 0600, which POSIX honours and Windows ignores, so writing it does not make it private: do not commit it and do not sync it anywhere you would not put a credential.
verify recomputes the commitment from the bytes and the receipt and checks
it against the public record. verifyum witness contract.pdf additionally
walks the Merkle path to the checkpoint and checks the service signature.
Exit codes: 0 all good, 1 a check failed, 2 usage or file error, 3 the service was unavailable, which is worth retrying.
It also works as a library:
from verifyum import anchor_file, verify, verify_witness
Standard library only, Python 3.10 or later. The protocol, the witness layer and independent verifiers in six languages are at https://github.com/aisenseapi/verifyum-verify
It proves the bytes existed and have not changed. It does not prove authorship, ownership, or that anything in the file is true.
MIT.
Release files for verifyum 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| verifyum-1.4.0.tar.gz | 19.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| verifyum-1.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.6 kB
Release files / verifyum-1.4.0.tar.gz
| Download URL | verifyum-1.4.0.tar.gz |
|---|---|
| Size | 19.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a683824894415e71bc86529b17ec5fa647f7f9c7f1b28cf0be5cec2021b8fe8f
|
|
BLAKE2b-256 checksum How to use checksums |
965d8de0080324d1e2579d8ffc686c8e7f0d8603659a1bae3cf67f8dcfcbfb2c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / verifyum-1.4.0-py3-none-any.whl
| Download URL | verifyum-1.4.0-py3-none-any.whl |
|---|---|
| Size | 19.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1ae4807f9d0dd7e5683aeef0f3fc5d26815c83e12e11389420a16a79bd985de9
|
|
BLAKE2b-256 checksum How to use checksums |
550f6f06961948c37e489efa76ac8687729bc962c57082d6c14bccb52ae4e2dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|