An .ots file is a Bitcoin-anchored proof that a document existed before a given date. Checking one takes 30 seconds and costs nothing. Verify yours ↓
2026 Blockchain OpenTimestamps

How to verify an OpenTimestamps (.ots) file

To verify an OpenTimestamps (.ots) file, drop the proof and the original document at opentimestamps.org. A result naming Bitcoin block 925847 proves the file existed before that block was mined and has not changed since. It takes 30 seconds and costs nothing. As of 2026, ProofSnap evidence packages can be verified in a single step with the free Trust Verifier.

1Drop the .ots proof 2Drop the original file 3Read the Bitcoin block

No account, no install, nothing uploaded. Verification runs locally in your browser and works for anyone: you, your lawyer, the court and the opposing side.

30 seconds · 3 free methods · Verifiable by anyone, forever

Illustrative example. A court, an expert or the opposing side can check the block number and the block time independently.

By Radim Motycka, Founder and Lead Engineer, ProofSnap Published , updated 6 min read
30 sec
to verify a confirmed proof
$0
cost of every method
1-2 KB
typical size of an .ots file
17 years
of unbroken Bitcoin history
Nothing is uploaded, verification is local Open protocol, open verification Disig a.s., QTSP on the EU Trusted List Bitcoin OpenTimestamps anchor

A ProofSnap evidence package can be verified by anyone, for free, in the public Trust Verifier.

Quick answer

How do I verify an OpenTimestamps (.ots) file?

Go to opentimestamps.org, drop the .ots file, then drop the original document. If you see a line such as Bitcoin block 925847 attests existence as of 2025-11-30, the proof is valid: the document existed on or before that date and has not been altered since. Free, instant, and nothing leaves your computer. For a ProofSnap evidence ZIP, use the Trust Verifier instead, and everything is checked in one step.

What it proves: the file existed in that exact state no later than the block time, and has not changed since. What it does not prove: that the content is true, or who created it. ProofSnap is an evidence tool, not legal advice.

What is an .ots file, and how do you open it?

An .ots file is a digital timestamp receipt created by the OpenTimestamps protocol. It works like a notary stamp, proving that a specific document existed before a certain date, except that the witness is the Bitcoin blockchain rather than a person. The file is tiny, free to create, and anyone can check it independently.

You do not need special software to open it, and you do not need to understand Bitcoin or cryptography. The .ots file is not meant to be read by a human: it is fed to a verifier together with the file it belongs to. Follow the online method below and you are done in half a minute.

Got a ZIP with an .ots inside? If you received a ProofSnap evidence package (a ZIP with the screenshot, HTML, metadata and the proof), skip to verifying the whole package. It checks the timestamp, the hashes and the signature together, with no need to extract anything. If somebody sent you a plain screenshot instead, read why a regular screenshot fails in court before you rely on it.

Method 1, the easy one

Verify an OpenTimestamps file online, in 30 seconds

Two files, one page, nothing to install and no account. This is the method to use unless you are a developer or you hold a full ProofSnap evidence package.

1

Open the verifier

Go to opentimestamps.org or to dgi.io/ots. Both are free and both do the same job.

2

Drop both files

First the .ots proof, then the original document that was timestamped. From a ProofSnap package, extract the ZIP and use manifest.json.ots and manifest.json.

3

Read the result

A block number and a date mean the proof is valid. Anyone can repeat this check, at any time, without asking you or ProofSnap for anything.

What a successful result looks like

Your document existed on or before that date and has not been modified since. The attestation comes from the Bitcoin blockchain, a global network of thousands of independent computers. No company, no server and no person is trusted in the process.

The block number is the part you can check yourself. Bitcoin block 925847, used as the example throughout this guide, was mined at 10:46 UTC on 30 November 2025, and any block explorer will confirm that time. A timestamp that names a block is therefore falsifiable, which is exactly what makes it evidence rather than an assertion.

Privacy: everything runs in your browser. No files are uploaded to any server, so a confidential document stays on your computer while you verify it.

# result

Success! Bitcoin block 925847

attests existence as of 2025-11-30

Method 2, for a whole evidence package

Verify a ProofSnap evidence package in one step

A timestamp on its own answers only one question. An evidence package answers all of them at once: what the content was, who sealed it, and when. The Trust Verifier checks all of it.

A ProofSnap evidence package holds 11 to 15 files depending on the plan: 11 on Essential, 12 on Professional, 15 on Enterprise and Company. The Trust Verifier re-checks every one of them in the browser, including the SHA-256 hash of each file, the RSA-signed manifest, the OpenTimestamps proof, the eIDAS qualified timestamp where present, and the chain of custody recorded in line with ISO/IEC 27037.

  1. 1Open getproofsnap.com/verify.
  2. 2Drop in the evidence ZIP exactly as you received it, with nothing extracted or renamed.
  3. 3Read the report. Every check is listed separately, so a failure tells you which part of the package is at fault.

