Privacy — what's encrypted, what isn't, and why

Thoute is zero-knowledge for the contents of your vaults: every block, page, tag, task, and attachment is encrypted in your browser before it reaches our servers, and your encryption key never leaves your device. Read on for the specifics — and a frank list of where this story isn't yet complete.

How encryption works

When you create a vault, you pick a passphrase.

Your browser derives a 256-bit key from that passphrase using PBKDF2-SHA-256 with 100,000 iterations and a random 16-byte salt — a slow, salted key derivation designed to make brute-force expensive.

That derived key encrypts every block, page, tag, and attachment using AES-GCM (256-bit) before anything is sent to the server.

The server has neither your passphrase nor your derived key, so it cannot decrypt your content. Your encrypted keystore (the passphrase-wrapped key) is stored on the server so you can sync across devices and restore from backup — without your passphrase, the wrapped key is useless.

What the server CAN see

What the server CANNOT see

Where your key lives

What you lose

If you forget your passphrase, your data is unrecoverable. This is the cost of zero-knowledge. We can't reset it. A password manager is strongly recommended.

AI features

Thoute AI is an optional assistant that runs on top of leading commercial language models. You can use it to summarize attachments, ask questions about your notes, draft new entries, and have ongoing chats against the contents of a vault.

Thoute AI is opt-in per vault. By default, no plaintext ever leaves your device.

If you opt in for a vault, the relevant content is decrypted in your browser at the moment you make a request and sent to the model provider. Anything the model returns (summaries, answers, drafts) is encrypted again before being stored in your vault.

We only route AI requests to providers whose terms commit them to not retaining your data and not using it to train future models. The specific provider may change over time as the landscape evolves; the non-retention requirement does not.

You can opt out per-vault at any time. Existing AI-generated content stays encrypted in your vault.

Backup and restore

Backups are encrypted end-to-end. A backup file contains the encrypted Yjs document state, the encrypted attachment blobs, and your encrypted keystore — no plaintext content and no plaintext key material. Restoring requires your passphrase to unwrap the keystore.

Threats this protects against

Threats this does NOT protect against

Honest gaps

We'd rather flag these than have you discover them.

If any of these matter to your use case, tell us — the priority on closing them rises with demand.

What's next