How Identified verifies age without ever holding data worth stealing.
Four steps from passport scan to verified age. The raw birth date never leaves the device in readable form; our servers only ever hold opaque ciphertext and answer a single yes/no question.
15 MAR/MAR 1990Four steps. Nothing that identifies a user leaves the phone.
The user scans their passport
Our app on the user's phone reads the NFC chip in their passport or national ID and verifies the government-issued signature chain. Forged documents don't progress past this step — and the chip data is never uploaded anywhere.
Birth date is encrypted on device
The birth date is encrypted before it leaves the phone — on-device, with a key the user holds. We never hold that key, so there is no credential an attacker could steal to unlock the data later.
Age comparison runs on encrypted data
The server runs a single operation on the ciphertext. The answer that comes out is also ciphertext. Nothing on our infrastructure ever holds a plaintext date, or even a plaintext yes/no.
Your service gets a yes or no
The encrypted result is decrypted locally on the user's device and digitally signed. Your backend receives proof that the person is old enough — and literally nothing else. Nothing to store, nothing to secure, nothing to disclose if you're breached.
Who holds what — and what a breach would actually expose.
The user keeps
- Full control — passport data is read, encrypted, sent and erased
- The private key used to encrypt and decrypt
- The plaintext answer
What our servers hold
- Opaque ciphertext in, opaque ciphertext out
- A pseudonymous session id
- — that's the entire blast radius