A contact form nobody else can read
A mover, a lawyer, a clinic puts their link on the site. Addresses and case details arrive sealed, and stay sealed in every database they pass through.
Sealed notes
Your ONE key comes with a lock. Hand it to anyone. They seal a note in their own browser, we carry it, and only your key opens it. Not us, not our database, not our agents.
No key yet? Make one in a minute. It is born on your device and nobody else holds it.
Try it here
This runs the real code, in your browser. It makes a practice key from 32 random bytes, the same derivation your real lock comes from, and seals your note with it.
Nothing is sent. Nothing is stored. Reload the page and the practice key is gone, and with it any way to open what you sealed. That is the point.
age tool reads it.The practice demo runs in your browser once the page has loaded.
It makes a throwaway key, seals a note to it, then opens it. Nothing is sent.
The practice demo runs in your browser once the page has loaded.
It makes a throwaway key, seals a note to it, then opens it. Nothing is sent.
How a note travels
Plain words exist at two places only: the writer's screen and yours. Everything in between holds a sealed block.
Types the note and seals it with your lock, before anything leaves.
The spare key is under the blue pot. Standard age. Only your opener turns it back into words.
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBq… Opens it with your key, which never left your device.
The spare key is under the blue pot. On 15 October 2026 we sent a sealed note through one.ie and read it back out of our own production database. The stored note was byte for byte the sealed block that was sent. The words appeared nowhere in the row. The right key opened it. A wrong key was refused.
What people use it for
A mover, a lawyer, a clinic puts their link on the site. Addresses and case details arrive sealed, and stay sealed in every database they pass through.
"Send me the key" without it living in a chat history forever.
Seal it to yourself or your family. It opens from the paper, years from now, on a device that does not exist yet.
An agent seals its report to you, so the platform it runs on sees noise. Hand an agent a credential only its machine can open.
Ways to send
From a link a stranger opens to a line in a script. The lock is the same; so is the result. If you would rather not trust our page to do the sealing, the terminal and the age tool skip it.
Press Share link on /keys and post it anywhere. Whoever opens it gets one box and one button. Their browser seals the note before anything is sent.
https://one.ie/write#ws=tony In /messages, turn on the lock in the composer and name who it is for, or paste their age1… lock. The note is sealed for them and for you, and signed when your key is open.
tony Seal turns a note into a block for any lock you paste, right on the page. Copy the block and send it however you like: email, chat, a printout.
https://one.ie/keys Looks up the lock tony published, checks its signature on your machine, seals, and drops the block in the inbox. No web page involved.
echo "the gate code is 4471" | npx oneie write tony The lock is standard age. Seal with the free age command and deliver the block any way you want. It opens on one.ie with the same key.
age -a -r "$(npx oneie key lock-of tony)" note.txt > note.age Seal anywhere, then post the block. The door takes only a sealed block: plain text is refused as not_sealed.
LOCK=$(npx oneie key lock-of tony)
SEALED=$(echo "report ready" | age -a -r "$LOCK")
curl -s https://one.ie/api/write -H 'content-type: application/json' \
-d "$(jq -n --arg s "$SEALED" '{ws:"tony",sealed:$s}')" Ways to receive
Your key comes from your 24 words, so it works on any device you restore it on, and in any tool that reads age. If ONE disappeared tomorrow, your notes would still open.
A sealed note arrives as a lock in your Sealed notes. Press Open with my key. It opens in this browser and nowhere else.
https://one.ie/sealed/inbox The CLI opens a block with a key file you made with one key new, or with your words in an environment variable. It never reads the key from stdin.
npx oneie key open note.age --key ./my.key Take my key on /keys saves the opener as a file age reads. From then on age opens your notes with no ONE code running.
age -d -i one-message-key.txt note.age Signed or anonymous
age keeps the writer anonymous. That is what lets anyone reach you from a link. So a name on a note proves nothing on its own.
A writer who has a ONE key signs inside the sealed note. When you open it, your browser looks up the lock that name published, checks the signature against it, and only then says checked. One limit, stated: ONE still vouches that the name owns the signing address.
The writer had a key, signed inside the sealed note, and the signature matches the lock tony published. Your browser checked it.
No signature inside. Anyone can write one. A typed name arrives as "Sam (not verified)"; no name arrives as "Someone with your lock".
Someone claimed a name they cannot sign for. Treat it as a stranger.
The writer signed it for someone else, and it reached you.
What it is, and what it isn't
The sealing itself is strong: age on X25519 and ChaCha20-Poly1305, the same curve Signal uses. The difference is everything around it. For a live chat with someone you know, use a chat app with ratcheting keys. For being reachable by anyone, this does things it can't.
The threat model
Your notes are kept, not forgotten. Lose your phone, restore your 24 words on a new one, and every note opens again. That cuts both ways, and the right column says how.
The 24 words that open your ONE wallets also give you a lock. Hand it out. Put it on your site. A lock is meant to be given away, because the only thing it can do is close.