Docs
Technical Architecture
Clients own keys and signing; services provide public data, quotes and risk intelligence.
System diagram
┌──────── Clients (keys + local signing) ─────────┐
│ iOS (Keychain/SE) · Android (Keystore) · Ext · Web│
└───────────────┬─────────────────────────────────┘
│ TLS (+pinning on mobile) — no secrets
┌──────▼──────┐
│ API Gateway │ auth · rate limits · WAF · flags
└─┬──┬──┬──┬──┘
┌────────┘ │ │ └──────────┐
┌─▼────┐ ┌───▼──▼───┐ ┌───────▼────────┐ ┌──────────┐
│ RPC │ │Portfolio │ │Swap·Bridge·Fiat│ │ Security │
│Router│ │Tx Indexer│ │Staking·NFT │ │(WafiShield)
└─┬────┘ │Token·Price│ └───────┬────────┘ └────┬─────┘
│ └────┬─────┘ │ │
Alchemy·QuickNode·Infura·Ankr·public·own nodes
│
PostgreSQL · Redis · Kafka · Object storageTrust boundary
Everything left of the API gateway may hold secrets; everything right of it must be safe to compromise without losing user funds.
Web wallet (this app)
- Keys: @scure/bip39, @scure/bip32, @noble/curves, SLIP-10 for ed25519
- Vault: AES-256-GCM, PBKDF2-SHA256 310k from PIN (WebCrypto)
- Optional WebAuthn biometric gate
- EVM via viem with fallback RPC transport
Items marked NATIVE must be implemented as audited native code (Swift, Kotlin, Rust or C++), not in the web app.

