Stealth addresses for Solana

Receive without
being seen.

Every payment lands on its own one-time address, then sweeps into your wallet. The person paying you never sees your main wallet, your balance or your history.

New payment link
That doesn't look like a Solana address.
SOL
Send to this one-time address
Waiting for payment · sweeps to
What the chain sees

Your wallet is a public diary.
Shade closes it.

Paste your address anywhere and anyone can read every coin you hold, every trade and every wallet you've touched. Shade puts a fresh address between you and the sender.

Paying you today EXPOSED

fromsender2.5 SOL
toyour main wallet←
The sender now has your main wallet: your balance, your bags, every trade and every wallet you funded.

Paying you with Shade SHADED

fromsender2.5 SOL
to9fRq…v2Lmone-time
The sender sees an address that never existed before and is never used again. Your wallet is not in the transfer.
How it works

One payment. One address. Gone.

A new address is made for each link. When the payment lands, Shade sweeps it to your wallet and the address is never used again.

1 · Share a linkMake a link in the app. It holds a brand-new address.
2 · They pay itThe payment lands on the one-time address, not on you.
3 · It sweeps to youShade moves it to your wallet. The address is retired.
Built for

Get paid like nobody's watching.

Pay links

One link per invoice, tip or trade. Share it in a DM or a post. Every link is a new address.

shadeapp.fun/p/k3Qz…

Auto sweep

No claiming, no second step. When a payment lands it moves to your wallet on its own.

landed → swept

No account

No email, no signup. Paste the wallet you want paid and make a link. Works with any Solana wallet.

SOL · USDC · any SPL token
Developers

Shade any checkout.

One call gives you a fresh address for an order and a webhook when it's paid and swept. Your treasury wallet never shows up on-chain next to your customers.

const link = await shade.links.create({
  to: "<your wallet>",
  amount: "25",
  token: "USDC",
  note: "order 4821",
})

link.address  // fresh one-time address
link.url      // shadeapp.fun/p/…

shade.on("swept", (e) => ship(e.note))