Encryption
AES-GCM with a 256-bit key, through the browser's Web Crypto API. GCM authenticates as it encrypts: a tampered block fails to decrypt instead of returning garbage.
Zero-knowledge is not a promise we make — it is a consequence of where the key lives. This page says exactly where, with algorithm names and parameters, so you can check instead of trusting.
| Data | Stored | Readable by us |
|---|---|---|
| Vault note content | AES-GCM-256 ciphertext + IV |
No — we have no key |
| Vault note title, tags, size | Not stored. The field does not exist. | No |
| Ephemeral note content | Ciphertext, erased on first read | No — the key is in the link fragment |
| Short link destination | Plain URL | Yes — we have to redirect you there |
| Link password | PBKDF2-SHA256 hash |
No |
| Who opened a link | Salted IP hash, never the address | Timestamp and device — by design, it is the feature |
| Your email | Plain — we need it to send the sign-in link | Yes |
| 2FA secret | Encrypted at rest (Fernet) | Only the running process, to check a code |
| Card number | Never reaches us. Mercado Pago handles it. | No |
AES-GCM with a 256-bit key, through the browser's Web Crypto API. GCM authenticates as it encrypts: a tampered block fails to decrypt instead of returning garbage.
PBKDF2-SHA256 with 600,000 iterations — the OWASP figure for 2023 onward. The salt is random per user and stored with the wrapped key.
A passkey can unlock the vault through the WebAuthn PRF extension: the authenticator derives a secret that never leaves it, and that secret unwraps the key. No master password to remember or to lose.
What the server stores is the vault key wrapped by another key — and the wrapping key is derived in your browser, from your passphrase or your passkey. We hold a locked box and no way to open it. This is what lets you sign in on a new device and recover your notes without us ever being able to read them.
There is no recovery. If nobody but you can read your notes, then nobody but you can restore them either — the two are the same property. Register a second unlocker (another device or a passkey) while you still can.
Encryption happens in your browser. Malware on the machine that types the passphrase sees the note in the clear, and no server-side design changes that.
An expiring link with a password limits who opens it and for how long. It does not stop the person who legitimately opened it from taking a screenshot.
We cannot read a note, but we do know that an account exists, when it syncs and how many notes it holds. Content is invisible to us; the shape of the usage is not.
Inside the vault there is a button that displays the exact encrypted block the server holds for that note. Open your browser's network tab next to it and compare. A security claim you cannot check is a security claim you should not accept — including ours.
security@santela.com.br — We answer within one business day. No bounty program yet — saying so is more useful than implying one exists.
security.txt (RFC 9116) →Servers in Brazil. Encrypted daily backups, restore tested — the backup verifies itself after every run.
You can export or delete everything from your account, with no ticket and no waiting.
Privacy policy →Mercado Pago for payments and Google for optional sign-in. Nothing else — no analytics, no ad network, no session recording.
Tell us how many stores you have and what you use today. We show what exists, say what does not, and you decide.
Talk to us