End-to-end encryption makes sure no one but you can read what you send. It's on from the start.
Everything you send is encrypted on your device before it's sent.
Only you know your recovery key. Your encryption key is stored on your devices, and the server keeps it only in a form encrypted with your recovery key or another of your keys. Neither the server that stores your data nor the people who run this service can read it.
The exception: while you allow an AI agent to read your content, our server keeps your encryption key so the agent can use it. During that time, the server can decrypt your data that isn't shared (except locked notes). Shared notes and lists still can't be decrypted by the server, except shared ones for which the owner or an admin has turned on "Allow agents to read contents" (while it's on). See Agents for details.
For the full list, see the technical details.
⚠️ Important
If you lose your recovery key and no device still has your encryption keys, no one, including the operator, can recover your encrypted data. This is what ensures that no one but you can decrypt it. Keep your recovery key somewhere safe, such as a password manager. Don't show it to anyone.
Shared notes and checklists are end-to-end encrypted too. Only the devices of the people you share with can decrypt them. The server stores only encrypted keys, so the operator can't read the content. For exceptions, see "Exceptions and notes" below.
On a device without your protection key, you'll be asked to get it before shared notes and checklists can be shown. Approve from another device or enter your recovery key.
For the details of how keys are exchanged, see the technical details. For how to share and what each role can do, see Sharing notes and checklists.
Keep things you especially want to protect, such as passwords or account numbers, in locked notes. You need your PIN each time you open one. For how to use them, see Locked notes.
The key for locked notes is encrypted with a key made from your PIN and your protection key. The server can't decrypt your protection key, so the operator can't open them by guessing PINs. The server checks whether your PIN is correct and counts wrong attempts, so even someone who steals your device gets only 10 tries. In case you forget your PIN, a copy encrypted with a key derived from your recovery key is also stored. If you turn on passkey unlock, a copy encrypted with a key made from your passkey is stored too. The value used to make that key never leaves your device, so the server can't decrypt it.
No. Keys are derived from your recovery key on your device, and all encryption and decryption also happen on your device. The server only receives encrypted data.
The server stores a value used to derive the key (the salt), data used to check that a key is correct, and your keys encrypted with a key derived from your recovery key.
No. Even looking directly at the server's database, all you'd see is meaningless random characters. However, as shown in the table above, information such as when you sent items, how many, and their size can't be hidden.
The exception is while you allow an AI agent to read your content. During that time, your encryption key is stored on our servers so the agent can read and write your data. Because we hold your key, the operator can decrypt your data that isn't shared (except locked notes).
Access to contents turns off automatically when an agent doesn't use it for 14 days, or 90 days after you allow it. When no agent has access to contents, the stored key is deleted right away, and the next device that opens the app renews your encryption key. Data you save after that is encrypted with the new key, so the operator can't decrypt it.
The weekly database backup (kept for 90 days) and the database's restore history (up to 30 days) still contain an encrypted copy of the key from before it was deleted. With these and a secret value on the server, the operator could decrypt only the data you saved before a device renewed the key.
Shared notes and checklists stay unreadable even then (except those with "Allow agents to read contents" turned on), because their keys are encrypted with your protection key, not your encryption key. This keeps one member's settings from exposing what everyone shares. The protection key is stored on the server encrypted with another key derived from your recovery key. So when you enter your recovery key, your protection key is restored too.
No. The new device and the approving device each create a temporary key pair. The approving device encrypts your encryption key with a key derived from both key pairs before sending it. The server only relays the data and can't decrypt it.
The 6-digit code appears only on the new device, and you can't approve without entering it on the approving device. The code also checks that the server hasn't swapped in a different device along the way. If the code you enter is wrong, the request is canceled and you'll need to start again on the new device.
Someone who knows your sign-in details can't get their device approved unless you can see the code on its screen. Never enter a code someone else gives you. The approval request also shows the requesting device's type, approximate location, and time. The device name is chosen by the requesting device itself. If you don't recognize the type or location, press "Deny". Approvals are also recorded in your notifications.
Yes. On the first screen, select "Choose my own". It must meet these three requirements:
Several words separated by spaces make a key that's easy to remember and hard to guess.
No. Encryption can't be turned off, and everything you save is encrypted. However, files sent from Shortcuts aren't encrypted. See below for details.
In Settings → Encryption, press "Check" next to "Recovery key" and enter the key you saved. The app tells you whether it's correct. Checking doesn't change your keys. If you lost your recovery key or someone may have seen it, press "Change" in the same place on a device that has your keys to create a new recovery key. The old recovery key stops working, but your other devices keep working.
In Settings → Encryption, tap "Renew" next to "Encryption key". Use this if you lose a device, for example. After you renew it, data you save from now on is encrypted with a new key. Data you saved earlier stays readable on all your devices. Access to contents is turned off for all agents.
Your other devices get the new key the next time they open the app. The new key is encrypted with your protection key and kept on the server, so on a device without the protection key, enter your recovery key or approve it from a device you use.
Add a passkey under "Passkeys" in Settings → Encryption, and on a new device you can sign in and unlock in one step with your fingerprint or face, using "Sign in with a passkey" on the first screen (no recovery key needed). It works on devices your passkeys sync to. After signing in, you can also unlock with "Unlock with a passkey". You won't see these options in browsers or password managers that don't support unlocking with a passkey.
To create an account, sign in with Google, GitHub or X. If you lose your passkey, you can still sign in with them.
The server stores the passkey's public key, and your encryption key and protection key encrypted with a key derived from the passkey. The value used to derive that key never leaves your device, so the server can't decrypt them. When you sign in, the server verifies the passkey's signature.
It can't read encrypted data. To prevent anything from being sent unencrypted, it also can't send anything new or write notes. Once you approve it from a device you use or enter your recovery key, you can use it as usual.
On the decrypt screen, turn on "Don't save keys on this device (shared computer)". You can also change it in Settings → Encryption under "This device". When it's on, the encryption key, search data, notes waiting to be sent and drafts aren't saved on the device, and they're deleted when you close the tab. Closing the browser signs you out. Each time you open the app, unlock with approval, a passkey or your recovery key.
Notifications on this device don't show contents. Notes you write while offline are lost if you close the tab before they're sent.
If your browser is set to reopen the pages you had open, or if you added the app to the Home Screen on iPhone or iPad, you may stay signed in after closing it. Even then, you're signed out 12 hours after you last used the app. When you're done, sign out.
Your device decrypts the incoming ciphertext before showing the notification. Devices that don't have your keys show only "🔒 New item", without the content.
Text and URLs are stored encrypted. Because Shortcuts can't perform the encryption, the content reaches the server unencrypted, but the server encrypts it as soon as it arrives and doesn't store the unencrypted content.
Files aren't encrypted.
A key is derived from your recovery key with PBKDF2 (SHA-256). It uses 300,000 iterations, or 1,000,000 for a recovery key you choose. This key is used to restore your encryption key and protection key. Data is encrypted with AES-GCM (256-bit). Keys are stored in your device's browser. On a device with "Don't save keys on this device" turned on, they're kept only in the open tab. These are standard cryptographic techniques also used by banks and government agencies.
For device approval, the new device and the approving device each create a temporary key pair (ECDH P-256). Both devices derive the same key from the two key pairs with HKDF, and that key is used to encrypt your encryption key with AES-GCM before it's sent. The 6-digit code is derived from both devices' public keys and random values. The approving device checks the entered code on the device itself. The code is never sent to the server.
Sharing uses a key pair for each user (RSA-OAEP, 3072-bit). The key of a note or checklist is encrypted with the recipient's public key before it's sent.
A recovery key created by the app is 24 characters long (120 bits), using 32 characters that exclude the easily confused I, L, O and U. When you enter it, hyphens, spaces and letter case are ignored.
For the key hierarchy, what the server stores and more, see the technical details.