When building a custodial mobile crypto wallet, the core dilemma is how to secure private keys while remaining user-friendly. At TrueTech, we solve this through a combination of HSM/MPC protection, KYC/AML integration, and server architecture with transaction queues. Below are the technical details you need to know before starting.
How a custodial crypto wallet works
In a custodial wallet, users' private keys are stored on the operator's side. The user trusts us to manage their assets, and we take responsibility for security. This model is used by Coinbase, Binance, and enterprise crypto solutions. Technically, it's easier for the user—no need to safeguard a seed phrase, and familiar email recovery is available. But the security requirements for the server infrastructure and regulatory burden are incomparably higher.
What key security technologies are used?
Storing private keys in a plain database is a death sentence at the first breach. The main approaches:
HSM (Hardware Security Module). A physical device generates, stores, and uses keys—they never leave the HSM. Transaction signing happens inside: the application sends the transaction, and the HSM returns the signed one. Popular solutions: Thales Luna, AWS CloudHSM, Azure Dedicated HSM. Offers maximum security but is more expensive and harder to scale.
KMS (Key Management Service). A cloud equivalent: AWS KMS, Google Cloud KMS, Azure Key Vault. Keys are not exportable, signing via API. Cheaper than HSM, easier to scale, but keys are with the cloud provider—regulatory hurdles for some jurisdictions.
MPC (Multi-Party Computation). A modern approach: the private key never exists in its entirety. Several server nodes hold key shards, and signing is performed via MPC protocol without reconstruction. Used by Fireblocks, Fordefi, ZenGo. Resistant to a single node compromise.
| Technology | Security Level | Cost | When to choose |
|---|---|---|---|
| HSM | Maximum | High ($10k+/year) | Regulatory requirements, high-volume exchanges |
| KMS | High | Medium (pay per API) | Startups, mid-sized projects |
| MPC | Very high | Medium | Multi-signature, decentralization |
Hot/cold storage scheme. Most funds are kept in cold storage (offline HSM, hardware wallets). The hot wallet holds only an operational reserve to process current withdrawals. A 95/5 or 98/2 ratio is the industry standard for exchanges.
How is the server transaction architecture built?
The client application does not sign transactions—it only initiates a request:
- The user enters withdrawal parameters in the mobile app
- The app sends a request to the backend with authentication (JWT + 2FA)
- The backend validates: sufficient funds, limits not exceeded, address is in whitelist
- The request is queued for signing (manual or automatic approval)
- The signing service requests HSM/KMS to sign the transaction
- The signed transaction is sent to the blockchain node
- Monitoring of confirmations, notification of the user
A transaction queue is not just async processing. It protects against parallel attacks: two withdrawal requests for the same balance must not both pass. We use optimistic locking or pessimistic locking at the account level.
Accounting: UTXO vs account-based
For Ethereum-compatible networks—account-based model. One address per user or an address pool with account mapping:
- Dedicated address: each user gets a unique deposit address → easier identification, higher gas for consolidation
- Shared address + memo/tag: one deposit address, identification via memo (XRP, TON) or calldata
For Bitcoin—UTXO. Each UTXO belongs to a specific user or requires address-transaction mapping. A unique Bitcoin address for each deposit, sweep UTXOs to cold wallet on a schedule.
An internal accounting database provides instant balances without a blockchain query. All operations are in the internal DB; the blockchain provides final confirmation. It's like a bank: the internal accounting system doesn't wait for Fedwire for every inquiry.
Mobile client: peculiarities of the custodial model
For the user, a custodial wallet is closer to a banking app than to MetaMask. Functionality includes:
- Registration/login with KYC (if required by regulator)
- Real-time balances per asset (WebSocket for live updates)
- Transaction history with filters
- Sending (with address book, QR scanner, address whitelist)
- Receiving (QR with address, monitoring incoming)
- Swap between assets (via internal engine or aggregator)
Biometric authentication on the device is used for confirming operations, but it doesn't protect the key itself (keys are on the server). Here, biometrics protect the app session.
KYC and AML—regulatory obligation
A custodial wallet in most jurisdictions is a financial service. VASP (Virtual Asset Service Provider) under FATF Recommendations. This means:
- KYC: identity verification, documents, selfie liveness check. Providers: Sumsub, Onfido, Jumio, Veriff.
- AML screening: checking transactions against sanction lists (OFAC, EU), blocking mixers and darknet addresses. Providers: Chainalysis, Elliptic, TRM Labs.
- Travel Rule: for transfers >$1000, sender/receiver data must be passed between VASPs. Protocols: TRP, OpenVASP, TRISA.
Without this, in the EU, US, and most developed countries, legal operation is impossible. KYC/AML integration is a mandatory step.
Push notifications and monitoring
Monitoring incoming transactions—via webhooks from blockchain providers (Alchemy Webhooks, Moralis Streams) or a custom event listener. Upon deposit confirmation—credit to internal balance, send push via FCM/APNs. Notifications about suspicious activity: login from a new device, large withdrawal, email change.
What's included in the project work
We develop custodial wallets turnkey. Included:
- Audit of business requirements and regulatory constraints
- Architecture design (HSM/KMS/MPC, accounting, transaction queue)
- Implementation of modules: authentication, KYC, transactions, push notifications, monitoring
- Integration with blockchain providers and KYC/AML services
- Security testing (penetration testing, code review)
- Publishing to App Store and Google Play
- Operations and integration documentation
Timelines and team experience
Our team has 7+ years of experience in crypto wallet development and 20+ completed projects. MVP of a custodial wallet (one blockchain, basic operations, KMS instead of HSM, simplified KYC)—2–3 months. Full system with HSM/MPC, multi-chain support, AML integration, regulatory reporting—6–12 months. Regulatory part (obtaining a VASP license) runs in parallel.
To assess your project, contact us. We'll prepare a commercial proposal considering your blockchains, jurisdictions, and security requirements.