What gets checked

  • SHA-256 hash of every file, recomputed and compared to the manifest (integrity)
  • RSA signature over the manifest (authenticity)
  • OpenTimestamps proof against the Bitcoin blockchain (time)
  • eIDAS qualified timestamp with offline long-term validation, when present
  • Chain of custody in line with ISO/IEC 27037

Fully client-side. No data leaves the browser, no account is needed and it costs nothing. Lawyers, judges and opposing counsel can verify the evidence for themselves without installing anything.

Method 3, for developers

Command-line verification with ots verify

The strongest form of the check, because you can point it at your own Bitcoin node and trust nothing else. Also the only practical option when you have hundreds of files to verify at once.

# install

$ pip install opentimestamps-client

# verify

$ ots verify manifest.json.ots

Success! Bitcoin block 925847 attests existence as of 2025-11-30

# verify against your own node, maximum security

$ ots --bitcoin-node http://localhost:8332 verify manifest.json.ots

# bulk verify, for investigators with 200+ packages

$ for f in evidence_*/manifest.json.ots; do echo "--- $f ---"; ots verify "$f"; done

Requires Python 3.x. For fully trustless verification, with no block explorer in the loop, point the client at your own Bitcoin Core node; a pruned node is enough, since the check only needs the block headers rather than the full chain. A lighter alternative is fiatjaf/ots, a Go client that needs no Bitcoin node at all.

OpenTimestamps pending: how long does confirmation take?

A pending timestamp means the hash has been submitted to the calendar servers but is not yet anchored in a Bitcoin block. This is normal and it usually resolves within a few hours. Nothing is lost in the meantime: the proof is simply not final yet.

  • 1Wait a few hours, then re-upload the .ots file to opentimestamps.org. The page attempts to upgrade the proof for you.
  • 2On the command line, run ots upgrade yourfile.ots to download the completed Bitcoin path and save it into the file.

Once it is confirmed, the proof is permanent. A mined Bitcoin block cannot be altered once it exists, so the upgraded .ots file will still verify decades from now, with or without the calendar servers.

What does the verification result actually mean?

When the verifier prints Bitcoin block 925847 attests existence as of 2025-11-30, anyone can check four separate claims.

The document existed on or before that date

Its hash was mathematically bound to a Bitcoin block mined at that time. Backdating would require rewriting the blockchain.

The document has not been changed

A single altered character produces a completely different hash, and verification fails. There is no partial pass.

Nobody can fake it

Thousands of independent computers would have to be compromised at the same time. That is computationally out of reach.

Anyone can verify it independently

It requires no trust in a company or a person, only in the Bitcoin blockchain, which is why the opposing side can run the same check.

The limit, stated plainly: the timestamp proves the document existed at that date and has not changed since. It does not prove that the content is true, and it says nothing about who created it. Those are separate questions, answered by the rest of the evidence package and by the witness who produced it.

How OpenTimestamps works, in five steps

You do not need this to verify a file, but it is the part an expert or opposing counsel will ask about.

1

Hash

A SHA-256 hash, the unique fingerprint of your document, is computed locally.

2

Aggregate

The hash goes to the calendar servers, which combine many hashes into one Merkle tree.

3

Anchor

The tree root is written into a Bitcoin transaction (OP_RETURN) and mined into a block.

4

Proof

The .ots file records the path from your hash up to that block header.

5

Verify

Anyone can walk the path and compare it against the blockchain. A match means the proof holds.

Why Bitcoin? It is the most expensive network in the world to rewrite. The estimated network hash rate stood at roughly 900 EH/s in August 2026 (CoinWarz and minerstat network dashboards), after 17 years of unbroken operation since the genesis block on January 3, 2009. Undoing a confirmed block would mean out-mining that entire network, which is why a block time works as a fixed point.

One practical consequence for archiving: verification needs only the 80-byte Bitcoin block headers, not the full blockchain. A proof you file today stays checkable on a laptop decades from now, even if no calendar server and no company is still in business.

OpenTimestamps compared with a qualified eIDAS timestamp

They answer the same question with different guarantees. In a serious matter, you want both: one is decentralized and permanent; the other carries a legal presumption in the EU.

Aspect OpenTimestamps (Bitcoin) Qualified eIDAS timestamp
CostFreePaid, issued by an accredited provider
Trust modelDecentralized, the Bitcoin networkCentralized, an EU trust service provider such as Disig
EU legal presumptionAdmissible, no automatic presumptionPresumption of accuracy under Article 41(2)
VerificationAnyone, anywhere, against the blockchainRequires an EU Trusted List check
In ProofSnapAll plans except Essential, or on Essential with a paid creditEnterprise and Company, or with eIDAS credits

Best practice: use both. OpenTimestamps for decentralized permanence, eIDAS for the EU legal presumption.

For OSINT investigators: where the .ots file fits

An investigator documents a disinformation network on Telegram: 47 channels, more than 200 posts. Three weeks later, every channel is gone. The defense asks how anyone knows the captures were not fabricated after deletion. The .ots file answers exactly that, and the court, the defense and any expert can check it themselves.

A timestamp alone is not enough

