Why we can't seeyour data.

It's not a policy. It's not a promise. It's the architecture. Encryption and decryption happen entirely on your device — our servers are nothing more than a vault for sealed, unreadable boxes.

what a server breach would expose

On your device

{ "login": "you@example.com", "password": "S3cr3t!2024" }

On our servers

{ "iv": "f3a9c1d2e0b4…", "ct": "0x8f2a4b…c93e7d10a" }

The Lifecycle of a Secret

Plaintext never crosses the wire

Follow a single password from the moment you type it to the moment it's stored. At no point does a readable value — or a usable key — touch our infrastructure.

01device

Encrypted on your device

You type a password. Before anything leaves your browser, it is encrypted with your vault's Data Encryption Key using AES-256-GCM via the Web Crypto API.

plaintext → AES-256-GCM
02network

Only ciphertext travels

A base64-encoded encrypted envelope is sent over TLS 1.3. The plaintext — and the keys that protect it — never leave your machine.

base64 envelope over TLS 1.3
03server

Stored as an opaque blob

Our servers store the envelope exactly as received. They never decrypt it, never parse it, and have no key capable of opening it.

0x8f2a…c93e (unreadable)
04device

Decrypted back on your device

When you return, the same envelope is fetched and decrypted locally with your key. The round trip never exposed a single readable byte.

AES-256-GCM → plaintext

How We Stay Blind

Trust, removed from the equation

Zero-knowledge isn't one feature — it's a set of guarantees enforced at every gate, transfer, and share.

A two-gate model

Signing in only proves who you are (the JWT gate). It does not unlock your vault. A second gate — proven by an HMAC-SHA256 challenge over your master key — is required before any secret can be decrypted. A stolen session token alone opens nothing but ciphertext.

Your secret never transmitted

Your Password-Derived Secret is computed in your browser and cached only in session memory. It is never sent to us, and on logout it is wiped — so re-entering it is the only way back in.

Proof without exposure

To unlock, your browser derives the key, then sends a one-time HMAC proof that it succeeded. The server validates the proof mathematically — without ever possessing the key it proves knowledge of. The key is wiped from memory the instant the ceremony ends.

Zero-knowledge sharing

Share a vault and its key is re-wrapped with the recipient's RSA-2048 public key — only their private key can open it. Secure links keep their symmetric key in the URL fragment, which browsers never send to the server.

Your data, your keys, your knowledge alone

Experience a password manager that is mathematically incapable of reading your secrets.

Start Free Trial