Webcash HD wallet library — bearer e-cash with BIP32-style key derivation, SQLite storage, AES-256-GCM encryption, and full C FFI for cross-platform SDKs
SHA256, Argon2, AES-256-GCM, Ed25519 — extracted from webylib's crypto.rs and split for testability and WASM cleanliness
Procedural macros for webylib: #[wallet_op], #[asset_storage], #[ffi_export]
PGP keyring (issuer fingerprints), identity management. Default to rpgp (pure-Rust, WASM-friendly).
Generic Wallet<A: Asset> — operations, snapshots, encryption, passkey. The flavor crates compose this with their concrete asset types.
HD derivation: legacy Webcash 4-chain SHA256 (frozen) + BIP32/39/44 for RGB and Voucher families
Wire-format types and parsers, mirrored from server's webycash-proto so the wallet and server stay in lockstep
AssetServerClient<A: Asset> — generic HTTP client for the asset-gated server. Endpoints absent at compile time when not applicable to A.
Wallet-side Store trait + SqliteStore (native) + MemStore + IndexedDB. Generic over Asset; partitioned per (contract_id, issuer_fp) for RGB/Voucher.
RGB specialization of the generic Wallet. RGB20 splittable + RGB21 non-splittable. Issuer-namespaced. WASM AluVM.
Voucher specialization of the generic Wallet. Always splittable, issuer-namespaced bearer credits.
Webcash specialization of the generic Wallet. Wire-protocol frozen against webcash.org production.