Sigilo is a privacy-preserving age verification network. We let users prove they're old enough to use a site without revealing their identity, date of birth, or document — to the site, to us, or to anyone else.
Existing vendors collect government IDs and biometrics, then return a yes-or-no answer. The honeypot is enormous. The privacy harm is structural. We built the inverse.
over_18: trueA three-party protocol. Each party sees only their slice. No party — including Sigilo — can reconstruct the whole.
The user verifies their age once, with a bank, mobile carrier, government wallet, or accredited identity provider. The issuer signs a verifiable credential bound to the user's device.
Bound to the device's secure enclave. Never exported. The user can hold one credential and use it across every site in the network — no re-verification, no re-upload of ID.
A zero-knowledge proof asserts dateOfBirth ≤ today − 18y. The website verifies the proof. It learns nothing else — not the date of birth, not the issuer, not a user identifier, not anything correlatable across visits.
Trust is not a marketing word. Our relying-party SDK is open source. Every release is built and signed by GitHub Actions, recorded in a public transparency log, and verified by npm before it reaches your installer. Anyone can audit what we ship against the source we published.
Full SDK source, threat model, security policy, CI workflows. Static analysis runs on every commit. Issues and security disclosures handled in the open.
One install command. Zero runtime dependencies. TypeScript-first, ESM-only. The green checkmark on npm links the published artifact to the exact commit that produced it.
Every release is built by a workflow whose identity is signed by Sigstore at publish time. Inspect the workflow run, the commit it built, and the attestation it produced — all timestamped to a public transparency log.
npm install @sigilo/verify then npm audit signatures. npm will fetch the signed attestation, verify it against the Sigstore root of trust, and confirm the package came from this exact commit in this exact workflow run. No tokens. No trust required.
Built for developers. Audited for regulators. Drops into your existing checkout, signup, or gating flow.
Web, iOS, Android, React Native, Unity, and a server-side proof verifier. OpenID4VP-conformant — your existing wallet plumbing works out of the box.
The relying-party SDK is open source. The cryptography is open source. The threat model is published. The audit reports are public.
View the docs→// drop-in widget — one line on the page import { Sigilo } from '@sigilo/verify'; const sigilo = new Sigilo({ publishableKey: 'pk_live_4kZ...', predicate: 'over_18', assurance: 'high', }); const { verified, proofId } = await sigilo.verify(); if (verified) { // proceed — you received a boolean, // no PII, no biometrics, no ID image }
If you're a head of trust, a regulator, or a cryptographer, these are the questions you should ask. They are the ones we ask ourselves.
Talk to us about your verification volume, your regulator, and your timeline.