
How to Set Up Document Timestamping with Simple Proof and OpenTimestamps
Learn to anchor documents to Bitcoin's blockchain using Simple Proof and OpenTimestamps. Step-by-step guide from upload to verification.
In November 2025, El Salvador became one of the first governments to timestamp official documents on the Bitcoin blockchain, partnering with Simple Proof to create tamper-proof records of government files. The technology they used isn't some proprietary system locked behind enterprise contracts. It's built on OpenTimestamps, a free and open-source protocol that anyone can use.
Whether you're an election official securing ballot certifications, a legal professional preserving evidence, or simply someone who wants cryptographic proof that a document existed at a specific point in time, this guide walks you through the entire process.
What Document Timestamping Actually Proves
Before diving into setup, it's worth understanding what blockchain timestamping does and doesn't do.
When you timestamp a document, you're not uploading the file itself to Bitcoin's blockchain. Instead, the system computes a SHA-256 hash of your file locally (a unique fingerprint that reveals nothing about the contents) and anchors that hash to a Bitcoin block. This creates mathematical proof that your document existed before that block was mined.
The limitation: Bitcoin blocks are mined roughly every 10 minutes, and the OpenTimestamps protocol batches multiple timestamps together. Your proof demonstrates existence before a specific block time, not down to the exact second. For most legal and archival purposes, this precision is more than sufficient. If you need millisecond accuracy, you'll want a different solution.
The strength: Unlike certificates from traditional timestamping authorities, anyone can verify a Bitcoin-anchored timestamp independently. No trust in a third party required. The proof remains valid as long as the Bitcoin blockchain exists.
Method 1: Web-Based Timestamping
The fastest way to get started requires no software installation.
Simple Proof offers a web interface built on OpenTimestamps that handles the entire process through your browser. Government institutions and organizations use their platform for mission-critical documents like election results and official registries, but the underlying technology works identically for individual users.
Here's the process:
- Upload or drag your file to the timestamping interface. The hash is computed locally in your browser, so your actual document never leaves your computer.
- Download the proof file (a .ots file). This happens within seconds, though the proof isn't yet complete.
- Wait for Bitcoin confirmation. The timestamp needs to be included in a Bitcoin block and receive sufficient confirmations. This typically takes a few hours.
- Upgrade your proof. Return to the tool and upgrade your .ots file to include the full cryptographic path to the Bitcoin blockchain.
The upgraded .ots file is your permanent proof. Store it alongside the original document.
Method 2: Command-Line Setup
For those who prefer working in a terminal, or need to timestamp documents programmatically, the OpenTimestamps client offers more control.
Installation
The client is a Python package. Install it with:
```
pip3 install opentimestamps-client
```
This works on Linux, macOS, and Windows (with Python installed).
Stamping a Document
Navigate to your file's directory and run:
```
ots stamp my-document.pdf
```
This creates `my-document.pdf.ots`, your initial timestamp receipt. The client submits your document's hash to OpenTimestamps calendar servers, which aggregate multiple timestamps and anchor them to Bitcoin.
Upgrading the Proof
After the timestamp has been confirmed on the blockchain (wait at least a few hours, or check the status), run:
```
ots upgrade my-document.pdf.ots
```
This updates your .ots file with the complete proof path from your document's hash all the way to a Bitcoin block header.
Verifying a Timestamp
To verify any timestamped document:
```
ots verify my-document.pdf.ots
```
The client will confirm the Bitcoin block and time when the document's existence was proven. This verification can be performed by anyone with the original file and the .ots proof, using any OpenTimestamps-compatible tool.
Rolling Timestamps for Continuous Data
A 2026 development worth noting: Simple Proof introduced rolling timestamps that can continuously anchor streaming data as it's generated. This matters for video evidence, audit logs, or any scenario where you need ongoing proof that data hasn't been modified.
Rather than timestamping a final file, rolling timestamps create a chain of proofs throughout the data's creation. For organizations handling surveillance footage, transaction logs, or other continuous records, this addresses the gap between when data is created and when it's formally archived.
Storing and Managing Your Proofs
A timestamp is only useful if you can find it later. Some practical advice:
Keep proof files with originals. Store the .ots file in the same location as the document it proves. If you're timestamping `contract-2026.pdf`, keep `contract-2026.pdf.ots` right beside it.
Back up to multiple locations. The .ots file is tiny (usually under 1KB), so there's no reason not to keep copies in cloud storage, external drives, and anywhere else you keep important files.
Don't modify the original. Even changing a single bit in your document will produce a different hash, breaking the connection to your timestamp. If you need to make edits, timestamp the new version separately.
Document your timestamps. For organizations managing many timestamped files, maintain a registry that tracks which documents have been stamped, when, and where the proof files are stored.
Understanding the Tradeoffs
Blockchain timestamping isn't the right solution for every situation.
If you need RFC 3161 compliant timestamps for specific regulatory requirements, services like FreeTSA.org offer traditional PKI-based proofs that some compliance frameworks explicitly recognize. These rely on trusted timestamping authorities rather than blockchain verification.
If you need timestamps on multiple blockchains for additional redundancy, some services anchor to Ethereum or other networks alongside Bitcoin. This is more about institutional risk management than technical necessity.
For most document integrity needs, though, Bitcoin-anchored timestamps through OpenTimestamps offer a compelling combination: free to create, independently verifiable, and backed by the most secure blockchain in existence.
Moving Forward
Once you've timestamped your first document, you have cryptographic proof that will remain verifiable for as long as Bitcoin's blockchain exists. No subscription fees, no vendor lock-in, no reliance on any company staying in business.
For individuals, that might mean timestamping creative work, legal agreements, or personal records. For institutions, Simple Proof's platform scales this approach to government-grade document verification with the same underlying guarantees.
The setup takes minutes. The proof lasts indefinitely. And unlike a notary's stamp or a certificate authority's signature, anyone can verify it independently, forever.