Skip to content
File timestamping

File time-stamping

Prove your file existed. Without ever sharing it.

VerifBox dates any file in seconds, for free. Only its fingerprint, computed in your browser, is signed and anchored in Bitcoin: the file itself stays on your device.

  • Dual signature, one post-quantum
  • Two anchors in Bitcoin
  • RFC 3161 time-stamp token

Read the specificationView on GitHub

Timestamp a file

Any format, within the limits of your browser. Free.

No account, no cookies, no file stored.

Secondsto get the signed proof
€0free, no subscription
0accounts to create
0 bytesof your file sent

File timestamped

Date
UTC time
File
Fingerprint
Identifier
Bitcoin
IIC TSA token
Verify a proof
Suggested caption

Save your photo or video now

It is the original file of this proof. Without it, the proof cannot be verified. Keep it unchanged: sending it through a messaging app may compress it and change its fingerprint.

Keep the proof with the original file, without modifying it: the slightest change, even a single byte, changes its fingerprint.

How to get your PDF certificate

  1. Now: download the proof and keep it with the original file.
  2. Usually within the hour, at most a few hours later: open Verify and load the proof, then the original file. The Bitcoin anchors are then completed and checked.
  3. Once the anchor of the file is confirmed: download the proof folder (.zip): it holds the completed proof, to keep in place of the first one, the PDF certificate, which also shows the status of the anchor of the signed attestation, the image to share and everything needed to check the proof without VerifBox.

The certificate can only be created once the anchor of the file is confirmed, because it shows the Bitcoin block and transaction. It usually takes less than an hour, sometimes a few hours.

How it works

Four steps, none of which requires sending your file.

  1. Fingerprint

    Your browser computes the file’s SHA-256 fingerprint: 256 bits, written as 64 hexadecimal characters. The slightest change to the file changes it completely.

  2. Signature

    The service adds the date and time, then signs the whole twice, with Ed25519 and ML-DSA-65.

  3. Anchoring and time-stamp token

    IIC TSA immediately issues an RFC 3161 token, a time to the second. OpenTimestamps then anchors, separately, the fingerprint of the file and that of the signed attestation in the Bitcoin blockchain, within a few hours.

  4. Verification

    Anyone can check the proof with the file, here or with standard tools.

Two Bitcoin anchors, one time-stamp token, one verifiable proof

VerifBox anchors your file and its signed attestation in Bitcoin, separately, through the open OpenTimestamps protocol, and has the file’s fingerprint time-stamped by IIC TSA under the RFC 3161 standard. Each proof can be verified on its own.

  1. Fileits SHA-256 fingerprint
  2. OpenTimestamps
  3. Bitcoin · anchor ①
  1. Signed attestationEd25519 + ML-DSA-65, then SHA-256
  2. OpenTimestamps
  3. Bitcoin · anchor ②
  1. Fileits SHA-256 fingerprint
  2. IIC TSA (RFC 3161)
  3. Time-stamp token · to the second

Why two anchors and a token?

The first anchor establishes that the fingerprint of the file existed before its Bitcoin block.

The second establishes that the signed attestation itself existed before its block: the fingerprint, the proof identifier, the declared time, the signing key and both signatures. If a signing key is ever revoked, this second anchor is what keeps proofs issued before the revocation reliable. Proofs issued before the double anchoring keep their single anchor; they do not gain the second one retroactively.

The time-stamp token covers the fingerprint of the file and gives what Bitcoin cannot: a time to the second, signed by IIC TSA after checking its clock against four independent sources. IIC TSA is operated by the company that publishes VerifBox; its root certificate is published on this site and the token is checked with OpenSSL.

What Bitcoin establishes is a time bound: the anchored item existed no later than its block. It is not a date to the second, and it is distinct from the time declared in the attestation.

VerifBox and OpenTimestamps

VerifBox does not replace Bitcoin or OpenTimestamps: anyone can check the anchors with the official OpenTimestamps tools, without VerifBox. VerifBox adds a structured proof layer on top: an identified issuer, an attestation signed with Ed25519 and ML-DSA-65, published and independently verifiable keys, the second anchor, an open format and independent verifiers.

The complete journey, and its safeguards

