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.