From plaintext to nothing

How it works

The server stores encrypted bytes. The browser creates and keeps the key.

Six deliberate steps

The lifecycle of a secret

Encryption and decryption stay on the edge. Only access rules and ciphertext touch the server.

01

Key generation

Your browser generates a 256-bit AES-GCM key with the Web Crypto API.

02

Local encryption

Your message is encrypted locally with a random IV before upload.

03

Ciphertext only on server

The server receives ciphertext, IV, expiry settings, and optional hashed gates — never plaintext.

04

Key hidden in URL fragment

The generated link puts the decryption key after #. URL fragments are not sent in HTTP requests.

05

Server-side checks on open

When the recipient unlocks the note, the server returns ciphertext once the expiry, password, and view-limit checks pass.

06

Local decryption + destruction

The recipient browser decrypts the note locally and the server marks the encrypted row as consumed.

The full link is the secret

The fragment after # contains the decryption key. Only send it to the intended recipient.

Create a note