Stealth Addresses
Stealth addresses give you a one-time receiving address that reduces address reuse. Public transfers and network metadata can still link activity. Each stealth address is derived from a root HD key, and only you (with your key) can prove ownership and claim funds sent to it.
What Problem Stealth Addresses Solve
Even if you transact privately through the Railgun pool, there's still a meta-privacy concern: if you always receive funds at the same public address, anyone who knows that address can see what you've received over time.
Stealth addresses fix this. You can give each counterparty a different one-time address. Funds arrive at separate addresses, but how you share, fund, and spend from them can still reveal connections.
How Anon Generates Stealth Addresses
Anon derives stealth addresses using a hierarchical deterministic (HD) key tree rooted in a key derived from your mnemonic:
Mnemonic
└── Stealth HD key (m/purpose'/chain')
├── Stealth address 0 (one-time)
├── Stealth address 1 (one-time)
└── ...
Each address is a standard Ethereum address. Anon watches all derived addresses for incoming transactions.
Creating a Stealth Address
- Go to Receive on the home screen
- Tap New Stealth Address
- Optionally give it a label (e.g., "Payment from Bob")
- Share the address or QR code with the sender
The sender transfers funds to this address as a normal on-chain transfer. There's nothing unusual about the transaction from the sender's side.
Claiming Stealth Funds
Anon automatically monitors your derived stealth addresses in the background. When a deposit is detected:
- A notification appears in Anon
- You can claim the funds — this moves them into your Railgun shielded balance via a shield transaction
- After claiming, the stealth address is marked as used
You can also choose to leave funds unclaimed and spend them directly as a public EOA.
Funding Stealth Addresses
Stealth addresses need a small amount of ETH to pay gas for the claim transaction. Anon handles this via the paymaster service — the claim transaction's gas can be sponsored or paid from your shielded balance, so you don't need to manually fund each stealth address.
Privacy Considerations
- Separate derived addresses reduce address reuse; public activity can still link them to each other or to your main address
- The HD derivation is deterministic — you can always re-derive all addresses from your mnemonic
- For maximum privacy, claim funds into your shielded balance rather than leaving them on the stealth address
QR Flows and Deep Links
You can also receive via a stealth deep link — a URL that encodes your stealth address parameters so that the sender's wallet can generate a fresh address for you automatically. See Stealth Deep Links.