How to Build Blockchain Bitcoin Cryptocurrency Wallet App Development
Let's denote what cryptocurrency wallets are, what you need to create them and how much it costs. We describe the stages of development.
A cryptocurrency wallet is a program or service with which you can store, receive and transfer cryptocurrency. They are of several types, have a different set of functions and a list of supported currencies.
These are software solutions that need to be installed on a personal computer, laptop or tablet. They are of two kinds:
1. Full, or thick - require the download of the entire cryptocurrency blockchain, which can reach several hundred gigabytes. As of November 2018, the bitcoin blockchain occupies 220 GB, the ethereum - 670 GB.
2. Thin, or light - you need to install a software installation media that is responsible for authentication, exchange and accounting of transactions. To install them you need from 20 to 100 MB of free space.
Full wallets are safer, since they are synchronized with the blockchain cryptocurrency, which gives more guarantees for the storage and transfer of coins. However, due to their large size, they cannot be installed on devices with small amounts of permanent memory, thus lightweight cryptocurrency wallets were developed.
These are Internet services that allow you to store, buy and transfer cryptocurrency without having to install a wallet on your device. In addition to standard operations, they can be used to for trading on exchanges, calculate a commission through built-in calculators and conduct operations with banks, online stores and other payment services.
These are programs designed for installation on smartphones and tablets. They are interesting to those who use the crypt for frequent small transactions or pay for goods and services in online stores. Such wallets are considered “transit” because they do not have constant synchronization with the blockchain and are relatively easy to crack.
Gadgets, for example, flash drives, designed for cold storage of keys. It is inconvenient to trade and make transactions with their help, so they are practically not in demand among ordinary users.
They represent a paper with printed out a public address and a private key. Information can be presented “as is”, in the form of QR codes or encrypted. A great option for long-term storage of virtual money for those who do not trust digital devices.
● Bitaddress.org. The most popular Internet service for creating paper keys with encryption of information through QR codes.
● WalletGenerator.net. Convenient service that unloads the distribution kit to create a paper wallet on the user's device so that no one on the network has the opportunity to “peep” something.
● MyEtherWallet.com. Service creation of paper wallets for etherium. Not very convenient, but users love it.
When a customer addresses to the developers of cryptocurrency wallets (or his staff members), he should have a clear technical task (TT) with a detailed description of his vision of the product and the functions that it should have.
1. Login form.
2. Personal profile.
3. Conversion Rate.
4. QR code scanner.
5. Trading services.
6. Push notifications.
7. Password and PIN protection.
If the TT is not written, the developers ask the client (chief) to fill out the brief - a list of questions, the answers to which will help to prioritize the project, its objectives and goals. In addition, using the brief, you can choose the optimal development model: agile - development goes through iterations (step by step), waterfall - the application is developed entirely.
At the end after filling the brief we get:
● development methodology;
● description of goals, objectives and basic functionality of the wallet;
● target platform: macOS, Android, Windows, UNIX or cross platform.
At the beginning of any development, the question is always asked: “What is the cost?”. And almost immediately after it comes the following: "How long will the development take?" To get answers to these questions, you need to evaluate the project and draw up a rough work plan. It usually connects the project manager, which can be both on the part of customers and performers. His duties are to coordinate the work of the team and communicate with the customer.
When evaluating a project, the TT, brief and customer’s wishes are coming under review. The time required to develop an application and test it is evaluated. Pain points in the technical task and previously unused product usage scenarios is revealed.
Express evaluation is done during the day. It gives a rough idea of the number of necessary labor hours that are needed to create the finished product. Detailed assessment is carried out within two to seven days. Thanks to it, you can get an accurate idea of when the customer will receive a wallet ready for use and what it will be like in the end.
At the end we get:
● scope of the project;
● development budget.
During this phase of development, key requirements for the final product are determined, schemes for the interaction of a regular user with an interface are built, options are proposed to achieve what is intended, and a basic scheme of user interest is created.
Business-analytics is not always conducted by the developer. It happens that customers fulfill it on their own or come with a list of ready-made requirements. In this case, the customer (or the one who conducted it) is responsible for the quality of analytics.
At the end of business-analytics we get:
● specification of functional and non-functional
● basis and user interface specification;
● detailed development budget;
● worked out development plan.
If the customer does not have a ready-made user interface design (UI / UX), the development team creates it from scratch. First, the UI / UX base and wireframes are created, which are transferred to the customer, after its approval, a visual design is created taking into account all user scenarios: a prototype, graphics elements, a map and a screen switching scheme, etc.
At the end we get:
● preliminary interface design;
● map and screen switching scheme;
● UX/UI specification.
After the technical task has been drawn up, the project has been evaluated and the design with the prototype has been drawn up, the programmers start writing the code. Written in TT and plans is implemented in a binary code, the application logic is connected with the server part and the blockchains of cryptocurrencies. Design sketches are also embodied in the code - UI elements and interface styles are written.
To speed up and reduce the cost of development, open-source libraries can be used: Chain-java, Bitcoinj, Blockchain, Coinbase and others. These are sets of ready-made software solutions that can be used like elements of the Lego constructor.
The designer connects after the design is composed. He checks how well the programmers implemented the styles: whether the colors are right, how well the styles correspond to the designer’s idea, how rounded the corners are, whether the design is adapted for devices with different sides ratios.
At the end of this stage we get:
● ready for testing version of the product (MVP, alpha version);
● design corrections.
When the code implements a part of the wallet's functionality, it starts testing. Experts check the application with all possible scenarios for its use in order to identify flaws, errors and bugs. All of them are entered into a special “bug list” that is sent to developers for corrections.
At the last stages, not only the application code and compliance with the intended design, but also usability is checked - how convenient is the wallet to use, is the interface clear at the intuitive level.
At the end we get:
● minimum number of bugs or their absence;
● simple, intuitive interface;
● pre-release product.
After completion of testing and improvements, analysts, testers, designers, marketers, developers and the customer should give the go-ahead to complete the project and its release. If everything is fine, it will be added to GeekHub and Google Play and the App Store digital marketplace.
Both the developer and the customer can add the wallet to the marketplace listings. To do this, you need to contact the employees of digital services and pass their check for compliance with their requirements and legislation.
At the end we get:
● ready cryptocurrency wallet placed in GeekHub and marketplaces.
The history of the development of a cryptocurrency wallet does not end with the release. If the customer and / or users found bugs, they should be eliminated. In addition, the first few months show that you still need to “finish” or redo it so that the wallet becomes more convenient and functional.
If the development of the application is provided in the initial plans, then the development team simply continues to work on the project. If this is not provided for, a maintenance contract is drawn up or a new development stage starts, taking into account the obtained data.
At the end we get:
● maintenance contract, which may include 1 year of project development (making relatively minor improvements) and a guarantee for eliminating bugs.
The cost depends on how much time the developers have spent on its creation. For example, experts estimate the development time of the Coinbase Android version of the wallet at about 700 hours:
● Exchange - the hardest part - 200 hours;
● Send/Request coins — 120 hours;
● Profile — 100 hours;
● Notifications — 100 hours;
● Dashboard — 40 hours;
● Sign In/Up — 40 hours.
About 100 more hours are needed for various small parts. Wallets like Blockchain and BitcoinJ require less labor - from 550 hours. Development of such applications for iOS will require other labor costs: Coinbase - 600, Blockchain - 500, BitcoinJ - 450+ hours.
If we take the rate of $35 per hour as a basis, the following cost structure will be released for developing designated cryptocurrency wallets
The rate of $35 per hour is the average between how much developers take in North America ($80–100 / hour), Western Europe ($60–90 / hour), Eastern Europe ($30–60 / hour), India ($20-50 / hour) and Africa ($15-50 / hour).
Thus, it turns out that the approximate cost of creating a cryptocurrency wallet can vary from $45,900 to $200,000 (in the United States) depending on the technical specifications, application functionality, development team salaries, and other factors.
First. When developing cryptocurrency wallets, first of all you should remember its security, since this is the main reason for using cryptocurrency as a means of payment and saving the value of money.
You can increase the security of your wallet by:
● creating an application based on initial code;
● using of two-tier verification system;
● using of biometrics for user authentication;
● longer testing phase;
● other tools.
Second. Using the wallet should be intuitive, especially if it is designed for ordinary users, not for people obsessed with security and anonymity (such people are not afraid of complexity). And it is so understandable that it was immediately clear how to transfer Bitcoins and Altcoins, where to set security parameters and which character set serves as an address, and which one as a secret key.
Third. The described stages and nuances of developing cryptocurrency wallets do not include legal subtleties. For example, it may happen that the SEC classifies broadcast as a security. If this happens, it is quite possible that wallets without built-in support for KYC and AML procedures will be “outlawed.” Therefore, you need to include these things in the development process.