Sawa Toolkit

Primitives extracted from Sawa Wallet. Phone-first identity, compliance, and private financial rails for the Solana ecosystem.

What's Inside

@sawa/phone-resolver

Phone, specialized username, or email → Privy DID → Solana address. Phone is live first (easiest for emerging markets); username/mail as easier initial targets. Includes usePhoneResolver() + resolveIdentifier().

TypeScript • Privy
View package →
@sawa/compliance-kit

Full KYC/AML suite for Africa: NIN/BVN verification, Prembly integration, sanctions screening, tiered limits, and country-specific compliance configs (10+ countries).

TypeScript • Production extracted
View package →
Private Rust Rails

TreasuryManager, Helius deposit watcher, auto-rebalancing, Jupiter swaps, and phone-hash processing. Not open-sourced — powers our production on/off-ramp with no third-party dependency.

Rust • Internal only
Used in production • Not public

Installation

npm install @sawa/phone-resolver @sawa/compliance-kit

TypeScript packages work with any Privy + Solana project.

The Rust treasury primitives remain private/internal for now (we run our own rails).
View Full Repository on GitHub

Built for Solana Foundation Developer Tooling grants • Ready for integration into consumer apps across Africa