You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Stealth address smart contracts for the Wraith Protocol multichain privacy platform. EVM contracts in Solidity (Hardhat), Stellar contracts in Soroban/Rust, Solana programs in Anchor/Rust, CKB scripts in Rust (RISC-V).
Every payment generates a fresh one-time stealth address so on-chain observers cannot link sender, recipient, or transaction history.
EVM Contracts (Solidity)
Contract
Description
ERC5564Announcer
Minimal singleton that emits Announcement events per ERC-5564. No storage, no access control.
ERC6538Registry
Stealth meta-address registry per ERC-6538. Supports direct registration and delegated registration via EIP-712 signatures with replay-protected nonces.
WraithSender
Atomically transfers ETH or ERC-20 tokens to a stealth address and publishes an announcement in a single transaction. Supports batch sends and optional ETH gas tips.
WraithNames
Privacy-preserving .wraith name registry. Maps human-readable names to stealth meta-addresses with ownership proven via secp256k1 spending key signatures.
WraithWithdrawer
EIP-7702 delegation target for gas-sponsored stealth address withdrawals. A sponsor pays gas on behalf of the stealth address holder.
Stellar Contracts (Soroban/Rust)
Contract
Description
stealth-announcer
Emits stealth address announcement events. No storage.
stealth-registry
Maps addresses to 64-byte stealth meta-addresses with auth-gated registration.
stealth-sender
Atomic token transfer + announcement via the announcer contract. Supports batch sends.
wraith-names
Name registry with SHA-256 hashed storage keys, reverse lookup, and lowercase alphanumeric validation (3-32 chars).
Solana Programs (Anchor/Rust)
Program
Description
wraith-announcer
Stateless event emitter for stealth address announcements via Anchor emit!().
wraith-sender
Atomic SOL transfer + announcement in one instruction. Also supports SPL token sends.
wraith-names
PDA-based name registry. Names are 3-32 chars (lowercase alphanumeric/hyphens), stored as PDA seeds.
CKB Scripts (Rust/RISC-V)
Script
Description
wraith-stealth-lock
Lock script that verifies secp256k1 signatures against blake160(stealth_pubkey) in args[33:53]. Embeds the ephemeral public key in args[0:33] — the Cell itself is the announcement. Delegates to on-chain ckb-auth via exec_cell.
wraith-names-type
Type script for .wraith name registration cells. Validates 66-byte cell data (spending + viewing public keys). Ownership proven by the cell's lock script. Supports create, update, and release (destroy).
Getting Started
Prerequisites
Node.js 22+
Rust toolchain with cargo
Anchor CLI and Solana CLI (for Solana programs)
riscv64-elf-gcc cross-compiler (for CKB scripts)
EVM
cd evm
npm install
npx hardhat compile
npx hardhat test