Operator details missing
Set NEXT_PUBLIC_LEGAL_ENTITY and NEXT_PUBLIC_CONTACT_EMAIL, and have these documents reviewed for your jurisdiction before launch.
Legal

Privacy Policy

Last updated November 7, 2026. The operator of this LKP deployment (“we”) runs LKP. This policy explains what we process when you use the LKP wallet, the hosted verification page, or the business console.

The short version#

  • Your wallet is encrypted on your device. LKP stores ciphertext we can't read. We do not store names, documents, or images.
  • ID, phone and email checks are performed by Didit, our KYC partner. Didit temporarily processes images, codes and its own telemetry under Didit's privacy policy. LKP's issuer reads the extracted facts, signs them, requests deletion of the Didit session, and keeps none of them.
  • Businesses learn only the facts they asked for (for example “over 18”) and an anonymous ID that is different for every business.
  • We don't sell data, run ads, or use tracking cookies.

People who use the wallet#

LKP stores, linked to no name or contact detail:

  • Your encrypted wallet: AES-256-GCM ciphertext, plus copies of the wallet key wrapped by your passkey, passphrase or recovery kit. The keys that open them never reach us.
  • A one-credential, one-wallet tag: a keyed hash (HMAC) of a verified document number, issuing country and birth date, or of a phone number, email address, account ID or IBAN. It stops that specific credential from backing a second wallet. It is not a biometric, and it does not prove that a person has only one legal identity worldwide.
  • Revocation status: one bit per credential, so a credential can be withdrawn after fraud.
  • Proof records: for each business, a nullifier (an anonymous, business-specific ID derived from the wallet's identity key). In one-time-action mode it stops the same wallet from completing that action twice. It is not a global unique-human identifier.

ID verification. Document and selfie checks are performed by Didit under Didit's privacy policy. Didit may retain verification telemetry (images, liveness captures, device and session metadata) for its own security, anti-fraud and legal periods. Once a check finishes we delete the session at Didit through its API. Our signing service receives the extracted name, date of birth, sex, nationality (citizenship), address country printed on the document when present, and document type, number, issue and expiry dates, uses them to sign your credentials and compute the tag above, and discards them. LKP never stores the document image or selfie.

Phone and email. Didit sends and checks the one-time code, and may log delivery metadata under its policy. Our signing service receives the number or address and the line type or disposable-address check, signs your credentials and discards them.

Instagram, X, TikTok and GitHub. A TLSNotary proof (Instagram) or your sign-in with the provider (the others) shows us your account ID, username and public profile statistics, and for GitHub your organisations. We use them to sign your credentials and compute the tag, drop the access token immediately, and keep none of them.

Bank accounts. Enable Banking, a licensed open-banking provider, connects to your bank with your consent. Our signing service reads one account's IBAN, holder name and balance, never transactions, signs your credentials and ends the consent session.

Business customers#

For console accounts we process:

  • Your email address, company name and sign-in credentials (passwords are stored hashed by our authentication provider, Supabase).
  • Apps, redirect URLs, webhook URLs, API key hashes and settings you configure.
  • Verification session records: requirements, status, timestamps, timing and the per-app nullifier. No personal data about end users.

We use your email to run your account (sign-in, password reset and service notices). Closing your account in the console deletes all of it.

Technical data#

Like any web service, our servers see IP addresses and request metadata. We use IP addresses for rate limiting (counters expire after a minute) and keep short-lived operational logs to keep the service secure and running. We don't build profiles.

Browser storage. The wallet keeps an encrypted copy in your browser (IndexedDB) and the unlocked session in session storage until you close the tab. The console keeps its sign-in session in local storage. None of this is used for tracking.

Processors#

  • Vercel (web hosting), Render (API and signing service hosting), Supabase (database and console sign-in), Upstash (rate limits and one-time challenges).
  • Didit (ID document, selfie, phone and email verification). Didit processes images, codes and related telemetry under its own privacy and retention policy. LKP does not store those materials.

Some of them may process data outside your country under appropriate safeguards such as Standard Contractual Clauses.

We process data to provide the service you request (contract), to prevent fraud and duplicate enrolment of the same credential (legitimate interests) and, for ID checks, with your explicit consent, which you give when you start the check. Depending on where you live you can ask for access, correction, deletion or portability, object to processing, and complain to your data-protection authority.

Because wallet data is anonymous to us, we usually can't find “your” records without your help. You can delete your wallet yourself from its Security page. For anything else, write to the contact address published on this site. Requests about images or codes Didit processed should go to Didit as well as to us.

Retention#

  • Wallet ciphertext: until you delete the wallet.
  • One-credential tags and revocation bits: as long as the service runs, so a deleted wallet can't re-enrol the same document, number or account. On a verified request we can release the tag for re-enrolment (unbind).
  • Business accounts and session records: until the account is closed.
  • Didit: according to Didit's own retention schedule. We request deletion of the verification session at Didit once a credential is issued or declined. Copies Didit keeps for its legal or anti-fraud obligations are outside LKP's control.

Changes#

We'll post changes here and, for material ones, notify business customers by email.