Chameleon
Start
OverviewHow it worksQuickstart
Concepts
ConceptsPrivacy model
Reference
The routerJavaScript engineContracts and addresses
Practice
Real examplesSelling and exitingSecurity and limitsFAQChangelog
Robinhood Chain · 4663

Selling and exiting

Buying into a stealth address is half the job. This page covers getting out without undoing the privacy you just made.

You hold the key

Each one-time address has a private key that only you can compute. The Scan tab on the Try it page lists your addresses and reveals each key on request. Importing that key into any wallet gives you a normal account holding the tokens.

The address can pay for itself

The router sends gasDust along with every buy, so the address has ETH to approve and sell. With gas around 0.02 gwei the whole exit costs a few millionths of an ETH.

Selling on the curve

From the stealth address, with its private key:

cast send <token> "approve(address,uint256)" <curve> <amount> --private-key <stealth key> --rpc-url <rpc>
cast send <curve> "sell(uint256,uint256,address)" <amount> <minQuoteOut> <fresh address> --private-key <stealth key> --rpc-url <rpc>

The third argument of sell is where the ETH goes. Make it a new address.

CarefulIf you send proceeds to a wallet you have used publicly, you link that sell, and the address behind it, to that wallet. Use a fresh address, and let it sit before moving funds on.

Moving tokens without selling

A plain ERC-20 transfer from the stealth address works the same way, as long as it has gas. Consolidating several stealth addresses into one wallet links them to each other, so only do it when you do not mind.

When the curve has graduated

Once a curve graduates, trading moves to a DEX pool. The stealth address can still swap there with its key. The router only handles the curve phase.

If the dust runs out

Send a few millionths of ETH to the stealth address from any wallet. Remember that this links the address to that sender.