Stealth addresses for Solana

Send to anyone. Leave no trail.

Stealth addresses for Solana. Every payment lands in a fresh one-time address only the receiver can open. No pool. No contract. No custody. Just math.

No pool No contract No custody Receiver hidden
sender 7xKq…Fq9T… 3mZr…Hc2w…9Edo… receiver
How it works

Three steps. Zero shared accounts.

Ed25519 math, the same curve Solana wallets already use. The idea behind Ethereum's EIP-5564, rebuilt for Solana.

  1. 01 · RECEIVER

    Publish a meta-address

    Sign one message with your wallet and get a meta-address. Post it anywhere: a bio, an invoice, a QR code. It never changes.

  2. 02 · SENDER

    Derive a one-time address

    The sender's browser mixes fresh randomness with the meta-address and gets an address nobody has seen before. The SOL goes there, with a short public note.

  3. 03 · RECEIVER

    Scan and claim

    The receiver's browser checks every note with a private view key. Matches belong to them, and only they can sign for those addresses and move the funds.

  • @HANDLES

    A name instead of a key

    Claim a short name by burning $STEALTH and share stealthprotocol.online/@name. Payments to it still land in fresh one-time addresses.

  • PRIVATE NOTES

    A message only they can read

    Attach up to 120 bytes to a payment. It is encrypted with the payment's shared secret, so only the receiver or their view key can open it.

  • EXCHANGE WITHDRAWALS

    A fresh address per withdrawal

    Exchanges cannot add a memo, so your inbox derives withdrawal addresses itself. Use a new one each time and claim them all from one place.

Stealth Pay

Get paid privately

Payment links, invoices and a button for your website. Every payer pays a fresh one-time address, so your customers never see your other income.

  • SOL, USDC, USDT

    Any SPL token

    Get paid in SOL, USDC, USDT or another standard SPL token. 0.0025 SOL travels with each token payment so you can claim it into a brand-new wallet, and you get it back when you do.

  • LINKS AND INVOICES

    Ask once, share anywhere

    A link for anyone to pay, or an invoice with a number and a paid or unpaid status. Add a pay button to your site with a few lines of HTML: no script, no tracking. Make one.

  • BUILT IN THE OPEN

    For your app too

    Every format, with test vectors, is in the spec, so any wallet or app can send and receive private payments.

Compared

Privacy without a pool

Mixing pools hide links by holding everyone's money in one contract. Stealth addresses never hold anything: each payment is an ordinary transfer to a new address.

PropertyStealth ProtocolMixing poolNormal transfer
Who holds the fundsOnly the receiver, from the first blockA pool contract, until withdrawalThe receiver
Pool or contract riskNone: there is no contractContract bugs, relayers, admin keysNone
Sender ↔ receiver link visible on-chainNo: funds land at an unlinked one-time addressHidden in the pool's crowd; timing can leak itYes, directly
Needs an on-chain programNo: a system transfer plus a memoYesNo
Can be frozen by an operatorNo: there is nothing to freezeIf the contract has admin controlsNo