Security

How Privilio protects your contacts, and where the limits are

The short version. Your contacts are encrypted on your device with a key made from a passphrase only you know. We store only ciphertext, so we can't read your contacts, and we never receive your passphrase. The rest of this page explains what that means and, just as important, what it doesn't.

How the encryption works

In plain English, in five steps:

The code runs in the web app and the iOS app, using the audited open-source @noble cryptography libraries.

What our servers can and cannot see

Sign-in is handled by Clerk, our authentication provider. Your passphrase and encryption keys are never sent to Clerk or to us.

We cannot seeWe can see
Names, phone numbers, emails, companies, notes and tags
Your passphrase
Your encryption keys (the data key is stored only in wrapped form)
Which contacts are in your Vault
Your sign-in identity (email or account identifier)
How many encrypted records you have, and their approximate size
When records were created, changed or deleted (timestamps)
When and from what IP address you connect (IP addresses are kept briefly for security and abuse prevention)
Whether you have a Pro subscription (handled through Apple or Google)

Zero-knowledge describes the content of your contacts. It does not make you invisible: like any sync service, we necessarily know that an account exists and when it syncs.

What the Vault is, and what it is not

The Vault is a Pro feature that lets you mark certain contacts as sensitive and hide them behind a PIN.

Be clear on this: the Vault is a flag stored inside your encrypted contact data, protected in the app by a PIN. It is not a separate layer of cryptography. Vault contacts are encrypted with the same data key as everything else, so your passphrase protects them, and the PIN is an extra lock on the app's interface. If someone has your passphrase, the PIN does not stop them from reading Vault contacts with other software. We are considering giving the Vault its own separate key; we have not done that.

If you forget your passphrase

Because only you hold the key, we cannot reset your passphrase or decrypt your data for you. When you set up, the app gives you a one-time recovery code that can unlock your data if you forget your passphrase. If you lose both your passphrase and your recovery code, your data cannot be recovered by anyone, including us. Keep both somewhere safe. You can also export your contacts (JSON, CSV or vCard) at any time as a backup.

Connected AI assistants (coming soon)

We are working on a connector that would let AI assistants such as Claude, ChatGPT or Grok Bot look up your contacts for you. It is coming soon, optional, and off by default. It is not available yet. We are describing the trade-off now so nobody is surprised later:

What we have not done yet

Where your data is stored

Our database is hosted on Supabase in AWS ca-central-1 (Canada). Data is stored only as ciphertext. Sign-in is handled by Clerk, which may process sign-in data outside Canada. See our Privacy Policy for how we handle account data and legal requests.

Report a vulnerability

If you think you've found a security issue, please email smartin@adapting-services.ca with the details and steps to reproduce. Please give us reasonable time to fix the problem before disclosing it publicly, and don't access or modify other people's data while testing. We aim to respond to security reports within 3 business days.

Privacy · Terms · Contact us · Back to home