🎭 Interactive

How stealth addresses work

Every Monero payment is sent to a brand-new one-time address. Nobody watching the blockchain can link it to the recipient — but the recipient can still find and spend it. Step through the maths below (simplified, with fake values), then generate a few payments and watch the address change every time.

Recipient public view key A
Recipient public spend key B
  1. 1 · Sender rolls a random secret r

    For this one payment only, the sender picks a random number r and publishes R = r·G in the transaction (the "tx public key").

    r =  →  R =
  2. 2 · Sender derives a shared secret

    Using the recipient's public view key, the sender computes H(r·A) — a shared secret only they and the recipient can know.

    H(r·A) =
  3. 3 · The one-time address

    The payment is sent to P = H(r·A)·G + B. This address appears on-chain — fresh, random-looking, unlinkable to B.

    P =
  4. 4 · Recipient scans and finds it

    With their private view key a, the recipient computes H(a·R). Because a·R = a·r·G = r·A, they get the same shared secret — and recognise P as theirs. Only their private spend key b can spend it.

    H(a·R) =

Values are illustrative (real Monero uses ed25519 and Keccak). Hit New payment a few times: same recipient, a different one-time address P every time — that's why amounts to one person can't be linked.

Learn the fundamentals → Test yourself →

🎓 Graduate from Monero Academy

Create a free account, ace every quiz across all courses, and earn your place on the Graduates wall — with your own Monero address for donations. An account also tracks your progress through the courses, and graduating is the prize for finishing.