Security

The short version: your records are encrypted on your phone before anything is saved or sent, and we hold no key. This page explains how, and what it costs you.

How the encryption works

Your PIN is stretched with PBKDF2 (310,000 iterations) and used to wrap a random data key. The records are encrypted with that data key using AES-256-GCM. Changing your PIN re-wraps the key — 32 bytes — and never touches the records, which is why it is instant however large the vault.

What the server can see

We holdWe do not hold
Your email addressYour name, or anyone's
Which plan you are on, and whether it is paidAny medicine, condition, or test result
An encrypted blob, and roughly how big it isFilenames, or how many records you have
When you last backed upYour PIN, your recovery codes, or any key

If this entire database were dumped tomorrow, what an attacker would get is a list of email addresses, some subscription states, and blobs they cannot open.

We refuse to hold your recovery code

This was proposed and rejected on 19 August 2026, and the refusal is permanent.

A recovery code opens the vault completely. Storing one on our servers would be the same thing as storing the key, and would put the locked box and its key in one database. Every claim on this page would become untrue the day we did it — so we do not, on any plan.

The cost of this, stated plainly. If you forget your PIN and lose both recovery codes, your records are gone. Not recoverable by support, not recoverable by us, not recoverable by a court order. That is the same property that makes them unreadable to everyone else.

Two codes, two people

At setup Prescryption prints two recovery codes and asks who will hold the second — a family member, a partner, someone who will still be reachable in ten years. Either code opens the vault on its own. One drawer catching fire should not cost you thirty years of records. Twice a year the app asks whether you can still find them, and either can be replaced without changing the other.

Where the servers are

Encrypted backups are stored in Mumbai, India (Supabase, ap-south-1). Access is enforced at the database with row-level security: a signed-in account can reach its own row and nothing else, which is a rule the database applies rather than something the app is trusted to remember.

What we have not built yet

Cloud backup is still in development, and this page describes the design it is being built to. Nothing has been shipped that contradicts it, and when backup does arrive, what leaves the device will be ciphertext or it will not leave.