Tweet Star
👻

Invisible Encoder

Hide secret messages inside plain text using invisible Unicode characters
🔒
Encrypt
Hide a secret message inside normal-looking text
1 Type your secret message below
2 Type cover text (what people will see — needs a space)
3 Click Encrypt → copy the result
🔑 Your Secret Message
👀 Cover Text (what people see)
⚙ Advanced
🔓
Decrypt
Reveal a hidden message from encoded text
1 Paste the encoded text below
2 Click Decrypt
3 The hidden message appears below
📋 Paste Encoded Text Here
⚙ Advanced

messages encoded · everything runs in your browser

What People Use This For

💬
Secret Messages
Send hidden text through any platform. Looks normal to everyone else.
🔖
Watermarking
Invisibly tag content to trace leaks or prove authorship.
🪙
On-Chain Metadata
Embed hidden data in token names, NFTs, or contract strings.
🎮
ARGs & Puzzles
Hide clues in plain sight for scavenger hunts.
📋
Fingerprinting
Tag text uniquely per recipient to trace leaks.
✉️
Email Tagging
Embed invisible markers to track forwarding.

How It Works

Each letter maps to a unique invisible Unicode character. These are real, valid Unicode — they just have zero visual width. One letter = one invisible character.

1
Map each letter to a unique invisible Unicode character (zero-width joiners, bidirectional marks, etc).
2
Build invisible string from your secret. “LFG” = 3 invisible chars (9 bytes).
3
Embed between words of your cover text. Result looks exactly like the original.
"LFG" + "Invisible Coin"

L → U+2064   F → U+200F   G → U+2060

"Invisible [invisible chars]Coin"

Looks like: "Invisible Coin"

This is roughly 10x more efficient than binary-based tools like StegCloak. One letter = 1 invisible character (2-3 bytes) vs ~8 invisible characters per letter.

Platform Compatibility

Tested across major platforms:

Twitter / X
Telegram
Discord
WhatsApp
Gmail
Reddit
Solana
Ethereum
iMessage
Signal
Facebook
Instagram
LinkedIn
Some CMS

FAQ

Is this actually invisible?
Yes. The characters have no visual representation in any standard font or renderer. The encoded text looks identical to the original everywhere.
Where does the data go?
Nowhere. Everything runs in your browser. No server calls, no cookies, no logging. Works offline. The counter is estimated from site traffic, not message tracking.
How is this different from StegCloak?
StegCloak uses binary encoding + optional encryption — each letter needs ~8 invisible characters. Invisible Encoder maps each letter directly to 1 invisible character. ~10x more compact. Tradeoff: no encryption, A-Z only.
Can someone detect it?
If someone specifically inspects for invisible Unicode (checking string length vs visual length), they can detect something is hidden. But they'd need the scheme to decode it. This is steganography, not cryptography.
Why A-Z only?
26 letters = 26 invisible characters for a perfect 1:1 mapping. Full ASCII would need 95+ invisible chars, many unreliable across platforms.
Token names / on-chain?
Yes. Solana Metaplex metadata has a 32-byte name limit. Check the byte budget table. Whether a specific frontend strips the chars on input needs testing.
Is there an API?
Not yet. The logic is ~20 lines of JS — view source and grab it. If there's demand we'll add a REST endpoint.
Who made this?
An independent developer into steganography and compact encoding. Free, open, no ads, no tracking, staying that way.

Changelog

Feb 4, 2025v3.0
Side-by-side layout. Improved invisible char mapping for URL compatibility. Decrypt fix for blank cover text.
Jan 15, 2025v2.1
FAQ, use cases, usage counter. OG meta tags. On-chain docs.
Nov 18, 2024v2.0.1
Platform compatibility section. Tested 14 platforms.
Oct 3, 2024v2.0
2-byte UTF-8 optimization for O, N, I. Byte budget calculator.
Sep 20, 2024v1.1
Improved embed positioning. Edge case fixes.
Aug 12, 2024v1.0
Initial release. Direct 1:1 mapping with 26 invisible Unicode characters.