Security

What we can see. What we cannot.

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.

The short answer

What reaches our servers

DataStoredReadable 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
The parameters

How the vault key is made

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.

AES-GCM-256 · 96-bit IV

From passphrase to key

PBKDF2-SHA256 with 600,000 iterations — the OWASP figure for 2023 onward. The salt is random per user and stored with the wrapped key.

PBKDF2-SHA256 · 600000

Without a passphrase

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.

WebAuthn PRF · AES-KW

Why the server can hold your key and still not read your notes

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.

Honest limits

What we do not protect you from

Losing your passphrase

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.

A compromised device

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.

Whoever receives your link

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.

Us, on metadata

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.

The app shows you the ciphertext

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.

Where to write

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) →
Data and the law

The answers a legal review asks for.

Where the data lives

Servers in Brazil. Encrypted daily backups, restore tested — the backup verifies itself after every run.

LGPD and GDPR

You can export or delete everything from your account, with no ticket and no waiting.

Privacy policy →

Subprocessors

Mercado Pago for payments and Google for optional sign-in. Nothing else — no analytics, no ad network, no session recording.

Twenty minutes about your operation.

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