Veil lets people verify their age, residency or credentials online without sharing the documents behind them. Private by design, verifiable by anyone.
Verify a credential → How it worksUsers keep their data on their own device. Businesses get a cryptographic yes or no, and nothing else to store, leak or lose.
Turn any login, bank or government record into a private proof you control.
Check customers instantly and never store sensitive personal data again.
Log in to a trusted source like your bank. Veil observes the encrypted session.
A zero-knowledge proof confirms one fact, like "over 18", and nothing more.
Anyone can verify the proof. Your documents never leave your device.
Prove you're over 18 without showing your ID.
Pass bank onboarding with a single proof.
Confirm your country without an address.
Prove a degree or license, privately.
Drop the Veil SDK into your sign-up flow. You receive a verified claim, never the raw data.
Read the docs →import { Veil } from '@veil/sdk' const veil = new Veil({ appId: 'app_9f2…' }) const proof = await veil.request({ claim: 'age >= 18', sources: ['bank', 'gov_id'], }) if (await veil.verify(proof)) unlock() // no names, no dates, no documents stored
It's a way to prove a statement is true, like "I'm over 18", without revealing any other information, such as your name or birthday.
No. Proofs are generated on your device. Veil only sees the final proof, never the documents behind it.
Over 140 banks, government portals, universities and platforms, with more added every month.
Free for people. Businesses pay per verification, with volume discounts.