Ghostlink docs
Everything about how a link holds money, what we can and can't see, and what to expect when you send or claim.
Overview
A Ghostlink is a private wallet packed into a URL, on Monero or Zcash. When you create one, your browser generates a brand new wallet. Its secret is written into the link after the #. Whoever holds the link controls the wallet, so sending the link is sending the money. The receiver doesn't need a wallet or an account to get it, which makes a link the easiest way to get someone into private money.
There is no account, no server-side wallet and no database of balances. The site is a set of static pages; all the cryptography runs in your browser using the official Monero wallet code and the Zcash librustzcash libraries (via WebZjs), compiled to WebAssembly.
Sending
- 01
Create
Open Send, pick Monero or Zcash and press Create. A fresh wallet is generated locally.
- 02
Load
Send any amount of XMR or ZEC to the deposit address from your own wallet. The page watches the network and shows the deposit as soon as it appears.
- 03
Share
Copy the link and send it however you like: a DM, a text, an email, a QR code.
Every link you create is saved in this browser's local storage, so closing the tab before funding never loses the key. Find them at the bottom of the Send page. Clearing your browser data deletes them, so copy any link that holds money.
Claiming
Opening a link restores its wallet in your browser and scans the chain from the block where the link was created, which takes a few seconds. You then have two options:
- Claim to an address. Paste your own address and the full balance is swept to it in one transaction. The network fee comes out of the amount. Zcash links accept unified, Sapling and transparent addresses.
- Import the wallet. Reveal the recovery words and restore them in a normal wallet, using the height shown next to them. Monero links give 25 words for Cake Wallet, Feather or the GUI. Zcash links give 24 words for Zashi, Ywallet or Zingo.
Once a link is claimed it shows as empty to anyone who opens it later.
The link format
Everything after the # is 37 bytes encoded in Base58:
| Bytes | Field | Purpose |
|---|---|---|
| 0 | Version | 1 for Monero, 2 for Zcash |
| 1–32 | Secret | Monero: the private spend key. Zcash: 256 bits of seed entropy (the 24 words). Everything else is derived from it. |
| 33–36 | Height | Block to start scanning from, so opening a link is fast. |
Security model
Browsers do not include the URL fragment (the part after #) in requests, so our server only ever sees a request for /c. We also send a no-referrer policy so links you click from the page never leak the address you came from.
Things to keep in mind: links you paste into chat apps can be stored in that app's history and previews; browser extensions with access to every page can read the URL; and anyone with your unlocked device can open your saved links.
Timing and fees
Zcash links can be claimed after one confirmation, usually within two minutes. Monero locks every received output for 10 blocks before it can be spent, so a fresh Monero link becomes claimable after roughly 20 minutes. Either way the link can be shared immediately; the claim page updates on its own.
Claiming costs a normal network fee, a few cents at most, deducted from the amount. Ghostlink takes no fee. Claiming a Zcash link builds a zero-knowledge proof in your browser, which can take up to a minute on a phone.
Nodes and privacy
For Monero, your browser talks directly to public nodes. For Zcash, it talks to a public lightwalletd server through a gRPC-web proxy run by ChainSafe. Either way the server sees your IP address and the blocks your wallet downloads, but never your keys, and it cannot tell which outputs belong to you. For extra privacy, open links over Tor or a VPN.
Limits
- Ghostlink is new and unaudited. Use amounts you are comfortable losing.
- A lost link with money in it cannot be recovered by anyone, including us.
- The claim page needs a modern browser with WebAssembly. It works on phones but is faster on a laptop.
- The Zcash wallet is about 60 MB of WebAssembly. Your browser downloads it once and caches it.
- Zcash links are shielded. Send to them from a wallet that supports shielded or unified addresses.
FAQ
Can I take the money back?+
Yes. Open your own link and claim it before the receiver does.
What if two people open the link?+
Both see the same balance. The first claim to land wins, and the link shows as empty afterwards.
Can I add more to a link?+
Yes. Send more to the same deposit address. The link holds the total.
Is this a mixer?+
No. Ghostlink never pools money or moves it between users. Each link is its own ordinary wallet that you fund and someone else sweeps.