How to Develop a Crypto Wallet like BlueWallet?
BlueWallet is a mobile wallet meant solely for bitcoin storage and management. It’s open-source, has an easy-to-use interface and a lot of interesting features. The most essential of them is Lightning transaction support. In this article, we’ll tell you how to create your cryptocurrency wallet like BlueWallet and an estimated cost of the launch of a similar blockchain startup.
The BlueWallet project was founded in 2017 by Igor Korsakov, Nuno Coelho, and Marcos Rodriguez. They were the first to create a wallet to store and manage bitcoins, which supported SegWit and provided the users with fee control. Unlike most wallets of that time, BlueWallet allowed to set a fee amount manually to speed up the transaction confirmation and change the transaction fee after its initialization and before the confirmation (this is how you can avoid the problem when a transaction gets stuck because of a sharp increase of the transaction volume and, consequently, the fee increase).
To develop your wallet like BlueWallet, you need to implement these features as well as the rest of the basic functionality of similar apps. Usually, this functionality is divided into two directions depending on what user they’re targeted at: admin or investor.
The investor’s control panel usually includes such features:
Multiple Wallets. BlueWallet provides users with an opportunity to use several accounts at once and quickly switch between them. It’s a very useful feature if you need to separate addresses for trading and cold storage. Or if you need a separate account with a multisignature.
Multisig Vaults. This feature allows to protect your funds by dividing asset management among several users. For example, you can divide management among 10 users and add a condition that the transaction execution requires 8 signatures. The feature is recommended for cold storage of BTC and business address management.
Watch-only. It’s a special type of account, which allows you to keep an eye on your cold storage or paper wallet without touching your private key. You can create as many such accounts as you want, which is very convenient if you're not sure about the protection of your phone or computer.
Lightning wallets. It’s another type of account that you’ll have to implement in case of developing a cryptocurrency wallet like BlueWallet. With its help, you can make very quick and cheap payments in Lightning Network. You can also connect to your own Lightning node through this account.
Fee control. By default, BlueWallet provides a user with a fee estimation targeting confirmations in 10m, 3h or 1 day. However, a user can increase a fee for a sender using the Child-Pays-For-Parent (CPFP) feature or «bump» the already sent, but unconfirmed transactions with the Replace-By-Fee (RBF) feature.
Plausible deniability. It’s another security feature that you definitely should implement in your BlueWallet clone. With it, the user can specify a special password, which will decrypt not his main wallet, but a fake one with predetermined balance values.
Batch bitcoin transactions. It’s a useful feature, which makes it possible to save on fees by combining several payments into one transaction. Usually, such practices are used by exchanges and big services. In BlueWallet, this feature is implemented simply and conveniently: when creating a transaction, the user specifies the recipients’ addresses and a sum that he wants to send to each address.
Multi-language support. Now BlueWallet supports more than 30 languages, including English, Swedish, Chinese, Japanese, Spanish, Portuguese, Russian, Ukrainian, German, French, Turkish, and more. During the development of your cryptocurrency wallet, you also need to add the support of many languages to increase the reach of the target audience.
Recover wallets. A «magical form» where you can try to import the account data from other cryptocurrency wallets to BlueWallet. The system is not perfect, but in most cases, BlueWallet understands the format of the user’s current wallet and picks up settings and data from it.
Ground Control. This is a push notification service for bitcoin wallets that allows you to have mobile and desktop push notifications or to run your own push notification server.
Many more. Here’s what you should add to your BlueWallet clone as well:
The custom development process usually consists of seven stages:
Stage 1: the discovery phase
Before your development team begins to develop a design and write code of a future product, you should decide on a business part, target audience, and risks. So you need to start the development of an app like BlueWallet with the market analysis. This will allow assessing the prospects for the niche beforehand, identifying the potential customers’ needs, and finding out the competitors’ strengths and weaknesses. Based on the information received, business analysts will compile a list of features and requirements for the project, which will help to define the scope of work and the development team more clearly and select the most appropriate tech stack.
Stage 2: architecture development
Based on the information obtained at the first stage, the architecture of a future product is created. It’s a flowchart where the system components and how they will interact with each other are displayed. On the basis of such architecture, the development team will be able to fulfill their tasks.
To create a cryptocurrency wallet, which the users will really like, it’s not enough to come up with interesting and useful features and implement them. You also have to compile them in a single, simple, and user-friendly interface. It’s here that UX/UI designers come to help. They study goals, tasks, needs, and users’ behavioral patterns to create low-fidelity wireframes on the basis of this data, and then they improve them to a ready prototype. Here’s how low-fidelity wireframes may look like:
Low-fidelity wireframes. Source.
After the business analysis of the creation of the information architecture and the design development, a team of programmers starts a technical implementation of your BlueWallet clone. To do so, front-end developers and back-end developers have to choose a tech stack, which is suitable for your wallet, focusing on programming languages, frameworks, libraries, databases, blockchain technologies, and key external integrations.
Here is an example of a tech stack for the front-end of a mobile wallet.
Here is an example of a tech stack for the back-end of a mobile wallet:
Stage 5: product testing
Software testing is done by QA specialists, and it’s better to engage them from the beginning not to accumulate errors. When launching a mobile wallet, you should test it for errors, functionality, load, compliance with specifications and the like. If your wallet will use smart contracts, then they have to be carefully checked too, and it should preferably be done by independent auditors; for example, Techrate and Certik.
Stage 6: deployment, release
When the developed software is thoroughly tested, it’s necessary to deploy it on your local servers or a cloud (AWS, Azure, Google) and then recheck everything once again. If everything’s okay, your mobile app has to be added to stores of mobile apps (App Store, Google Play, Microsoft Store, and Amazon App Store). This might require a relatively small amount of money (Google Play — $25, App Store — $99 per year or $299 per year for intra-corporate apps) and some time for the compilation of marketing and technical data and the check of the app by the platform.
Stage 7: product support
The final development stage of such a wallet as BlueWallet is staff training, provision of technical support, troubleshooting, monitoring and maintenance of systems and apps. Staff training is usually started several weeks or months before the release, depending on the product complexity. It’s done either by the development company’s employees or specifically hired specialists (it’s common for pretty big and complex projects).
Provision of technical support and elimination of failures in the first months following the release are included in the price of the project (at least, the majority of responsible developers do that, Merehead included). During this period, the developers typically manage to detect more or less significant bugs and provide the first updates, which improve performance and usability (if necessary). After that, the technical support is provided by a team of the client’s employees or a special outsourced firm.