Existence Anchor

Bitcoin timestamps / built on OpenTimestamps Protocol

Prove when it existed.

Anchor the SHA-256 fingerprint of any file in a Bitcoin block. Your file never leaves your browser, and the proof works without us.

  • Hashed in your browser
  • Anchored in Bitcoin
  • Checkable without us

Don’t trust. Verify.

Files get edited. When they existed shouldn’t be a matter of trust.

A record can be rewritten. A file can be replaced. The service you used can disappear.

A proof from Existence Anchor doesn’t depend on us. With your file and its .ots proof, anyone can check it against the Bitcoin blockchain.

This page in one minute, without sound.

How a stamp is made

From your file to a Bitcoin block.

Four steps, one chain of hashes anyone can follow. Your document never leaves your device.

Your browser computes the fingerprint.

Drop a file. Your browser computes its SHA-256 digest on your device and sends only that digest, plus a label if you type one. The file itself never reaches us.

Illustration. On Bitcoin a certificate is never instant: the timestamp servers decide when to anchor, and the block then needs 6 confirmations.

New stampExample
Filehello-world.txt
SHA-256, computed in your browser03ba204e50d126e4674c005e04d82e84c21366780af1f43bd54a37816b6ab340
Digest ready · nothing uploaded

The privacy boundary

Your file stays on your device.

We receive a digest, never the document. The timestamp servers receive even less.

Your browser
contract_final.pdf board-minutes-09.docx design_v12.fig
Computed locallySHA-256
Leaves your devicethe digest, and a label if you add one
Existence Anchor03ba204e 50d126e4
674c005e 04d82e84…

We add a random 16-byte nonce and keep the digest, so we can issue your certificate.

Sent onwardsa blinded value only
Timestamp servers · BitcoinSHA-256(digest ‖ nonce)

Gathered with other submissions into one Merkle root, committed in one Bitcoin transaction.

The file stays with you. The proof can be checked by anyone.

A timestamp alone does not show who wrote a document or who owns it.

What you get

One stamp. Four things to keep.

A receipt at once. A portable proof once the digest is anchored, and a certificate once it is anchored and your plan covers it, while we still store its files.

Your filecontract_final.pdfhashed in your browser
digest
Existence AnchorYour stampsubmitted to 4 timestamp servers
anchored
01Submission receiptPDF, at once
02CertificatePDF, once anchored, as your plan allows
03.ots proofcheckable without us
04Status linkpublic: state, digest, time

Receipts, certificates and proofs are private to your account. The public status link shows only a stamp’s state, its digest and when we received it.

What a certificate says

One sentence Bitcoin proves.

“The document with SHA-256 digest X existed no later than the time of Bitcoin block N (its timestamp T, ±~2 h miner tolerance), independently verifiable against the Bitcoin blockchain without trusting us.”

That sentence is all Bitcoin proves, and anyone can check it with the .ots file and a Bitcoin node, even if this service disappears. Who submitted the stamp and when we received it come from our own records: the certificate lists them apart, marked as stated by us.

What it does not say

  • Who wrote the document, or what it means.
  • That it did not exist earlier: only that it existed no later than the block.
  • An exact moment: a block’s timestamp is accurate to about ±2 hours.
Sample
Existence Anchor
PROOF OF EXISTENCEProof of Existence CertificateCryptographic timestamp anchored in Bitcoin with OpenTimestamps. It does not prove authorship, ownership or content authenticity.

WHAT BITCOIN PROVES – CHECKABLE BY ANYONE, WITHOUT TRUSTING US

The document with SHA-256 digest 03ba204e…6b6ab340 existed no later than the time of Bitcoin block 358391 (its timestamp 2015-05-28 15:41:18 UTC, ±~2 h miner tolerance), independently verifiable against the Bitcoin blockchain without trusting us.

Document hash (SHA-256)03ba204e50d126e4674c005e04d82e84
c21366780af1f43bd54a37816b6ab340
Timestamped at (Bitcoin block header time)2015-05-28 15:41:18 UTCthe block’s nTime: accurate to about ±2 hours
Blockheight 358391000000000000000003e892881a8cdcdc
117c06d444057c98b6f04a9ee75a2319
Merkle root, from the proof and in the block header8a1b66ecb7cbd07d8139a7e7d7f2c41a
ab1f5009b8364aaf61d03ad245e47e00

What we assert – stated by us, from our records. Bitcoin does not prove these.

Account[Your account]Issued by[Operator]

A sample in our layout, filled in with the hello-world proof that ships with the OpenTimestamps client, so every value on it can be recomputed. Not issued by us.

Where it helps

When a file date isn’t enough.

Anyone can change a file’s date. Nobody can move a stamp to an earlier Bitcoin block.

Ideas

Show when your idea already existed.

Stamp a design, a manuscript or lab notes before you share them.

concept_v1.pdf
Contracts

The version everyone agreed to.

Stamp the signed file. Later, anyone can check whether a copy put in front of them is that exact file.

agreement_signed.pdf
Research

Results before publication.

Record that a dataset or a result existed before the paper went out.

results_dataset_v7.csv
Creative work

