One-time secret link
Create a link that shows your secret — text, a file, or an image — once, then destroys it forever. Encrypted in your browser
How it stays private
Your secret is encrypted in your browser with AES-256. Only the ciphertext is stored; the decryption key lives in the link's #fragment, which browsers never send to a server. When the link is opened, the stored copy is permanently deleted on read — so it works exactly once.
How to use the one-time link tool
- Choose Text and type the secret, or switch to File / image and drop in anything up to 3 MB.
- Pick how long an unopened link survives: 1, 7 (default) or 30 days. File links always expire after 1 day.
- Click Create one-time link — the secret is encrypted locally and only ciphertext is uploaded; the decryption key rides after the # in the link, which browsers never send to any server.
- Copy the link and share it — send any context (“staging DB password”) in a separate message from the link itself.
- The recipient clicks Reveal (destroys it) — the server hands over the ciphertext and deletes it in one atomic step, their browser decrypts, and the link is dead.
Common uses
- Send a database password, API key or .env value over Slack or email without it sitting in searchable history forever.
- Onboard a contractor or new teammate: hand over initial credentials that self-destruct once collected.
- Share a photo or scan of something sensitive — an ID, a signed page, a seed-phrase backup card — as an encrypted file that vanishes within a day.
- Put a one-time link in a ticket or handover doc, so the archive keeps the context but not the credential.
- Use it as a tripwire: if your recipient finds the link already dead, someone else opened it — treat that secret as exposed and rotate it.
Tips & limitations
- Opening the page does not burn the secret — clicking Reveal does. That protects against accidental loads and chat-app link previews, but anyone holding the full link can still be the one who reads it.
- Don't open your own link to check it — that is the one view, and it will be gone before your recipient sees it.
- A file's name and MIME type are encrypted along with its contents, so the server never learns what kind of file it stored — only anonymous ciphertext and an expiry.
- There's no management console — links can't be listed, extended or revoked after creation; an unsent link just expires on schedule.
How it's built & why it's safe
This is the rare tool here that talks to a server, and it's built so the server can't read anything. Your secret is encrypted in your browser with AES-256-GCM under a freshly generated random 256-bit key (Web Crypto); only the ciphertext goes to a Vercel serverless function that stores it in Upstash Redis with a random 10-character ID and your chosen expiry. The key travels only in the link's #fragment, which browsers never transmit. The first read uses Redis GETDEL — an atomic read-and-destroy — so two people can't both fetch it, even in a race.
Related tools: Text Encryptor · Password Generator · QR Code
Further reading: How to share a password or secret safely · Why Toolkit runs entirely in your browser (and why that matters)
Frequently asked questions
How can this be private if it uses a server?
Because the server only ever sees ciphertext. Encryption happens in your browser with a random key that rides in the link's #fragment, and fragments are never included in web requests. Whoever operates the storage could look at the record and still learn nothing but its size and expiry.
What exactly does one-time mean?
The first Reveal fetches and deletes the stored ciphertext in a single atomic Redis operation (GETDEL), so it can only succeed once. Every later attempt gets a 404 — there is no second copy anywhere to recover.
Does just opening the link destroy the secret?
No. The view page shows a Reveal button and nothing is fetched until it's clicked, so an accidental open or a chat app generating a preview won't consume the view. Once someone clicks Reveal, though, it's gone for everyone else.
Can I send a file or an image?
Yes — anything up to 3 MB. Contents, name and type are all encrypted before upload; the recipient gets an inline preview for images and a download button for everything else. File links always expire after 1 day if unopened.
What happens if the link is never opened?
It expires and the ciphertext is deleted from storage automatically — after 1, 7 or 30 days for text (your choice at creation) and after 1 day for files. An expired link shows the same message as a viewed one.
Why does my link say it was already viewed?
Either it expired, or someone — possibly not your intended recipient — opened it. That's actually useful: a burned link is evidence the secret may have been seen, so rotate the credential rather than resending it.
Are there limits on creating links?
Yes: 50 text and 10 file links per hour per IP, and 3 MB per file. Anything larger than 64 KB of ciphertext is treated under the stricter file rules, whatever it claims to be.