EverStamp
Home › How it works

How EverStamp works

With the EverStamp app you make captures with the date, time and place in the image. Every capture is signed on your phone and goes into a file; when you close the file, an independent service adds a qualified timestamp to it. This page explains that chain and says exactly where it stops.

A photo of a house front, half covered by the hexadecimal values of its pixels, with the stamp bar along the bottom
InvisibleVisible
One capture, up close

What you can see, and what you cannot

The bar is the part anyone can read, on screen or on paper. The rest travels with the image and the file, and only a check can see it. Change a single pixel and that check fails.

The stamp bar, in the imagevisible
SHA-256 of the image9c4e1f7a…5b8e
Signed on the devicehardware key
C2PA manifest in the imageC2PA
Qualified timestamp on the fileRFC 3161
One pixel changeddoes not check out
In the app

From capture to seal

You capture with the app’s camera, and each capture goes straight into a file. That file shows the chain as a row of four dots, in the app’s own words. While it is open, it is still collecting captures. Once it is sealed, all four are green.

CapturingEach capture is signed on the phone and points at the one before it.
ClosingThe series is summed up in one fingerprint, with the number of captures in it.
StampingA qualified trust service puts its own time on that fingerprint.
RegistryA fingerprint goes into the public log, which is timestamped in turn.
The EverStamp camera with a house in the viewfinder and the stamp bar at the bottom of the image
ShootThe camera puts the date, time and place in the image, and the phone signs the capture straight away.
An open file: the first of four dots is active, and the checklist shows a missing gas reading
OpenStill capturing. The checklist shows what is missing, and closing waits until the required steps are there.
A sealed file: all four dots are green, with the stamp and the registry entry below
SealedStamped by the trust service and registered in the log. From here on, any change to the images or their order shows up.
The chain

Four links, from the shutter to the recipient

Each link does one thing, and each link says what it does not do.

ON THE PHONEhash, sign, count01THE SERIESsummed up in one fingerprint02THE SEALa qualified service03THE LOG108 bytes, public04THE RECIPIENTchecks in a browser05all but one without us; green comes from our registry
1

On the device, at the moment itself

The moment the camera hands the capture back, the image is hashed and signed with a key from the secure hardware in your phone. With a video, that happens piece by piece while you record. According to Apple’s or Google’s attestation, that key was created in the secure hardware of a real device for our app, and cannot leave it. The same step carries the device clock, the location if you have it on, and a counter that only goes up.

What this link does not do: establish what the capture shows. A photo of a screen is still a photo. What the app does carry with a photo is a signal that says something about it: the movement of the phone in the second around the capture.

A capture in the app, with the stamp bar in the image and the time of the time anchor
2

The series, and closing the file

Every capture points at the one before it, and together they form a tree. The tree also holds the number of captures, so a clipped tail shows up. When the file closes, the root of that tree, one hash that sums up every capture, goes to a qualified timestamping service on the European trust list. It stamps with its own audited clock.

What this link does not do: accept a time you supply. The protocol has no field for asking for a time. That is why the stamp on a file made today can never carry yesterday’s date.

A sealed file with the timestamp and the window
3

The log

A 108-byte fingerprint of every file goes into a public log, which is itself timestamped in turn. That is how you can tell afterwards that EverStamp registered a file, rather than it being invented somewhere else with a real timestamp wrapped around it.

What is not in it: your captures, or anything that identifies you or your customer. The log holds numbers. Captures reach us in three cases: a share link, where the key stays in the link; a delivery answering a company’s request; and every file, if your organisation switched on storage at EverStamp. In the last two we hold the key for that company as well; technically we can therefore open them too, and we do that only at that company’s written request, or when a court or authority orders or demands it under the law.

The file with the timestamp and the line from the registry
4

At the recipient

They get a PDF and an archive. Dragging either onto the page is enough; the sums run in the browser and the file does not come to us. Only if the file carries a registry receipt that the page cannot check itself, as with a file from before version 1.1, does the question whether our registry knows the entry go to us; a newer file usually carries the registry’s signature itself, once the registry receipt is in it. Anyone who would rather check it themselves can use ordinary OpenSSL and the open tooling for Content Credentials.

What this link does not do: pass judgement on your case. The page says what was recorded and when, and where that stops. What it is worth is for the recipient to weigh.

The verification page with the verdict on a file
At the other end

What the recipient gets

A file travels as an archive, a report or a link. Whichever one arrives, it leads to the same check.

