How it works
We built this so that trusting us isn't required.
- 01
A key is born in your browser
When you create a paste, your browser generates a random 256-bit key with the Web Crypto API. It never leaves your device except as part of the link you share.
- 02
Encrypted before upload
Your text, title and syntax choice are compressed and encrypted with AES-256-GCM. The key is derived with HKDF-SHA256. Add a password and it is mixed in via PBKDF2-SHA256 with 600,000 iterations.
- 03
The key lives after the #
Browsers never send the URL fragment (everything after #) to the server. We receive only ciphertext — we couldn't read your paste even if we wanted to, or were forced to.
- 04
Gone when it should be
Pastes expire automatically and are purged hourly. Burn-after-reading pastes are atomically deleted the moment they are fetched, and the viewer is asked first so link previews can't destroy them.
- Stored on the server
- Ciphertext, IV, salts, size, expiry, burn & password flags, an optional view count, and a SHA-256 hash of your delete token.
- Never stored
- Plaintext, titles, keys, passwords, IP addresses, user agents, cookies, or analytics.
- Third parties
- Only Cloudflare Turnstile, on the create page, to keep spam bots out. It never sees your paste, and we don't send it your IP. Viewing a paste loads nothing from third parties. Fonts and code are self-hosted; a strict Content-Security-Policy blocks everything else.
- Your history
- “My pastes” lives in this browser's local storage only. Turn it off per paste, or clear it any time.
Caveat: end-to-end encryption protects against the server, not against a compromised device, or anyone you share the link with.