From your file to a verifiable proof: what happens at each step, and what keeps it from going wrong.

  1. 1 · Your device

    Fingerprint

    Your browser computes the file’s SHA-256 fingerprint.

    • The file is never sent
    • No account, no cookie
    • Changing a single byte changes the whole fingerprint
  2. 2 · VerifBox server

    Date and double signature

    The service adds the date and time, then signs the whole twice, with Ed25519 and ML-DSA-65.

    • Only the fingerprint is received
    • No file kept, IP address never recorded by the application
    • Standardised post-quantum signature (FIPS 204)
    • Public keys published
  3. 3 · Proofs

    Three separate proofs

    Bitcoin · anchor ①File fingerprint: it existed before this block.
    Bitcoin · anchor ②Signed attestation: keeps proofs reliable if a key is ever revoked.
    IIC TSA tokenRFC 3161 standard: a time to the second, checked against four sources, including Germany’s official clock (PTB).
    • Each proof can be checked on its own
    • Open OpenTimestamps protocol
  4. 4 · By anyone

    Verification

    With the original file and the proof, here or with standard tools.

    • Works even without VerifBox
    • Open tools: OpenTimestamps, OpenSSL
    • Any change to the file is detected

From your file to the certificate, from A to Z

1 · YOUR DEVICE Your file photo, PDF, contract, code… SHA-256 computed in the browser Fingerprint 64 hexadecimal characters The file never leaves sends the fingerprint only 2 · VERIFBOX SERVER Attestation fingerprint · date and time · identifier · key Dual signature Ed25519 + ML-DSA-65 (FIPS 204) Proof .verifbox.json issued immediately RFC 3161 request: fingerprint + nonce file fingerprint signed attestation 3 · SEPARATE PROOFS OpenTimestamps open protocol Anchor ① file fingerprint Anchor ② signed attestation Bitcoin blockchain public block and transaction a few hours IIC TSA — RFC 3161 time-stamping same company as VerifBox, not eIDAS-qualified Time guardian PTB · Akamai · Google · Cloudflare ≥ 3 sources must agree, else no token Signing key Google Cloud KMS, never leaves Log 12 years, time-stamped nightly Token time to the second, signed Every night: time-stamped by DigiCert + anchored in Bitcoin Token · immediate Anchor ① ② · a few hours 4 · VERIFICATION, BY ANYONE Proof · .verifbox.json • file fingerprint • signed attestation • IIC TSA token (.tsr) • Bitcoin anchors ① ② (.ots) Original file + verifbox.com/verify in your browser verifbox_verify.py Python, MIT verifbox-verify-offline.html offline openssl ts -verify token, with the published root ots verify Bitcoin anchors PDF certificate once anchor ① is confirmed ✓ fingerprint · signatures · token · anchors Published: VerifBox keys, IIC TSA root, revocation list, open format
What your browser does, what the VerifBox server does, what IIC TSA and Bitcoin provide, and how anyone checks the whole.

The three times of a proof

Real example: control proof of 10 October 2026 Signed time 21:56:02.854 UTC declared by VerifBox, covered by the Ed25519 + ML-DSA-65 signatures worth the trust placed in the VerifBox key IIC TSA token time 21:56:05 UTC ± 1 s RFC 3161, after a check against four time sources (PTB, traceable) same company as VerifBox: not an independent third party Bitcoin bound block 970,834 · 22:05:35 UTC OpenTimestamps: the bytes existed before this block public, independent of any company; block precision ≈ 2 h 2 s 9 min Rule: signed time / token gap ≤ 10 s, otherwise the proof is not valid · the block must come after both
Three times of a different nature: a declared, signed time; a time certified to the second by a time-stamp authority of the same company; and a public bound that nobody controls. They must agree; a verifier reports them separately.

Safeguards of the IIC TSA token

The RFC 3161 time-stamp token is added to the double signature and the two Bitcoin anchors, which remain unchanged.

  • Time checked before every tokenFour independent time sources are queried; at least three, including Germany’s official clock (PTB), must agree; otherwise no token is issued.
  • Protected signing keyIt stays in Google Cloud KMS and never leaves it.
  • Log kept for 12 yearsEvery token is recorded; each night its digest is time-stamped by DigiCert and anchored in Bitcoin, which freezes the past.
  • External check every nightEach day’s log is time-stamped by a third-party authority and anchored in Bitcoin: any later change to the log would be detectable.
  • No personal data keptNo file, no fingerprint, no IP address in the log.
  • Open standardRFC 3161 format, verifiable with OpenSSL and compatible software.