The first page of the PDF report, with the QR code at the top right
The reportA PDF with the photos, the file number and a QR code that opens the check.
The verification page on a phone: this file checks out, made on Android with hardware attestation
The checkIn the browser, in plain words: what was recorded, when, on what kind of device, and whether anything about the images or their order changed.
A report page with the captures of the file
The capturesEvery photo, in the report and at full resolution in the archive; a video as a file of its own next to it.
The foundations

The standards this is built on, by name

Naming them is the point. A claim you cannot look up is a claim you have to take on faith, and every one of these has a public specification anyone can read.

WhatWhich standardWhat it does here
Provenance in the imageC2PA, Content CredentialsThe photo carries C2PA provenance data: which app and which device, signed by EverStamp. Who took it and the device time remain stated values. It is the vocabulary in which data provenance is normally discussed.
The timestampRFC 3161, from a qualified service on the EU Trusted ListThe service signs a hash with its own audited clock. The protocol has no field in which a client can ask for a time: the time of the stamp is set by the service, not by the phone and not by us.
The seriesSHA-256 and a Merkle treeEvery capture is hashed, each points at the one before it, and the tree has one root: one hash that sums up every capture. The count sits inside the tree, so a clipped tail shows up. One stamp on the root therefore covers every capture underneath it.
The deviceApp Attest on iOS, hardware key attestation on AndroidThe signing key lives in secure hardware and cannot be exported. Apple or Google attests that the key was created there, for our app. That attestation does not establish whether the device was jailbroken or rooted: a hacked phone can sometimes pass it.
The lower edgedrand, a public randomness beaconA value nobody can know in advance, fetched at the last sync and carried into the file. A capture cannot have been signed before the value it contains existed; with our app on a device that is not jailbroken or rooted, the capture was then also made after that moment.
Who may stampeIDAS, Regulation (EU) 910/2014, Article 41A qualified service is supervised and listed. The time it indicates, and the integrity of the data bound to it, are presumed accurate. That is a European rule; outside the European Union it depends on the law of the country.

Two things are deliberately absent from this list. There is no blockchain: a public log that is itself timestamped by the same qualified service is cheaper, faster and checkable with tools everyone already has. And there is no proprietary format of ours holding the whole thing up, because a format only we can read would put us back at the centre, which is the thing we are trying to avoid. The green verdict still needs our registry; that is set out under the checks below.

The honest version of “when”

We show the window, not a moment

Many timestamp cameras put a time on your photo that comes from your phone’s clock, and you can change that clock yourself. What we record is a window with two hard edges around it, and how narrow that window is sits in your file as a number.

ONE QUALIFIED STAMP PER FILE (BASIC, PLUS AND BUSINESS)16:31:12lower edge: the anchor16:47:03upper edge: the stampa window of 15 min 51 s around twelve capturesONE QUALIFIED STAMP PER PHOTO (ENTERPRISE)a window of its own per photo, usually under a minute when onlineWith no signal the device signs straight away and the stamp follows once there is coverage. The window gets wider, and that number is in the file.
The lower edgeA public random value nobody can know in advance, fetched at the last sync. The capture cannot have been signed before it.
The upper edgeThe qualified timestamp. By that moment at the latest the images existed in this form; any change to the images or their order after it shows up.
The orderEvery capture carries a sequence number and the fingerprint of the one before it, under the device’s signature. Nothing can be cut out of the middle without the gap showing.
The capture timeThe device clock, marked in the file as a stated value. We show it, but we do not lean on it.
The heart of it

What this does and does not establish

The app, the report and the verification page also say for every file what is and is not established, so nobody feels caught out later.

What this establishes
  • These images existed in exactly this form and order before the moment of stamping. Recorded by an independent service, not by EverStamp, and checkable against that service’s signature.
  • Any change to the images or their order shows up. If something is appended later, the page reports that as an addition, with the first stamp date alongside.
  • The time of the stamp comes from the service, not from the phone. The service stamps with its own audited clock, and nothing in the request lets anyone ask for another time.
  • The captures were signed with a key that, according to Apple or Google, was made in the secure hardware of a real device, for our app. They attest to that when the key is made, and the log confirms that we know this file.
