Skip to main content

How it works

Every password manager says only you can read your data. This page describes the structure that makes it true here, so you can judge the claim instead of trusting it.

The key is never stored​

The key that decrypts your vault — the DEK, for data encryption key — is not saved anywhere. Not on your phone, not on our servers, not in a backup. It is rebuilt from separate pieces each time you unlock, used for one operation, and wiped from memory immediately after.

What the app says on first runWhat the app says on first run

The app opens with the same claim this page is about to unpack — your key is built on this device and stays here. What follows is how that is arranged so that it is true rather than promised.

Those pieces are called shards, and they live in four different places.

PieceWhere it livesCan it leave?
Your passcodeYour memory, and nowhere elseIt is never stored or transmitted at all
Shard1Inside your phone's StrongBox or TEENo. Non-exportable by hardware design
Shard2Encrypted in our database. Your phone fetches itOnly as ciphertext, and alone it opens nothing
PepperA Google Cloud KMS hardware security moduleNever — not even in a reply to our own servers
Shard4Google Cloud Secret ManagerNever reaches your phone

Notice what that list really is: four separate places, and no two of them under the same control. Your memory, your phone's hardware, our database, and Google's key service. Taking any one of them is not enough.

The pepper and Shard4 are never handed over. Our server uses them to compute a third value, ShardVault, and returns only that. Then, on your device, in native code:

DEK = Shard 1 ⊕ Shard 2 ⊕ ShardVault

Miss any one of the three and there is no key.

Why that structure matters​

We hold two of the three. We can compute ShardVault, and we hold Shard 2 as ciphertext. We still cannot open your vault, because Shard 1 has never existed anywhere but inside your phone's secure hardware, and the hardware will not export it — not for us, not for you, not for an attacker holding your account.

That is the whole argument. It rests on hardware behaviour rather than on our good intentions, which is the only version of this claim worth making.

What our servers actually handle​

Being precise here matters more than sounding absolute.

  • Your passcode is never transmitted. On Titanium it never even exists in a form a server could test: the OPAQUE protocol proves you know it without revealing anything that could be attacked offline.
  • Your passwords are encrypted before they are stored, and are never uploaded to our database. Backups go to your Google Drive.
  • Shard 2 is handled by our server during key derivation, and a copy is stored encrypted. On its own it opens nothing.
  • ShardVault is computed for you, per unlock. The pepper it is keyed with stays inside the Cloud KMS hardware module and is never in a response.
  • We store what an account needs to exist: your email, your security tier, your device's model name and public key, and security events such as sign-ins and device changes.

ShardVault is bound to your account​

The server does not compute ShardVault from Shard 2 alone. It mixes in your account ID and a per-account value that never leaves the server, so a signed-in user cannot post someone else's Shard 2 and be handed that person's ShardVault.

This matters because Shard 2 is the shard that can travel. Without that binding, anyone who obtained a copy of your Shard 2 could have asked our own server to turn it into two thirds of your key.

Changing your passcode does not re-encrypt anything​

A passcode change re-wraps the value that unlocks Shard 2. Shard 2's contents do not change, so ShardVault does not change, so the DEK does not change.

Practically: changing your passcode is fast, it never touches your stored passwords, and existing backup files stay valid.

Why we cannot help if you forget the passcode​

We have nothing to check a passcode against, and no path to the key without your device. There is no reset link, no recovery question, and no internal override — which also means there is no override that can be demanded of us.

That is the trade. A service able to restore your vault is a service able to read it.

Where the honest limits are​

  • Backups and exports open only on the device that created them. They carry a layer of encryption tied to that phone's secure hardware, so copying the file to another phone does not help. See Backups and exports.
  • Screen capture is handled, with one gap. A screenshot is refused outright while a PasswordEpic screen is showing, and a recording of the app comes out black — keyboard included. The gap is the autofill dialog, which sits over a different app that is being recorded normally; the app refuses passcode entry there while a recording runs, but detecting one needs Android 15.
  • A keyboard you install can read what you type, in any app. If that matters to you, use the keyboard that shipped with your phone; PasswordEpic warns you when the active one did not.
  • Silver, the free tier, is software-only. It encrypts with AES-256-CTR plus a separate authentication tag, in JavaScript, without hardware key storage. See Security tiers.

What you can do at any time​

  • Settings → Reset Account erases the vault and your account data from our servers immediately.
  • Back up to your own Google Drive, or not at all.
  • On paid tiers, see which device currently holds the account, and release it from that device.