# Stealth Address 101
**How stealth address works**
> Note: Umbra provides private transaction based on stealth address. We can use this materials to understand how stealth address works.
1. When setting up your Umbra account, users sign a message. The hash of this message is used to generate two private keys—a "spending key" and a "viewing key".
2. The corresponding public keys are both published on-chain in Umbra's Stealth Key Registry contract.
3. A payer uses your the Umbra Registry to look up your two public keys. Separately, the payer generates a random number.
4. The random number is used with the spending public key to generate a "stealth address" where funds are sent. The same random number is used with the viewing public key to encrypt the random number.
5. Using the Umbra contract, the payer sends funds to the stealth address and the encrypted data is emitted as an Announcement event.
6. The receiver scans all Announcement events from the Umbra contract. For each, they use their viewing private key to decrypt the random number, then multiply that number by their spending private key to generate the stealth private key. If the stealth private key controls the address funds were sent to, this payment was for the receiver
7. The receiver can now use the private key to either directly send the transaction required to withdraw funds to another address, or sign a meta-transaction to have the withdrawal request processed by a relayer.
> [source](https://gitcoin.co/grants/821/umbra-privacy-preserving-stealth-payments)
# Refernces
Check [**🔥THIS🔥**](https://app.umbra.cash/faq#how-does-it-work-technical) for more detail (tech)!!
Other references:
* [Open problem: improving stealth addresses](https://ethresear.ch/t/open-problem-improving-stealth-addresses/7438)
* [EIP-5564 Stealth Addresses for Smart Contract Wallets](https://ethereum-magicians.org/t/eip-5564-stealth-addresses-for-smart-contract-wallets/10614)
* [ERC721 Extension for zk-SNARKs](https://ethresear.ch/t/erc721-extension-for-zk-snarks/13237/2?u=vbuterin)