Transparency. IIC TSA is operated by HTTPS CARD — Internet Identity Card Limited, the company that publishes VerifBox: it is not an independent third party. It is a non-qualified time-stamping service within the meaning of the eIDAS Regulation. Its root certificate is published on this site (iic-tsa.json) and every token can be checked with OpenSSL.

What it is for

Because nothing is sent, you can timestamp even confidential documents. A few typical uses:

  • Design and artwork

    A logo, an illustration or a photo, before showing it to a client or posting it online. If a copy appears later, you can show that your file existed first.

  • Contracts and agreements

    The version agreed before signature, or a draft sent for review. You can later show exactly which version existed, and when.

  • Source code

    An archive of a project, a release or an algorithm, before publishing it or sharing it with a partner. The code itself stays private.

  • Writing

    A manuscript, a screenplay, a thesis or an article, before sending it to publishers, a competition or a reviewer.

  • Evidence photos

    Damage, the condition of a rented property, a defect on delivery. The proof shows the photo existed at that date; it does not certify what the photo depicts.

  • Projects and research

    A business plan, a pitch deck, research data or a lab notebook, before a meeting, a submission or a disclosure.

In every case, the proof establishes that this exact file existed no later than a given date. It does not establish who created it, nor who owns the rights.

Example of a VerifBox timestamp certificate: statement, file fingerprint, Ed25519 and ML-DSA-65 signatures, Bitcoin block and transaction.
Demonstration example based on a real proof of 10 October 2026, with the IIC TSA token, shown with an EXAMPLE watermark.

What you get

Three files, each with its own role. You keep them: VerifBox keeps no copy.

The proof .verifbox.json
The authoritative document: the file’s fingerprint, the date and time, both signatures and the IIC TSA time-stamp token (RFC 3161). Issued immediately.
The Bitcoin anchors .ots
Two OpenTimestamps proofs, included in the proof file: one for the fingerprint of the file, one for the signed attestation. Each can be verified with the OpenTimestamps tools, without VerifBox. Completed within a few hours.
The certificate PDF
A readable presentation of everything, with links to the Bitcoin block and transaction, to attach to a file or send to an adviser. Available once the anchor is confirmed.

View the example PDF

Your proof folder, file by file

On the Verify page, once the Bitcoin anchor is confirmed, one button downloads a single .zip. Here is exactly what it contains, and what each file is for.

verifbox-dossier-3f9a1c07.zip
  • To open and show
  • certificate-photo.jpg.pdfThe certificate anyone can read: date, file fingerprint, Bitcoin block, IIC TSA token.
  • share-image.pngAn image ready to post, to announce your proof.
  • share-caption.txtSuggested text to go with the image.
  • README.txt · LISEZ-MOI.txtHow to check everything yourself, in English and in French.
  • The proofs
  • proof.verifbox.jsonThe proof itself: classical and post-quantum signatures, anchors and token completed.
  • attestation.jsonWhat VerifBox signed (date, fingerprint, key) and both signatures.
  • file-anchor.otsBitcoin anchor of your file’s fingerprint (OpenTimestamps).
  • attestation-anchor.otsBitcoin anchor of the signed attestation: it dates the signature itself.
  • iic-tsa-token.tsrRFC 3161 time-stamp token from IIC TSA, a service of the same company as VerifBox.
  • To check everything again, even without VerifBox
  • verifbox-keys.json · .otsVerifBox public keys, themselves anchored in Bitcoin.
  • iic-tsa-root.pem · .crl · iic-tsa-trust.jsonIIC TSA root certificate, its revocation list and where to check its fingerprint.
  • MANIFEST.sha256The fingerprint of every file in the folder: shows that nothing was changed.
  • summary.json · verification-report.txtA machine-readable summary, and what the verifier found when the folder was made (a record, not a proof).
  • Optional
  • original/photo.jpgA copy of your original file, only if you tick the box. Either way, the folder is built in your browser and your file is never sent to VerifBox.

* Only when the original file has been checked on the Verify page.

Nothing in the folder depends on VerifBox staying online: the Bitcoin anchors can be checked with any Bitcoin explorer and the OpenTimestamps tools, and the README explains each step.

