Skip to content
docs

Anatomy of a wallet

A crypto wallet looks like one app, but it is about eighteen parts. Some are cryptography, some are network data, some are product decisions. This section goes through them in the order you’ll need them. For each part it says what the job is, which package does it, and what you have to bring yourself: an RPC, an API key, a storage layer.

# Part What the user sees Any Wallet Kit You bring
1 Keys “Create wallet”, “Import seed phrase” core Nothing
2 Key storage Face ID unlock, “Back up your phrase” secure-storage-react-native (iOS Keychain, Android Keystore), seed-vault (encrypted backup file), backup-cloud (iCloud), extension-kit (browser) Nothing on iOS; an Android cloud backup is planned
3 Accounts One address per chain, several accounts kit, keyring, wallet-* Nothing
4 Networks and RPC Nothing, until it breaks networks RPC endpoints
5 Balances Total, list of assets wallet-*, swap2-assets RPC; an indexer to find tokens
6 Prices $ next to every amount Not in the SDK yet A price API
7 Send Recipient, amount, fee, confirm wallet-* RPC
8 Receive Address and QR code wallet-* A QR library
9 Names name.eth in the recipient field names-ens An Ethereum RPC
10 History Activity list with readable titles history-evm, wallet-*, kit Explorer / indexer keys
11 Review before signing “You send 100 USDC, you get 0.03 ETH” tx-preview-evm, kit An RPC with eth_simulateV1
12 Safety Approvals list, warnings protocol-approvals-evm, kit Blocklist sources
13 Swaps and bridges Swap screen, route picker protocol-swap2-* Provider keys (some)
14 Earn Stake, lend, APY protocol-staking-*, protocol-lending-* RPC
15 dApp connection “Connect wallet” on websites extension-kit WalletConnect on mobile
16 Buy and sell “Buy crypto” button FiatProtocol interface only An on-ramp provider
17 Notifications “You received 50 USDT” Not in the SDK yet A webhook service and push
18 Your server Nothing protocol-swap2-core/server (swap backend), examples/server (RPC proxy + swaps) Hosting, user auth, rate limits

Ship a wallet puts the parts together end to end, with the server. A minimal wallet is parts 1–8. A wallet people keep using adds 10, 11 and 13. Everything else is what sets one wallet apart from another.

  1. Keys, storage, accounts. The wallet can be created and restored.
  2. Networks, balances, prices, send, receive. A usable wallet.
  3. History, review before signing. A wallet people trust.
  4. Swaps, Earn, approvals. A wallet people come back to.
  5. dApp connection, fiat, notifications, names. A complete product.

These pages name third-party services (RPC nodes, indexers, price APIs, on-ramps) as examples of what fits each part.