Links
A link sends a stock token, USDG or ETH to someone who may not have a ghost, a wallet or any ETH yet. It is a one-time address that holds what you send and a little ETH for gas, handed over as a URL. Whoever opens it claims it. Until then, you can take it back.
Making a link
- 1Open Links
In the app, open Links and press New link, or press Link on a ghost card. Your ghosts must be open in this tab.
- 2Choose what it holds
Pick the ghost that pays, the asset and the amount. A note is optional: it travels inside the link only.
- 3Sign twice
The ghost first sends the link a little ETH for its gas, then the asset. A link that holds ETH takes one transaction. Each one opens the confirmation sheet.
- 4Send it
Copy the link, share it, or show its QR code. Send it the way you would send cash: privately, to one person.
What a link is
Each link has its own address and key. The key of link n is derived from your ghost root, on a separate branch from your ghosts: keccak256(root ‖ "ghostdex link" ‖ n). Handing over one link's key reveals nothing about your ghosts, your root or your other links, and you can derive any of your links again on any device that opens your ghosts.
The link looks like ghostdex.app/claim/NVDA#k=…. The path names the asset so a preview can show it. The key sits after the #, and browsers never send that part to a server, not in the request and not in a Referer. The amount and the note are not in the path either: the preview card shows only the asset.
Gas included
The link carries about ten times what its claim costs at the current gas price, and never less than 0.00002 ETH. A claim is one token transfer and one ETH transfer, around 100,000 gas. The ETH the claim does not spend goes to whoever claims, so they start with a little gas of their own.
Claiming
The link opens a page that reads what the address holds and shows it, with the note if there is one. The key is taken out of the address bar at once and kept in that tab's session storage until the claim is done. The person claiming picks where it goes:
| Claim to | What the explorer shows |
|---|---|
| A ghost | The link paying a ghost. The claimer's main wallet stays out of it. A new ghost is the default. |
| My wallet | The link paying that wallet, directly. |
| An address | The link paying that address, such as an exchange deposit. |
The claim is signed by the link's own key, in the tab. The claimer's wallet approves nothing and pays no gas. Opening ghosts to claim into one asks the wallet for one signature, which is not a transaction.
Taking a link back
On Links, a link that is still waiting has Take back. It sends what the link holds and the ETH left for gas back to the ghost that paid for it, and the link stops working. A link that has been claimed shows Claimed. Links made on another device come back with Find them, which looks at the next link addresses for anything they still hold.
What a link does not hide
- Whoever holds the link holds the key. Anyone who sees it can claim it before the person it was meant for. There is no password and no expiry.
- Both ends are on the chain. The explorer shows the ghost that paid the link and the address it was claimed to. You can see where your link went, and the person who claims it can see which ghost paid.
- A link paid from your main wallet shows your address, and so does wherever it is claimed to.
- The relay sees the link's address when the page reads it, like any other address your tab reads. It stores none of it.
A link is not a contract and holds nothing on Ghostdex's behalf. It is an ordinary address with its key in the URL. Ghostdex cannot cancel a link, recover one that was claimed by the wrong person, or see what a link holds unless the page is opened.