Three moves. No trail.
Shade runs on stealth addresses: a Soroban pool contract, a meta-address the recipient publishes once, and per-transfer keys nobody can connect.
Publish once
The recipient signs once and publishes a 64-byte meta-address as a data entry on their own account. It reveals nothing about future payments.
Send anywhere
Enter an ordinary G address or a meta-address. Either way, a fresh one-time stealth address is derived and paid. No two transfers share one.
Claim quietly
Your view key detects incoming payments; claiming moves the funds to your account. Keys live in memory only, never written to storage.
Bring your own signer.
Wallets plug in through one connector interface. Stealth keys derive from a single wallet signature, in the extension and over WalletConnect on mobile.
Stealth private keys are re-derived from a wallet signature each session and held in memory only, never written to storage. The encrypted scan cache opens with one signature.
One package.
The demo is a reference client for the stellar-shade SDK: stealth key derivation, the Soroban pool contract, relayer and indexer clients.
Testnet only. The Shade protocol's cryptography is pending external audit. Don't use it with real value.
Read the protocol.
The math, the contract, the CLI and the SDK, written down properly.
How it works
Stealth addresses in plain English, then the exact math: keys, meta-addresses, view tags, the pool contract.
Introduction · Concepts · Architecture · Delivery methods BUILDShip with it
Everything from npm install to a claimed payment: CLI reference, SDK reference, and running your own relayer.
Getting started · CLI · SDK · Relayer TRUSTWhat it hides
The threat model, honestly: what stays private, what stays public, and what is still unaudited.
Security · FAQ & troubleshootingSee a payment disappear.
Two testnet accounts. Five minutes. One vanished trail.