@p15/stealth
v0.1.0
Published
Protocol15 stealth layer: key hierarchy + epochs, meta-address, stealth outputs, announce bus + scanner
Readme
@p15/stealth
Protocol15's stealth + discovery layer for Solana. Recipient privacy and scannable history, independent of how amounts are hidden.
- Key hierarchy + epochs (
keys.ts): everything derives from ONE ed25519 wallet signature overp15:keys:v1:<wallet>[:<epoch>]-> scan/spend/elgamal/aes seeds. Bumping the epoch yields a fully independent key set (rotation = compromise containment). - Meta-address (
meta-address.ts): bech32m (p15HRP) ofscan_public || spend_public, shared publicly. - Stealth outputs (
stealth.ts): EIP-5564-style one-time recipient-only ownership (R = spend_pub + t·G),scalarTransactionSignerfor raw scalars. - Announce bus + scanner (
announce.ts,scanner.ts): every action posts an encrypted memo to a fixed anchor; recipients scan one address. View tags make misses cheap. Self-receipts make both sides of a transfer recoverable by scanning. Optional indexer URL.
Built with @solana/kit v6 and @noble/*.
Usage
import { deriveKeys, encodeMetaAddress, scanInbox } from '@p15/stealth';Local development
Not published yet — consumed locally via file: (see
docs/local-dev.md). Base layer, no p15 deps.
npm install
npm test
npm run build # tsup -> dist/
npm run example # examples/announce-roundtrip.tsDevnet only. Not for real funds.