What the proof establishes

It establishes

  • That an identical file, byte for byte, existed no later than the signed date and time, on the strength of the VerifBox signature; and, once the anchor is confirmed, no later than its Bitcoin block, which depends on no company; the proof also carries an RFC 3161 time-stamp token, to the second, issued by IIC TSA, a non-qualified service operated by the same company.
  • Once the anchor is completed, that it existed before the Bitcoin block that recorded it.
  • That the proof has not been altered since it was issued.

It does not establish

  • Who the author of the file is, or who owns it.
  • What the file contains, or whether it is accurate.
  • A trade mark or patent filing, or a notarised deed.

This is a simple electronic timestamp, not qualified within the meaning of the European eIDAS Regulation. Under its Article 41, it cannot be refused as evidence solely because it is not qualified; its value is assessed by the court.

Limits and good practice

  1. Keep the exact bytes. A photo sent back by a messaging app, a re-exported PDF or a video recompressed by a cloud no longer matches the proof. Keep the original file untouched, with its .verifbox.json. VerifBox keeps no copy and cannot replace either.
  2. Come back for the completed proof. Until the Bitcoin anchor is confirmed and saved, you hold a signature and a time-stamp token, not a public anchor. Use the reminder button, then return to Verify and keep the completed proof and the certificate.
  3. “Valid” is not “anchored”. A verifier reports each proof separately. The part that survives VerifBox is the completed Bitcoin anchor, re-checked with the OpenTimestamps tools next to the original file. Anchors and the token can be removed from a proof without breaking the signatures: a proof without them is weaker, not forged.
  4. The time to the second comes from this company. The IIC TSA token is issued by the same company and is not a qualified time stamp; the Bitcoin anchor gives an upper bound, not a second. The signed time and the token time must agree to within a few seconds: look at it.
  5. Not a proof of authorship. Anyone holding a file can time-stamp it, including someone who copied your draft. The proof shows that these bytes existed, not who created them or who owns the rights. Do not present it as a copyright deposit, a notarised act or a qualified time stamp.
  6. Publishing a proof publishes the fingerprint. The fingerprint reveals nothing about the content, but anyone who already has the file can link it. For a date that must carry a legal presumption, use a qualified trust service; VerifBox can sit alongside it, not replace it.

Verifiable by anyone, even without us

A proof should not depend on the survival of whoever issued it. VerifBox’s public keys and the IIC TSA root certificate are published, the proof format is open, the Bitcoin anchors can be verified with the free OpenTimestamps tool and the time-stamp token with OpenSSL.

Key in use
Loading…
Public keys
/.well-known/verifbox-cles.json
verifbox-cles.json.ots (Bitcoin anchor of this key file, OpenTimestamps: each published version is anchored)
Independent publication
DNS _verifbox.internetidentitycard.com (DNSSEC)
GitHub
Algorithms
SHA-256, Ed25519, ML-DSA-65 (FIPS 204)
Specification
Proof format version 1 (specification 1.2)
Independent verifiers
verifbox-verify-offline.html (offline, in any browser, GitHub)
verifbox_verify.py (Python, MIT): GitHub · verifbox.com
Independent archive
Software Heritage (Inria, with UNESCO support): permanent copy of the GitHub repository (verifiers, public keys, validation vectors), archived on 15 October 2026. Identifier:
swh:1:snp:e596463a815904944b3c34da9ebda87ae77a2425
Dated code deposit
VerifBox and IIC TSA source code and documents deposited by HTTPS CARD with INPI (French IP office) under e‑Soleau envelope no. DSO2026038975, on 13 October 2026 at 02:49:31 UTC, kept until 2041. The content stays confidential; INPI does not examine it, and this deposit is neither a patent nor a trade mark. SHA-256 of the deposited file, also time-stamped on VerifBox (proof 9261a18e…):
f4a86af0887178e151025dde1df589cf4d6f28b28cc3a9480499179268409d8a
Bitcoin anchor
ots verify file.ots
IIC TSA root
/.well-known/iic-tsa.json (root certificate and revocation list)
openssl ts -verify
Publisher
HTTPS CARD — Internet Identity Card Limited, England and Wales no. 09168431, London — also operates IIC TSA: internetidentitycard.com/tsa