spb/os-vault Public
Self-custody, multi-chain crypto wallet for macOS. One recovery phrase, six chain families, zero API keys — nothing leaves your Mac.
Swift 96%
Shell 3.4%
Makefile 0.6%
1<!--2 ROADMAP.md3 OS Vault45 Author: Simon-Pierre Boucher6 Mail: contact@spboucher.ai7-->89# OS Vault — Multi-chain / multi-stablecoin roadmap1011v1 is Base-only (Sepolia default, mainnet behind the network switch) with a12data-driven token registry (USDC default + EURC, DAI, USDT). The goal is broad13stablecoin coverage across chains. Target matrix (user-provided, 2026-08-05):1415| Stablecoin | Main chains |16|---|---|17| USDT | Ethereum, Tron, Solana, BNB Chain, Avalanche, Arbitrum, Optimism, Polygon, TON, Aptos, Celo, EOS, Near, Tezos, Algorand, Cosmos (Noble), Kaia, Ink… |18| USDC | Ethereum, Solana, Base, Arbitrum, Optimism, Polygon, Avalanche, Stellar, Aptos, Sui, Hedera, Algorand, Celo, Near, ZKsync, Starknet, Linea, Monad, XRP Ledger, World Chain, Unichain, XDC, Sei, Sonic, Polkadot, Morph, Ink, HyperEVM, Noble… (30+ networks) |19| USDe | Ethereum, Solana, BNB Chain, Base, Arbitrum, Optimism, Mantle, Scroll |20| DAI / USDS | Ethereum, Arbitrum, Optimism, Base, Polygon, Avalanche, BNB Chain, Gnosis, Linea, Scroll, Unichain |21| FDUSD | Ethereum, BNB Chain |22| USDB | Blast, Ethereum |23| PYUSD | Ethereum, Solana |24| RLUSD | XRP Ledger, Ethereum |25| USDG | Ethereum, Solana, Ink |26| TUSD | Ethereum, Tron, BNB Chain, Avalanche |2728> **Status 2026-08-05**: Phase A is **shipped** (11 EVM chains, verified token29> matrix, fee models incl. L1 data fees, keyless RPC failover, native coin30> sends) plus **Bitcoin** (bdk-swift, BIP-84, keyless Esplora) and fiat prices31> (CoinGecko keyless). Non-EVM adapters are next — see32> docs/RESEARCH-MULTICHAIN.md for the full blueprint and the wallet-core33> vendoring path (`scripts/vendor-walletcore.sh`).3435## Phase A — EVM expansion (cheap: registry entries, no new signer)3637Every EVM chain reuses the existing stack unchanged: secp256k1 keys at38m/44'/60'/0'/0/0, EIP-1559 signing, JSON-RPC, ERC-20 calldata. Adding39Ethereum/Arbitrum/Optimism/Polygon/BNB/Avalanche/Scroll/Linea/Gnosis/Blast… =40new `Network.ChainConfig` entries (chain id, RPC, explorer) + token addresses41in the registry, each verified on-chain before shipping (decimals() + symbol()42eth_call), exactly like docs/STABLECOINS.md. Watch out for: legacy-fee chains43(BNB has no EIP-1559 → needs type-0 path), native-gas symbol per chain44(POL, AVAX, BNB…), and chains where USDT is non-standard ERC-20 (no return45value — fine, we don't use the return value).4647## Phase B — Non-EVM chains (new signers, per-family adapters)4849Each family is a `ChainAdapter` implementation (derivation path, address50format, tx builder, RPC protocol):5152- **Solana** (USDC, USDT, PYUSD, USDe, USDG): ed25519 keys (m/44'/501'/…),53 SPL-token transfers, its own RPC. Biggest payoff after EVM.54- **Tron** (huge USDT volume): secp256k1 but base58 addresses + TRC-20.55- **XRPL** (RLUSD), **Stellar** (USDC), **TON**, **Aptos/Sui**, **Noble/Cosmos**:56 one adapter each, prioritized by user demand.5758The vault format already supports this: one mnemonic → per-chain derivation,59`VaultPayload.derivationPath` becomes a per-adapter map.6061## Phase C — polish6263- On-chain history via explorer APIs per chain (graceful fallback).64- Fiat (USD/CAD/EUR) valuation of balances, price feed optional & privacy-safe.65- Address book, per-token hide/show, Ledger-style hardware signing.66