A bitcoin blockchain is open-source software so any interested person can use it to develop his mobile bitcoin wallet. In this article, we’ll tell you how to do it in detail.
Types of bitcoin wallets
A cryptocurrency bitcoin wallet
is a place where users will store public and private keys (login and password) that give them access to their cryptocurrency assets. Depending on the type of such storage, crypto wallets are commonly divided into the desktop, mobile, hardware, and web ones. Deciding to create a bitcoin wallet, the first step is to understand where you’ll store keys because this influences the features, target audience, and a platform.
. They store private keys on the smartphone. Mobile wallets allow checking a crypto balance, conduct transactions whenever and wherever you want; however, they can’t be full nodes because they usually lack memory (more than 200 GB are needed). These wallets often have a range of additional capacities such as fingerprint identification or an embedded QR code scanner for quick transactions.
- Examples: Bitcoin Wallet, Electrum, GreenAddress, Infinito, and Edge.
- Target audience: ordinary users, who want to conduct transactions here and now as simple as possible.
- Development complexity: medium because you need experience with blockchain and SDK. You can also just integrate an opportunity to conduct bitcoin transactions to the existing app, which is a little easier.
. The apps, which you need to install on your computer or a laptop. They are easy to use, have a maximal functionality and they allow creating full nodes among other things (consequently, you can mine). They store private keys in the memory of data storage devices in the computer, which creates certain risks since the security level of such systems depends on their users and not on the wallet.
- Examples: Exodus, Armory, Bitcoin Core, Electrum.
- Target audience: ordinary users and those, who are planning to mine or develop blockchains, smart contracts, or dApp.
- Development complexity: medium because you need experience with blockchain and SDK. If you need only the opportunity to conduct bitcoin transactions, then you can simplify the development with the special API.
. These are usually flash drives, which have to be connected to the computer, after which the user gets the opportunity to manage the wallet balance through the app installed on the device. This cryptocurrency wallet works in such a way for private keys not to leave the storage device. That makes them the safest possible way to store bitcoins.
- Examples: Ledger Nano X, Ledger Blue, and Trezor Model T.
- Target audience: investors, traders, and other users, who operate great sums of money and therefore want to protect their funds from theft and unauthorized access as best as they can.
- Development complexity: maximum because you need to know not only how to develop a bitcoin wallet app but also how to develop a flash drive.
. Normally, these are apps that encrypt and decrypt public and private keys so they can be moved and stored in paper form safely (for instance, in a secure safe or bank).
- Examples: encryption services — WalletGenerator and ethaddressWallet.
- Target audience: they are usually used by those, who specialize in cold investment in bitcoins (several-year investment).
- Development complexity: low because you can just create аn «add-in» in the open-source software for the encryption.
. They function as a cloud service that makes it possible to manage bitcoin assets through any device: a phone, a computer, a tablet. These wallets combine the capability of desktop wallets and the accessibility of mobile wallets so they are quite popular among ordinary users. This being said, that comes at a price of lower security since the online wallets store the users’ private keys on their servers.
- Examples: BitGo, Coinbase, GreenAddress.
- Target audience: users, who want to manage bitcoins most efficiently, and those, who want to have a wallet, which provides access to a big number of cryptocurrencies (usually web wallets make it possible for the user to manage 20-100 coins right after he signs up).
- Development complexity: high because it's necessary to create a cloud solution.
Cryptocurrency wallet features
Except for the paper wallets, features of other types of bitcoin wallets are pretty standard and closely resemble the features of apps of other payment systems
(PayPal, Apple Pay, Google Pay) or online banking apps. Here is the list of them and a brief description:
Sign up / in
. Registration of the user in the cryptocurrency wallet is not only the creation and settings of a profile but also the creation of cryptocurrency addresses in the Bitcoin payment system (it’s like opening a bank account). If the user already has such an address, then the registration implies binding this address to your app. For this reason, this feature (and authorization) should be developed with the use of a reliable, well-tested security protocol.
. It’s impossible to undo transactions in the Bitcoin payment system and it’s very difficult to find the counterparty in real life, so your app should offer the users the highest security level. And it’s not just about data encryption and protection from hackers
but also about the protection of users’ accounts from unauthorized access.
Here are some things that you can implement to enhance security when developing your own bitcoin wallets:
- Two-factor authentication. A confirmation of logging in with a phone number, PIN code, or Touch / Face ID may be required. The easiest way to do it is by using a Google two-factor authentication.
- Automatic logout. This won’t let anyone use the users’ wallets except for those, who know the public and private keys. For instance, this would be useful in case of loss or theft of your smartphone.
- Separate keys for each transaction. An additional way of protection from fraud and hacking.
. As far as the app for cryptocurrency bitcoin wallet makes it possible for the user to buy and sell BTC for fiat and other cryptocurrencies, they need to know the current bitcoin rate to these currencies and the conversion rate of bitcoin into these currencies considering all commissions. The rate can be pulled in from the exchange, where you’ll be exchanging bitcoins; for example, from Coinbase.
Moreover, you can implement some additional features as well. For instance, show your users how significantly the conversion rate has increased or decreased since yesterday, in a week, or a month. This will give them the possibility to forecast further changes in the rate and exchange cryptocurrency at the most profitable rate.
Wallet (assets management)
. These are directly those features, which will allow users to manage their cryptocurrency assets:
QR codes for quick transactions
. This feature is optional, but the users appreciate it because it simplifies transactions: there’s no need to enter the public keys, which neutralizes the risk of typing mistakes and accelerates the process very much. QR code generator and scanner are needed for the normal work with QR codes.
Crypto address book
. Separate screen with a list of frequently used addresses. Just like the previous one, this feature is optional in the bitcoin wallet (but users expect it). However, its development won’t take a lot of time and it’s not expensive so it should be in your app.
. They provide the users with the opportunity to get a sense of what is going on with their cryptocurrency assets; for instance, they notify of new receipts or completion of an initiated transaction. Besides, you can use push notifications to inform the users of the rate dynamics, your trading apps, special offers, app updates, etc.
Additional wallet capabilities
Flash drives with a hardware key YubiKey 5ci by Yubico can be used to authenticate the bitcoin wallet instead of a password, fingerprint, or Face-ID. Source
Basic features are nice, but your bitcoin wallet should support some additional capabilities, which will help to stand out among the competitors and increase the engagement of the users. Here’s what you can implement in your app:
- Lightning transactions. Lightning Network – a protocol of the second level – is implemented in Bitcoin, which allows conducting instant transactions with very low commissions ($0,000106 USD). Your wallet is unlikely to be used in e-commerce if it’s not integrated with this technology.
- Integration with banks and exchangers. It will allow the users to buy and sell bitcoins in their usual way. It can be implemented through both direct cooperation with banks and payment gateways.
- Integration with e-commerce platforms. To do so you need to develop a separate screen, from which the users will be able to get access to online shops, retailers, and service providers (for instance, Amazon, Dell, Expedia, and others) that accept bitcoins.
- Hardware authentication. This is a relatively new technology, which makes it possible to use a hardware key (memory card) for the authentication in the mobile or desktop bitcoin wallet. Such a key is much safer than a password or a fingerprint.
Approaches to developing bitcoin wallets
SDK (Software development kit)
. There are several ways to develop a cryptocurrency bitcoin wallet. The most optimal one is the use of a public library.
There are quite a few of them and the most popular ones are:
- Coinbase. One of the most popular public cross-platform libraries on the basis of Java. It provides an opportunity to operate not only Bitcoin but also Ethereum, Litecoin, and other cryptocurrencies.
- Blockchain. Supports a wide range of languages to write code in and works on such platforms as Android, Windows, iOS, Linux, Mac OS.