“Zero-knowledge” is printed on a lot of security products, often without explanation. The idea is simple: the company that stores your data cannot read it, because it never has the key. This guide explains how that works in practice, using OnlyWallet as the worked example, and is honest about what zero-knowledge does and does not protect.
The short version
Your data is locked on your own device before it is sent anywhere. The key that locks it is made from your master password, which never leaves your device. The server stores locked boxes. It can keep them safe and hand them back to you, but it cannot open them.
The trade-off follows directly: if the company cannot open your boxes, it also cannot help you open them if you forget your password. That is not a missing feature. It is the point.
How a password becomes a key
A password like Mango-Rickshaw-42-Monsoon is not a good encryption key on its own. It is too short and too predictable. So the app runs it through a key derivation function, which turns it into a long random-looking key.
OnlyWallet uses Argon2id, the current recommended choice for this job. Argon2id is deliberately slow and memory-hungry. On a phone it uses 64 MiB of memory and three passes for every attempt. That costs you a second or two when you unlock. For an attacker trying billions of guesses, it makes every guess expensive.
A random salt is mixed in, so two people with the same password still get different keys, and precomputed guess lists are useless.
The derived key is not used for your data directly. It unwraps a second, fully random 256-bit vault key, and that vault key encrypts everything. This layering is why changing your master password is instant: the app only re-wraps the vault key under the new password. Your items and files do not need to be re-encrypted.
How the data is encrypted
Each piece of data is encrypted with AES-256-GCM, a widely used authenticated cipher. “Authenticated” matters: it does not only hide the data, it also detects any change. If someone edits a single byte of the stored ciphertext, decryption fails instead of returning tampered data.
OnlyWallet goes one step further. Each encrypted record is bound to its context, such as its item id and its visible details like a due date or amount. If a record is copied onto another item, or a due date is changed on the server, the item stops opening rather than quietly showing wrong information.
Files work the same way. Each attachment gets its own random key, is encrypted on your device, and is stored in your own Google Drive under an opaque name like <id>.enc. Drive sees that a file exists and how big it is, not what it is.
The recovery phrase
Because nobody can reset your password, there has to be a second way in that you control. In OnlyWallet that is a 24-word recovery phrase, shown once when you create your vault. You confirm three of the words to prove you wrote it down. It is never stored by the app.
The phrase unlocks a separate wrapped copy of your vault key. With it, you can set a new master password on any device. Treat it like the key to a bank locker:
- Write it on paper. Do not screenshot it or store it in notes, email or cloud storage.
- Keep it somewhere safe at home, and tell one trusted person where it is.
- Never type it into a website or send it to anyone, including support.
What the server can and cannot see
Zero-knowledge rarely means the server sees nothing. Some details have to stay readable so the app can sort lists, send reminders and sync between devices. A trustworthy service tells you which ones. Here is OnlyWallet’s list.
| Encrypted (the server cannot read it) | Readable (needed for features) |
|---|---|
| Every field you fill in, such as document numbers, account numbers, passwords, PINs and CVVs | Item titles, unless you turn on “Mark title private” |
| Notes, custom fields and text read from scans | Category, template type and tags |
| File contents and file names | Dates such as expiry and due dates, and amounts |
| Titles marked private | Payment status and payment dates |
| Shared space names and member display names | Family profile names and dates of birth |
| Your sharing private key | Reminder dates, file sizes, member email addresses in shared spaces |
If a title would reveal too much, such as “Loan from Uncle Ravi”, turn on Mark title private. The title is then encrypted and lists on the server show only the category.
Reminder notifications are kept generic, such as “A payment is due soon”, so titles and amounts never appear in a push message.
What zero-knowledge does not protect against
Encryption on the server side is only half the picture. Be clear about the rest:
- A weak master password. If someone steals the stored encrypted data, they can try guessing your password offline. Argon2id slows this down, but a short or common password still falls. OnlyWallet requires at least 10 characters and rejects passwords rated Weak.
- A compromised device. Malware that records your keyboard or screen sees what you see.
- Phishing. Typing your master password into a fake site gives it away. OnlyWallet’s web app lives only at app.onlywallet.in.
- People you share with. Anyone you share a document or space with can read it, and can keep a copy.
On the device side, OnlyWallet locks automatically when the app is in the background and after a period of no activity, clears the key from memory on lock, blocks screenshots on Android, clears copied secrets from the clipboard after 30 seconds, and slows down repeated wrong passwords. The full list, and the known limits, are on the security page.
Sharing without breaking zero-knowledge
If the server cannot read your data, how can you share it with your spouse? With public key cryptography. Each OnlyWallet account has a key pair. To add someone to a family space, your device locks the space’s key with their public key. Only their device can unlock it. The server passes the locked key along without being able to use it.
To make sure the public key really belongs to the person you mean, both of you compare a short fingerprint of six groups of characters, in person or over a call. The app asks you to confirm “The fingerprint matches” before it shares the key. See family sharing and emergency access for how this is used.
How to tell if a product is really zero-knowledge
Ask these questions of any vault or password manager:
- Can the company reset my password and give me my data back? If yes, it holds a key.
- Is there a published list of what is encrypted and what is not?
- Which key derivation function is used, and with what settings?
- Is encryption done before upload, on my device?
- What happens to my data when I delete my account?
OnlyWallet answers these on its security page, and its password manager and document wallet pages show the features built on top.
Try it free
OnlyWallet is free, with no plans or trials. Open the web app, sign in with Google, choose a strong master password and write down your recovery phrase. Android and iPhone apps are coming soon; see the download page.