PPIL (Privacy Preserving Integration Layer) is how merchants integrate age verification. It is a drop-in client layer — @aithne/ppil-client and its language siblings — that talks to the AVP and never needs a user's identity.
How it works
PPIL adds an age gate to a merchant route. Unverified users are redirected to a wallet dialog; the user approves an age claim; the client verifies the attestation and, once verified, short-circuits the gate for that session. The merchant signs verification records via its own hook (getSignedPIC) — the client never holds signing keys.
ageGate(ppil) → wallet dialog → approve "18+"
ppil.verify({ pptToken, otpAlias, requiredCategories })
# merchant signs the receipt; no identity data transits
Clients
Node.js · TypeScript · PHP · Python · Java
Why it's private
The client enforces the signing boundary, masks sensitive tokens in any diagnostic output, and never logs or persists proof tokens. No name, DOB, email, phone, address, or payment data is part of the protocol.