OS Vault
One phrase. Six chains. Nothing leaves your Mac.
A self-custody, multi-chain crypto wallet for macOS with its own vault encryption, keyless public RPCs, and sign-and-forget key handling.
6
chain families
11
EVM chains
600k
PBKDF2 rounds
32
passing tests
0
API keys required
12
words, one phrase
Overview
OS Vault refuses the usual wallet trade-off between convenience and sovereignty. It is a native macOS wallet where a single BIP-39 recovery phrase derives addresses for six chain families — Bitcoin, 11 EVM chains, Solana, Tron, XRPL, and TON — and where every endpoint is public and keyless, with automatic failover.
The mnemonic is sealed with OS Vault's own vault format: PBKDF2-HMAC-SHA512 at 600,000 rounds feeding AES-256-GCM, stored in a local file with no macOS Keychain, no iCloud, and no telemetry. Private keys exist only for the milliseconds a transaction is signed — every send re-derives the key from your password and discards it.
Real fee models are handled per chain: EIP-1559, OP-stack L1 data fees via oracle, Tron energy burn estimated pre-send, XRPL reserves shown as locked, and TON jetton-wallet indirection with excess refunds. Every stablecoin contract and decimal count was verified live on-chain before registration.
Key Features
Own vault encryption
PBKDF2-HMAC-SHA512 (600k rounds) into AES-256-GCM in a local 0600 file — no Keychain, no iCloud, no telemetry.
Sign-and-forget keys
The private key exists only during signing: every send re-derives it from your password and immediately discards it.
One phrase, every chain
The same 12 words derive Bitcoin (BIP-84), 11 EVM chains, Solana, Tron, XRPL, and TON — cross-validated against independent crypto stacks.
Zero mandatory API keys
Every endpoint is public and keyless with health-scored failover; the only optional egress is CoinGecko prices, one toggle to kill.
Real fee models, per chain
EIP-1559, OP-stack L1 data fees, Tron energy burn estimated pre-send, Solana ATA rent, TON jetton attachments with refunds.
On-chain verified tokens
Every stablecoin address and decimal was checked live — including traps like 18-decimal BNB-peg USDT and bridged USDC.e.
Notarized and sandboxed
App Sandbox, Hardened Runtime, Developer ID signed, notarized and stapled by Apple, with forced written-backup verification.
Watch-only Bitcoin
The Bitcoin wallet holds public descriptors only; a throwaway in-memory signer signs PSBTs on demand.
How It Works
VaultCrypto + KeyManager
The encryption mechanism and BIP-39 HD derivation lifecycle — password to key to vault.json, with wrong passwords and tampering indistinguishable under GCM authentication.
Per-chain services
Dedicated services for EVM JSON-RPC, Bitcoin (bdk-swift watch-only plus transient signer), Solana SPL/ATA, Tron, XRPL, and TON, each pairing wallet-core signing with keyless REST/RPC.
TransactionService
Implements EIP-1559 plus five other real fee models, including OP-stack L1 data fee oracles, BSC zero-base-fee, and Linea pinned base fees.
Verified token registry
Network and Token models encode a matrix of live-verified contract addresses and decimals across all supported chains, testnet defaults included.
Tech Stack
Core
Crypto
Infrastructure
Release
Highlights
- 32 tests cross-validate BIP-39/BIP-84 vectors, vault crypto, decimals, and address validators against independent crypto stacks
- The vendoring script repackages Trust wallet-core for macOS SwiftPM — including an ld -r pass that resolves a duplicate Rust runtime symbol shared with the Bitcoin Dev Kit
- Forced written-backup verification: the app makes you prove you wrote down 3 random words before the wallet exists
- Every chain defaults to a testnet (Base Sepolia, Signet, Devnet, Nile) with TESTNET badges everywhere
- One-tap RLUSD trustline on XRPL, with recipient trustlines checked before sending
- No accounts, no keys, no configuration — macOS 15.5+ is the only requirement
Explore OS Vault
Self-custody multi-chain crypto wallet — the full source is on GitHub.