SecretNoteprivate correspondence, opened once

Some things should be read once, then forgotten.

Write it here and it gets sealed on this device with AES-256 before anything leaves the page. The key that opens it rides in the link itself, after the #, a part of the address browsers keep to themselves. Whoever opens it first is the only one who ever will.

0 of 30,000 bytesSealed before it is posted
Hold on: this reads like a wallet recovery phrase. Those words are the wallet itself. Whoever receives them can empty it, and no genuine helpdesk will ever request them. Please don't post this to anyone.
AES-256-GCM, a fresh key every time

Your letter is sealed.

Hand this link to one person.

The words in red are the key. Nobody keeps a spare, us included, so if this link is lost the letter is lost with it.

A letter has arrived for you.

Asking the post office about it…

How a letter travels

We keep the locked envelope. The key is never in our hands. You can confirm it yourself: open your browser's network tools, seal something, and look at what gets sent. It is unreadable gibberish.

  1. Sealed at your desk

    Your browser invents a random 256-bit key and seals the letter with AES-GCM through the Web Crypto engine built into every modern browser. No extra libraries, no readable text on the wire.

  2. Posted as a locked envelope

    We receive only the sealed bytes, a random nonce and an expiry time. The key is written into the link after the #. That fragment stays in the browser and is never part of a web request.

  3. Opened, then shredded

    When the recipient breaks the seal, the post office hands over the envelope and deletes it in the same motion. Anyone arriving later finds an empty box. Letters nobody opens are destroyed at their deadline.

For the curious. key = 32 random bytes, base64url, placed in the fragment. iv = 12 random bytes. ct = AES-256-GCM(key, utf8(letter)). With a passphrase: key′ = key XOR PBKDF2-HMAC-SHA256(passphrase, random 16-byte salt, 600,000 rounds, 32 bytes), so the link on its own opens nothing. Posting: POST /api/post {ct, iv, salt?, ttl} returns an id. Collecting: GET /api/deliver?id= returns the envelope and deletes it. Link shape: https://host/#id.key. The sealing code is short and readable at /seal.js, and this page's security policy only lets it talk to its own server.

Questions people write in with

Can you read what I write?

We can't. The key never reaches us, so the stored envelope is meaningless to us. What we can see: how big the sealed letter is, when it was posted, when it expires and when it was collected, plus the IP address any web server sees when you load a page. We run no trackers or analytics.

Could a letter vanish before it's opened?

It could. Envelopes sit on a small server disk, and a restart or redeploy may clear them, so a letter can expire early. Think of this as a courier for short messages, not a place to store things.

My chat app shows a link preview. Did that open it?

No. Previews load the page, not the letter. The envelope is only collected when a person breaks the seal, and the key after # is never sent to any server, including the chat app's. Some messengers do keep the full link in history, which is why a passphrase sent through a different channel is a useful second lock.

Is this a safe way to send a wallet recovery phrase or private key?

Please don't send those to anyone, by any method. Those words are the wallet, and we will never request them from you. If someone asks you to "validate", "restore" or "sync" a wallet by sharing them, you are talking to a thief.

How long can a letter be?

Up to 30,000 bytes of text, which is roughly 30,000 plain English characters and fewer if you use emoji. The post office refuses anything above 32 KB once sealed.

The recipient was told the letter is gone. What happened?

Somebody opened it first (possibly you, while testing), you recalled it, it reached its deadline, or a restart cleared it. If neither of you opened it, assume a third party saw the link, and change whatever secret it held.

With care, the SecretNote post office