# OS Vault — Multi-chain / multi-stablecoin roadmap v1 is Base-only (Sepolia default, mainnet behind the network switch) with a data-driven token registry (USDC default + EURC, DAI, USDT). The goal is broad stablecoin coverage across chains. Target matrix (user-provided, 2026-08-05): | Stablecoin | Main chains | |---|---| | USDT | Ethereum, Tron, Solana, BNB Chain, Avalanche, Arbitrum, Optimism, Polygon, TON, Aptos, Celo, EOS, Near, Tezos, Algorand, Cosmos (Noble), Kaia, Ink… | | 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) | | USDe | Ethereum, Solana, BNB Chain, Base, Arbitrum, Optimism, Mantle, Scroll | | DAI / USDS | Ethereum, Arbitrum, Optimism, Base, Polygon, Avalanche, BNB Chain, Gnosis, Linea, Scroll, Unichain | | FDUSD | Ethereum, BNB Chain | | USDB | Blast, Ethereum | | PYUSD | Ethereum, Solana | | RLUSD | XRP Ledger, Ethereum | | USDG | Ethereum, Solana, Ink | | TUSD | Ethereum, Tron, BNB Chain, Avalanche | > **Status 2026-08-05**: Phase A is **shipped** (11 EVM chains, verified token > matrix, fee models incl. L1 data fees, keyless RPC failover, native coin > sends) plus **Bitcoin** (bdk-swift, BIP-84, keyless Esplora) and fiat prices > (CoinGecko keyless). Non-EVM adapters are next — see > docs/RESEARCH-MULTICHAIN.md for the full blueprint and the wallet-core > vendoring path (`scripts/vendor-walletcore.sh`). ## Phase A — EVM expansion (cheap: registry entries, no new signer) Every EVM chain reuses the existing stack unchanged: secp256k1 keys at m/44'/60'/0'/0/0, EIP-1559 signing, JSON-RPC, ERC-20 calldata. Adding Ethereum/Arbitrum/Optimism/Polygon/BNB/Avalanche/Scroll/Linea/Gnosis/Blast… = new `Network.ChainConfig` entries (chain id, RPC, explorer) + token addresses in the registry, each verified on-chain before shipping (decimals() + symbol() eth_call), exactly like docs/STABLECOINS.md. Watch out for: legacy-fee chains (BNB has no EIP-1559 → needs type-0 path), native-gas symbol per chain (POL, AVAX, BNB…), and chains where USDT is non-standard ERC-20 (no return value — fine, we don't use the return value). ## Phase B — Non-EVM chains (new signers, per-family adapters) Each family is a `ChainAdapter` implementation (derivation path, address format, tx builder, RPC protocol): - **Solana** (USDC, USDT, PYUSD, USDe, USDG): ed25519 keys (m/44'/501'/…), SPL-token transfers, its own RPC. Biggest payoff after EVM. - **Tron** (huge USDT volume): secp256k1 but base58 addresses + TRC-20. - **XRPL** (RLUSD), **Stellar** (USDC), **TON**, **Aptos/Sui**, **Noble/Cosmos**: one adapter each, prioritized by user demand. The vault format already supports this: one mnemonic → per-chain derivation, `VaultPayload.derivationPath` becomes a per-adapter map. ## Phase C — polish - On-chain history via explorer APIs per chain (graceful fallback). - Fiat (USD/CAD/EUR) valuation of balances, price feed optional & privacy-safe. - Address book, per-token hide/show, Ledger-style hardware signing.