$18.2M Presale, 500K Downloads: How We Built Best Wallet on Flutter
Crypto wallets have a UX problem that the industry largely refuses to admit. The people building them understand blockchains deeply. The people who need to use them often don't. That gap is why most wallets feel like developer tools dressed up as consumer apps — functional, secure, and almost completely inaccessible to anyone who didn't discover crypto before 2021.
Best Wallet is a different bet. Leonardo Pavkovic's thesis was straightforward: the next hundred million crypto users won't come from people willing to manage seed phrases across five apps. They'll come when someone builds a multi-chain wallet that works like a bank account — every asset, every chain, every swap, in one place, without a manual.
We built it. 20 weeks, Flutter, 60+ blockchains, a cross-chain swap engine querying 330 DEXs simultaneously. And the results: $18.2M raised in token presale, 500K+ downloads on Google Play, 4.4★ on the App Store.
Here's how the architecture actually works.
The Problem Nobody Had Solved
By mid-2024, the multi-chain wallet category was crowded and frustrating in equal measure. MetaMask dominated Ethereum but had no native Bitcoin support. Phantom was the go-to Solana wallet but awkward on EVM chains. Trust Wallet had broad chain support but a UI built for users who were already comfortable with gas fees and bridge mechanics.
Leonardo's team had mapped the user journey of someone moving assets from Ethereum to Solana using existing tools. It required at minimum three separate apps, two bridge transactions, multiple gas fee approvals, and about 45 minutes of careful attention to avoid losing funds to slippage. For an experienced user, that's annoying. For anyone entering crypto for the first time, it's a wall.
The product spec was ambitious but clear: a non-custodial wallet supporting 60+ blockchains, with cross-chain swaps that found optimal routes automatically, staking aggregation across proof-of-stake networks, a unified portfolio dashboard, and an in-app DeFi browser. No KYC. No custodial risk. Every user owns their keys.
The technical constraint was equally clear: 20 weeks to production on both iOS and Android.
The Flutter Decision
For a project of this complexity, the framework choice wasn't just a developer preference — it was a constraint that would either make the timeline possible or impossible.
We build cross-platform apps in Flutter. Not because it's the trendy choice, but because for applications with heavy state management requirements, complex UI interactions, and real-time data flows (all of which a crypto wallet has in abundance), Flutter's compiled Dart runtime consistently outperforms React Native's JavaScript bridge architecture.
For Best Wallet specifically: the portfolio dashboard renders real-time price data across 60+ chains simultaneously. The swap interface shows live route quotes from 330 DEXs, updating as market conditions shift. The staking aggregator tracks APY rates across hundreds of validators in real time. Each of these features requires tight coordination between network calls, state updates, and UI renders. On React Native, that coordination crosses the JS bridge on every update. On Flutter, it doesn't.
We also had a precedent. We'd shipped Arré Voice — a live social audio app — in 14 weeks on Flutter. The real-time audio infrastructure for Arré Voice and the real-time financial data infrastructure for Best Wallet share the same fundamental challenge: low-latency data that needs to reach the UI without dropping frames. The technical patterns transferred directly.
As an AWS Partner, we paired the Flutter frontend with a NestJS/GraphQL backend deployed on AWS EC2 with Auto Scaling Groups — critical for a crypto wallet where price pumps can drive 10-20x traffic spikes within minutes.
The Architecture That Made It Work
Free Download: App Development Cost Estimator
Break down app costs by feature — auth, payments, push notifications, maps, chat. See Indian and international rates side by side.
The Modular Chain Adapter Pattern
Supporting 60+ blockchains isn't a matter of connecting to 60 APIs. Each blockchain has its own signing algorithm, transaction format, fee structure, and RPC endpoint. Bitcoin uses ECDSA with secp256k1. Ethereum uses EIP-1559 for fee markets. Solana uses ed25519 signatures and a completely different account model. Treating these uniformly at the code level would mean a codebase that breaks every time any chain updates its protocol.
We built a modular adapter pattern instead. Each supported blockchain has its own adapter — an isolated module handling key derivation, transaction signing, balance fetching, and fee estimation for that chain. The core wallet logic doesn't know or care which chain it's talking to; it calls the adapter interface. Adding a new chain means writing a new adapter, not touching the core.
This pattern is what made the 20-week timeline achievable. New chain integrations averaged two days each. Without the adapter pattern, we'd have been rewriting core logic with every addition.
Private keys are generated and encrypted on-device using the Fireblocks SDK. Biometric authentication (Face ID, fingerprint) is the default unlock mechanism. Optional 2FA is available. Zero keys ever leave the device. The non-custodial architecture isn't a marketing claim — it's enforced at the cryptographic level.
// Simplified adapter interface — all 60+ chains implement this
abstract class ChainAdapter {
Future<String> signTransaction(Transaction tx, PrivateKey key);
Future<BigInt> getBalance(String address);
Future<FeeEstimate> estimateFee(Transaction tx);
Future<String> broadcastTransaction(String signedTx);
}
The Cross-Chain Swap Engine
This was the most technically demanding component in the entire project, and it's the feature that most directly delivers on the product's promise.
Swapping between chains — say, ETH on Ethereum for SOL on Solana — requires routing through bridges and DEXs that operate on different networks. The naive approach is to pick one bridge and accept whatever route it offers. The problem is that routes vary significantly in price and slippage depending on current liquidity conditions, and a user swapping $10,000 who takes the second-best route can easily lose $200–500.
We built a DEX aggregator that queries 330 decentralised exchanges and 30 bridges simultaneously in parallel. For any given swap, it maps every viable route across all available DEXs and bridges, calculates expected output after fees and slippage for each route, and presents the optimal path. The computation happens in under two seconds. The UI shows the user a simple swap interface with a live price quote — one tap to execute.
The engineering underneath that one tap: parallel GraphQL queries to 360 external services, route optimization across multi-hop paths, real-time slippage calculations, and transaction construction across potentially two different blockchain networks.
Staking Without the Spreadsheet
Staking crypto passively sounds simple. In practice, choosing where to stake requires comparing APY rates, validator commission percentages, uptime history, lock-up periods, minimum stake requirements, and slash risk — across hundreds of validators on potentially five or six different networks simultaneously.
Most users either don't stake (leaving yield on the table) or stake with whoever their wallet recommends by default (not necessarily optimal). Our staking aggregator scans all available validators across every proof-of-stake network in the wallet, normalizes their metrics onto a common scoring framework, and presents ranked opportunities sorted by risk-adjusted yield. One-tap delegation. Auto-compounding toggle. No spreadsheet.
Infrastructure for Crypto's Traffic Patterns
Crypto markets don't have normal traffic patterns. When Bitcoin moves 10% in an hour, every user in every wallet opens their app simultaneously. When a token launches or a major NFT drop happens, traffic can spike 15-20x within minutes.
Standard auto-scaling configurations built for SaaS apps aren't calibrated for these patterns. We tuned the AWS EC2 Auto Scaling Groups for Best Wallet with aggressive scale-out triggers and pre-warming during periods of high market volatility. Redis handles real-time price caching — data that's requested thousands of times per second during peak periods doesn't hit the database. CloudFront CDN handles asset delivery.
The architecture has handled multiple major market events since launch without a single outage or significant degradation.
The Results
| Metric | Result |
|---|---|
| Total Google Play downloads | 500,000+ |
| App Store rating (iOS) | 4.4 ★ |
| Supported blockchains | 60+ |
| $BEST token presale raised | $18.2M |
| Security incidents since launch | Zero |
"Building a multi-chain wallet that feels simple is the hardest problem in crypto UX. Innovatrix nailed it. They delivered a wallet that supports 60+ chains with cross-chain swaps, staking, and DeFi — and my grandmother could use it. We hit 500K downloads in under a year, and the app hasn't had a single security incident."
— Leonardo Pavkovic, CEO, Best Wallet
What We'd Do Differently
We'd scope the DeFi browser earlier. The in-app WebView with injected Web3 provider and WalletConnect support was added in the final weeks and required more careful QA than we'd allocated. It works well, but a DeFi browser is a substantial security surface area — injecting Web3 providers into arbitrary third-party web pages deserves its own dedicated sprint.
The staking aggregator's validator scoring model needed more time. The initial version weighted APY heavily. After launch, we refined the scoring to give more weight to uptime history and slash risk after some validators with attractive yields had reliability issues. The model is better now, but we'd build the more sophisticated scoring framework from sprint one on the next project.
The AWS traffic spike modeling was right but the Redis cache warm-up wasn't. The first major price event after launch briefly saturated our Redis read capacity before the cache warmed up. We added pre-warming triggers tied to market volatility signals post-launch. This is now standard practice in our crypto infrastructure builds.
What This Means for Your Crypto or Web3 App
Crypto and Web3 app development in India is at an early but serious stage. The talent pool for blockchain integration exists — but the combination of blockchain expertise and consumer-grade mobile UX is rare. Most crypto development shops are strong on the chain side but weak on the user experience side. Most mobile agencies are strong on UX but have never touched a blockchain signing library.
The projects that succeed in this space are the ones that treat blockchain as infrastructure — invisible to the user, but engineered correctly underneath. That's the design principle behind Best Wallet, and it's what drove the download numbers.
If you're building a Web3 app, a crypto wallet, a DeFi protocol frontend, or any application that needs to interface with blockchain infrastructure, the Flutter + modular adapter pattern we used for Best Wallet scales to any complexity. Our app development service covers the full stack: Flutter mobile, NestJS backend, AWS infrastructure, and blockchain integration.
For cost benchmarks on a project of this scope, see our app development cost guide for India 2026.
Free Download: App Development Cost Estimator
Break down app costs by feature — auth, payments, push notifications, maps, chat. See Indian and international rates side by side.
Written by

Founder & CEO
Rishabh Sethia is the founder and CEO of Innovatrix Infotech, a Kolkata-based digital engineering agency. He leads a team that delivers web development, mobile apps, Shopify stores, and AI automation for startups and SMBs across India and beyond.
Connect on LinkedIn