Your work, before it goes out.

Photos, audio, source files: stamp them before you send them to a client or a platform.

shoot_2026-09-12.zip
Records

An export that can’t be backdated.

Stamp a ledger or a log export at the close of each period.

ledger_2026-09.csv
Software

The release you shipped.

Stamp release artifacts straight from CI with an API key.

release-4.2.0.tar.gz

For developers

Stamps from your own code.

Hash locally, send the 64-character digest with an API key, and fetch the proof once the stamp is anchored and the certificate once it is issued. Your files never leave your systems.

OpenAPI document
receivedsubmittedanchoredorfailed

That is a stamp’s status. Its certificate is issued once the stamp is anchored and your plan covers it, while we still store the stamp’s files. API access comes with the Pro plan; each member creates their own keys and can revoke them at any time.

POST /api/v1/stamps
curl https://existenceanchor.com/api/v1/stamps \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "digest": "03ba204e50d126e4674c005e04d82e84c21366780af1f43bd54a37816b6ab340",
    "label": "contract-49281"
  }'
201 Created · abridged
{
  "id": "Xq3v9LmT2aB7kPzR",
  "status": "received",
  "status_page": "/s/Xq3v9LmT2aB7kPzR"
}
GET /api/v1/stamps/{id}/ots
GET /api/v1/stamps/{id}/certificate

Check it without us

Trust you can recompute.

What a certificate states about Bitcoin can be checked with free, open tools. No account, and nothing from us.

Your file’s fingerprint must match the proof.

  1. Keep the .ots proof next to your file.
  2. Install the OpenTimestamps client.
  3. Run it next to your own Bitcoin node. It recomputes your file’s digest, follows the proof to a block header and names the block.
What this checks

That this exact file is committed in that Bitcoin block, and the block’s time. Not who wrote the file, and not that it didn’t exist earlier.

OpenTimestamps
TerminalExample
$ pip install opentimestamps-client
$ sha256sum hello-world.txt
03ba204e50d126e4674c005e04d82e84c21366780af1f43bd54a37816b6ab340  hello-world.txt
$ ots verify hello-world.txt.ots
Assuming target filename is 'hello-world.txt'
Success! Bitcoin block 358391 attests existence as of 2015-05-28 UTC

The stock OpenTimestamps client on its own hello-world example, run next to a Bitcoin Core node on a machine set to UTC. Nothing in it talks to us.

For the long term

A proof that stays in your hands.

Keep the file and its proof together. They don’t need your account, or ours.

Download everything

The receipt, the certificate PDF and the .ots proof. The certificate and the proof also come together as one .zip.

Works if we disappear

The .ots file is a standard OpenTimestamps proof. The stock client and a Bitcoin node check it, with or without this service.

How long we store it

We store a stamp’s .ots proof and its certificate for 30 days from the stamp and, with a subscription, while it is current and 30 days after. A .ots you downloaded once the stamp was anchored keeps working after that.

Plans

Start free.
Grow into a team.

Every plan anchors in Bitcoin and includes certificates. Each plan says how many stamps a month it covers, how long we store a stamp’s files, how many members it has and whether it includes API access.

Free

$0
no card needed
  • Up to 25 stamps a month (fair use)
  • Your .ots proof and certificate stored 30 days from each stamp
  • Certificates included
  • Just you
  • No API access
Start free

Personal

$9a month
billed through Stripe
  • Up to 1,000 stamps a month (fair use)
  • Your .ots proof and certificate stored while subscribed, and 30 days after
  • Certificates included
  • Up to 3 members
  • No API access

Available soon

Pro

$24a month
billed through Stripe
  • Up to 10,000 stamps a month (fair use)
  • Your .ots proof and certificate stored while subscribed, and 30 days after
  • Certificates included
  • Up to 25 members
  • API access

Available soon

A stamp beyond the monthly allowance is still anchored, and its .ots proof still verifies; only its certificate waits, and it is issued if the account’s plan comes to cover it while we still store the stamp’s files. A month is a calendar month in UTC.

The files we store for a stamp are its .ots proof and its certificate; we delete them after that time, together with the stamp’s label, and from then on no longer provide the stamp’s receipt. The rest of our record of the stamp stays, its digest included, and so does its public status page. Once a stamp is anchored the proof itself is permanent: a .ots downloaded then verifies without us. Subscribed means the subscription is active, in a trial, or retrying a failed payment.

Prices in US dollars (USD). Paid plans renew automatically each month or year until cancelled; we email a reminder before each renewal. The account’s admin can cancel at any time in Plan and billing, and the plan runs to the end of the period already paid for; a failed renewal payment is still retried, and if no retry succeeds, the plan ends after the last one. At checkout you ask for the service to start at once and so give up the 14-day right of withdrawal; payments are not refunded. Refunds and cancellation

TeamsTurn your account into an organisation and invite members by email. One admin; everyone shares the plan.
API keysOn Pro, every member can create keys and revoke them. A removed member’s keys stop working.
BillingPaid through Stripe. Change plan, card or cancel in the customer portal.

Existence Anchor

Stamp it now. Prove it later.