What this does not establish
  • What the capture shows. A photo of a screen is still a photo. No technique can establish that a camera was pointed at the real thing.
  • The exact moment of capture. The device clock is a stated value. What is fixed is the window between the time anchor and the timestamp, and that window is in the file as a number: EverStamp did not sign the capture before the anchor, and the image existed before the timestamp. That the capture itself was made in that window holds with our app on a device that is not jailbroken or rooted.
  • Whether the device was jailbroken or rooted. A hacked phone can sometimes pass the check by Apple or Google, and then make the app sign something other than what the camera saw.
  • That you recorded everything. Whoever records chooses what to record and what to show. That is why the number of captures is in the stamp, and a struck capture stays visible with its reason.
  • How anyone will weigh it. We record; what a file is worth is for the party assessing it to decide.
Checking the sums

Every check but one works without us; the confirmation for green comes from us

The verification page shows the checks that apply to the file in front of it: a PDF report gets fewer than the archive from the app, and a light file or one without a checklist fewer again. What we add is that you can redo the sums yourself: your browser does every check but one with public standards. The verdict needs the last one, and that confirmation comes from us: a file from version 1.1 of the app carries the registry’s signature, which your browser checks against our published key; for an older file the page asks our registry whether it knows the file.

The timestamp is genuine and covers exactly this documentyour browser does it
The timestamping service is on the European trust list, and was at the timeyour browser does it
Nothing was added to the document after the timestampyour browser does it
Every capture checks out against its signature and its hashyour browser does it
The sequence is unbroken: every capture points to the one beforeyour browser does it
The seal covers every image in the file and their orderyour browser does it
The device signature under every capture is validyour browser does it
The anchor for the lower edge of the window verifiesyour browser does it
The registry receipt checks out: EverStamp registered this filecomes from us

The confirmation from the registry is the only check that tells a file EverStamp registered apart from something invented elsewhere with a real timestamp wrapped around it; without it the verdict is never green. A file from version 1.1 of the app usually carries the registry’s signature once the app has put the registry receipt in it; that can only happen after the registry has timestamped the file’s hour. The page checks that signature itself, and then asks us nothing. A file without a registry receipt does not turn green. If the file carries a registry receipt that the page cannot check itself, as with an older file, the page asks our registry one thing: do you know this entry? If the registry cannot be reached then, the page says so, and that check stays open instead of quietly passing. We keep the IP address, the browser and the time, for thirty days, and not which file it is.

What an owner can still do

Three things technology cannot solve

They apply to every piece of material ever put in front of anyone, from a paper receipt to a witness statement. We put them here because a recipient will think of them anyway.

1

Choosing what you record

Recording the crack and not the leaking roof. A checklist makes that visible: it says which steps are still open.

2

Choosing what you show

Keeping quiet about a file that does not suit you. Leaving something out of a file does show: the number of captures is in the stamp, and a struck capture stays visible with its reason.

3

Making several files

And picking the most convenient one afterwards. Each was genuinely made at its own moment, so none of them is false; each does carry its own date.

Questions

What people ask us

What does “qualified” actually mean?

A qualified timestamping service is supervised and listed on the European trust list. Under eIDAS Article 41 the date and time of the stamp, and the integrity of the stamped data, are presumed accurate, not the moment of capture or what the capture shows; Article 13 puts liability for the stamp on that service. Note what the presumption covers and what it does not: it is about the time and the integrity, not about the other questions in your dispute. That is a European rule; outside the European Union it depends on the law of the country.

What if I lose my file?

Then you have nothing, and we cannot help you. On the ordinary route your captures never reach us, so there is nothing for us to send back. Our 108 bytes in the log only confirm that a file existed, not what was in it. That is the flip side of captures staying on your own device, and it is exactly why Plus has a backup to your own cloud. The exceptions are a file you delivered in answer to a company’s request, and any file made while your organisation had storage at EverStamp switched on. Those sit with us, and that company can open them.

Can I add a photo from my camera roll?

No. The app only records with its own camera, so every capture in a file sits in the signed series. The photo library is used only to pick your company logo in Settings.

What if I want to remove a capture?

You can, while the file is open, and the image goes. What stays is the fact that something was struck through, with the reason alongside. A file that quietly loses something is worth less than one that shows its own corrections, and technically, removing it would break all the other checks anyway.

Do you use blockchain?

No. We use a public log that is itself timestamped by the same qualified service. That is cheaper, faster and checkable with tools everyone already has.

Does it work on Android too?

Yes. For the customer and the recipient it is the same file, the same page and the same report. On Android the key attestation comes from the secure hardware in the device, with Google as the issuer, and the app keeps the counter itself.

Check a file