Courts test five things, and each one needs its own artifact in the package:

  • Content integrity: manifest.json with the SHA-256 hashes
  • Authenticity: manifest.sig, the RSA signature
  • Temporal fixation: manifest.json.ots, the Bitcoin proof
  • Chain of custody: chain_of_custody.json, in line with ISO/IEC 27037
  • Source content: screenshot, HTML and metadata

Workflow that survives cross-examination

  1. 1Capture immediately. Content can disappear within minutes of being noticed.
  2. 2Verify each capture. Confirm the .ots file is present and note whether it is pending.
  3. 3Store securely. Use encrypted storage and one naming convention, for example YYYY-MM-DD_platform_target.zip.
  4. 4Present. Hand over the ZIPs. Recipients verify them in the free Trust Verifier, with nothing to install.
Feature ProofSnap Hunchly Wayback Machine
Blockchain timestampYesNoNo
Digital signatureRSA signed manifestNoNo
Chain of custody (ISO/IEC 27037)YesNoNo
Independent verificationTrust Verifier, freeRequires HunchlyPublic archive
eIDAS qualified timestampEnterprise and CompanyNoNo
PriceFrom $8.99 per monthFrom $129 per yearFree

Hunchly pricing checked against the vendor's public page in August 2026. The two tools solve different halves of the problem: Hunchly logs an investigation as you browse; ProofSnap seals individual pages so a third party can verify them later. The full Hunchly and ProofSnap comparison goes through the workflow differences case by case.

Privacy and GDPR

  • ProofSnap runs locally in your browser. Page content, screenshots and metadata are never sent to ProofSnap servers. Only the SHA-256 hash, never your content, reaches the OpenTimestamps calendar servers.
  • The Trust Verifier is fully client-side, so nothing leaves the verifier's browser either.
  • The GDPR basis for OSINT work is usually Article 6(1)(f) (legitimate interest) or Article 9(2)(f) (legal claims). Consult your data protection officer.

Working a real case rather than a side project? See evidence for investigators and OSINT, or have us do the capture for you with the web page capture service.

Summary

  • An .ots file is a blockchain timestamp receipt. It proves a document existed before a given date, it is free to create and anyone can verify it.
  • Easiest check: drag and drop at opentimestamps.org. For a ProofSnap ZIP use the Trust Verifier.
  • Pending is normal. Wait a few hours, then re-upload the file or run ots upgrade.
  • Admissible, not automatically presumed accurate. The eIDAS presumption belongs to qualified services, and US self-authentication under Rules 902(13) and 902(14) still needs a signed declaration, so pair the Bitcoin anchor with a qualified timestamp and a proper evidence package.

Where the proof comes from

This is what ProofSnap looks like

The .ots files this page shows you how to verify are produced by a Chrome side panel. One button captures the page; the timestamp, the hashes and the chain of custody are then built around it automatically.

ProofSnap Chrome extension side panel: Capture page snapshot button, evidence language selector, toggles for visible area only, capture video and EU qualified timestamp (eIDAS), plus entries for the Trust Verifier and the File Certifier
  • Capture page snapshot

    One click captures the full page (screenshot, HTML, DOM text, DNS, WHOIS, TLS and the HTTP response headers), then hashes every file and signs the manifest.

  • Include EU qualified timestamp (eIDAS)

    The toggle adds a qualified timestamp from Disig a.s. on top of the Bitcoin anchor, with the remaining credits shown next to it.

  • Evidence language

    The evidence PDF can be exported in a different language than the interface, so a filing goes out in the language of the court.

  • Trust Verifier and File Certifier

    The same verification described above is built into the panel, and the File Certifier seals files you already have without capturing a page at all.

Each capture also produces a Provenance Certificate that runs 8 integrity checks on the screenshot, including C2PA Content Credentials, EXIF analysis and a perceptual hash. An image that was generated or edited before it reached the page is flagged rather than quietly certified.

Screenshot of the current version. Whitelabel branding, shown at the top, puts a law firm's logo and colors on the evidence PDF and is available on Enterprise and Company plans. Files you already hold, rather than a live page, go through the self-serve File Certification instead.

Create blockchain-timestamped evidence in one click

ProofSnap captures any web page with a SHA-256 hash of every file, an RSA-signed manifest, a Bitcoin OpenTimestamps anchor and a chain of custody in line with ISO/IEC 27037. Every package carries the .ots file that anyone, including the other side, can verify with the steps on this page.

Plans from $8.99 per month. The 7-day trial requires a credit card; the one-time SnapPack at $4.99 is the alternative without a subscription. All evidence stays on your computer.

See exactly what a court receives

Download a real evidence package, the same ZIP that gets filed as proof, and run it through the Trust Verifier yourself. Or send any URL to support@getproofsnap.com and we will capture it for you, free.

Download the sample package

Frequently asked questions

The questions people actually ask when an .ots file lands in their inbox.

Disclaimer: this article is for information only. OpenTimestamps is an open-source protocol maintained by its community, and ProofSnap is not affiliated with the project. The legal weight of blockchain timestamps varies by jurisdiction, so consult a licensed attorney about your own situation.

Verify your evidence, free