Bitcoin Proof of Existence
Create a private file fingerprint below. Then learn how a separate, verifiable Bitcoin timestamp can establish that the file existed before a block.
One letter. A different fingerprint.
See a real SHA-256 hash change. Your text and file stay in this browser — no upload, account or wallet.
Even a one-byte change produces a different fingerprint.
Loading the local hashing tool…
This is a fingerprint, not a timestamp. This tool does not submit anything to Bitcoin, create an .ots proof or verify a blockchain commitment. A hash does not prove when a file existed, who made it, or that its contents are true.
What exactly is private? What changes the hash?
We hash the exact file bytes, not its name or your device’s modification date. Text is encoded as UTF-8; spaces, line breaks and letter case matter. Renaming the same file leaves its fingerprint unchanged, while changing its bytes normally changes the fingerprint. No input or fingerprint is stored by this tool, and the experiment link contains none of them.
Hashing is not encryption. Someone who already has a candidate file or a short, guessable message can hash their guess and compare it with a fingerprint you publish. Keep sensitive fingerprints private. Do not use this demonstration for passwords, wallet keys or recovery phrases.
Files are limited to 25 MiB because the browser’s digest operation needs the complete input in memory. Calculation runs in a separate worker to keep the interface responsive. Web Crypto implementation details ↗
Opens a separate service. Its stamp/verify process is separate from this private local demonstration. Keep the original file and the timestamp proof for later verification.
The file stays private
A hashing function converts a file into a short fingerprint. A timestamping tool can commit that fingerprint into a larger Merkle structure anchored to Bitcoin. The original document does not need to be uploaded to the blockchain.
What the proof can establish
Given the original file and a valid proof, a verifier can independently check that the matching hash was committed before the Bitcoin block containing the anchor. This supports evidence of existence, not proof that a claim inside the document is true.
Why batching matters
Many hashes can be combined into one Merkle root. A single Bitcoin commitment can therefore anchor a large number of timestamp proofs without one on-chain transaction per document.
Use a reviewed implementation
OpenTimestamps is one public protocol for this pattern. Back up both the original file and its proof, understand the verification model, and obtain legal advice before relying on a timestamp in a formal dispute.