What is stealth address?

A one-time destination address generated from a recipient's published keys, so payments to the same person never share an address on chain.

Not yet verifiedHow we verify

3 min read

In this entry

A one-time destination address generated from a recipient's published keys, so payments to the same person never share an address on chain.

The recipient scans for payments using a private view value and can spend them with the spend key, while an observer sees unrelated outputs. Monero applies this to every transaction by default, and similar constructions exist as opt-in schemes elsewhere. It solves the reuse problem that makes ordinary addresses easy to cluster, but it does not hide amounts or the fact that a transaction occurred. It also means a Monero balance cannot be looked up on an explorer the way a Bitcoin address can, which is the point for a holder and a problem for an auditor. See view key and address.

The problem it addresses is mundane and widespread: publishing one address for donations, invoices, or a payment link means every payment to it is linked to every other, forever.

How it works

The recipient publishes two public values rather than an address: a view key and a spend key. A sender combines those with a random value of their own to derive a fresh one-time address that nobody else can connect to the published pair. The sender also publishes a small piece of data that lets the recipient recognize the payment.

The recipient scans incoming transactions with the private view key, testing each one to see whether it was addressed to them. When one matches, the private spend key can spend it. An observer holding neither key sees an output to an address that appears once and never again.

Two limits are worth stating plainly. Scanning is work: a wallet has to test every candidate output, which is why stealth-address wallets sync more slowly than ordinary ones. And the scheme hides the link between payments, not the payments themselves. Amounts, timing, and the existence of a transaction remain visible unless a separate mechanism hides them, which is why Monero pairs this with ring signatures and confidential amounts.

Ethereum has a standard for the same idea, ERC-5564, which defines how a stealth address is announced and derived so that wallets can interoperate (source: ERC-5564). It is opt-in there rather than the default.

Example

Illustrative. You publish one ordinary address and receive five payments to it. Anyone can see all five, add them up, and watch what you do next. Publish a stealth address instead and the same five payments land at five unrelated one-time addresses. An observer sees five outputs with no visible connection, and only you, holding the view key, can identify them as yours. The five amounts are still public on a transparent chain, which is why this is one layer of a privacy design rather than the whole of one.

Why it matters when you buy

Exchanges deal in ordinary deposit addresses, so this affects what happens after coins leave a venue rather than the purchase itself. Assets that use it by default face restricted listings in several jurisdictions, and the coin pages show which venues currently list a given asset. The block explorer guide covers what a transparent chain reveals by comparison.

Questions

Can I look up a stealth address balance on an explorer?

No, and that is the design. Without the view key there is nothing connecting the one-time addresses, so no explorer can total them into a balance.

Does this hide the amount I received?

Not on its own. It hides the link between payments. Hiding amounts requires a separate mechanism such as confidential transactions or a shielded pool.

Is it available on Bitcoin or Ethereum?

Ethereum has an opt-in standard in ERC-5564. Bitcoin practice relies on generating a fresh address per payment, which achieves less but is supported by every wallet.