There are two kinds of cryptocurrency wallets: custodial and non-custodial. Custodial ones are a service or an application where a developer is responsible for storing keys and creating backups. Types of custodial wallets:
A non-custodial wallet is an application or a device that stores private keys. When registering such a wallet, a user indicates a mnemonic phrase. Using this phrase, they can restore access to their cryptocurrencies if they lose keys. Types of non-custodial wallets:
An application is downloaded from the Apple App Store or Google Play and installed on a smartphone/tablet. Since there are only a few popular blockchains capable of fitting in the memory of a mobile device, such wallets are created thin to avoid downloading the entire blockchain. After registering or logging in, a user can send and receive cryptocurrency through transactions with other people. In order for transactions to go through the network, the wallet will partially synchronise with the blockchain.
In fact, coins are not transferred across the network or blockchain. Initially, they appear when a miner has generated a block and added it to the chain. There they stay forever. The ‘sending’ and ‘receiving’ operations are actually transactions of information, not coins. One participant of a network sends another the right to use certain coins (or fractions), confirming it with a private key. When synchronising, all network participants receive information about transferring rights to these coins from one address to another.
Each mobile crypto wallet has two kinds of keys:
At the start of their project, a customer should have a vision of their mobile crypto wallet. It should be presented as terms of reference (TOR). When there are no TOR, together with a customer we fill out a brief and then draw up the TOR anyway. Only after this we start the development.
The cycle of developing a mobile cryptocurrency wallet consists of 7 stages. Let’s briefly describe each stage.
A project manager studies the brief and client’s requirements, negotiates possible team members to be involved in the project, and estimates time and cost of the development. The result of their work is a project concept with details on goals and stages.
A team lead defines the technical requirements for the mobile app. They form the app’s specifications and describe the detailed plan and tasks for developers. A project manager or a software architect can also carry out analytics.
If a client does not have drafts or a prototype of a user interface, a UI/UX designer creates them from scratch. First they create a wireframe with the main details of the future application and then — prototypes. The final design is drawn up after confirming the interface and the functions required by the client.
Developers start programming according to the TOR, brief, and available prototypes. When developing for iOS, they write in Swift or Objective-C. In case with Android, they write in C++, C#, Java, Kotlin, or Python.
When the code is ready and the application operates, a UI/UX designer checks its interface. The result of this stage is an alpha version of a crypto wallet ready for quality assurance.
When developers release an alpha version of the crypto wallet, testers and QA engineers start testing it. We test applications taking into account all possible use cases. If we find bugs or flaws, we fix them on the spot. A beta version release is possible only after all team members confirm the quality of the released app.
After the team completes testing and fixes all bugs, the project manager submits the mobile crypto wallet to Apple App Store and/or Google Play. Alternatively, a client can take it upon themselves and publish the application on digital distribution platforms.
After the release, experienced users can encounter bugs that did not pop up during the testing period. Such bugs must be fixed by developers. During the first two or three months users can also ask to improve some functions or to implement new ones. Such feedback must be taken into account for the further development of the mobile crypto wallet.
Most mobile crypto wallets have the same functions as mobile banking apps or payment systems (PayPal, Stripe). They allow carrying out transactions via QR codes, sending cryptocurrencies to other users, and paying for purchases. The main functions are:
Non-custodial mobile wallets for crypto exchanges require additional functions that are important in their own way. They can be more about market prices, conversion, and exchange of one cryptocurrency for another. Here is an example of a cryptocurrency wallet we have developed for the Polyx platform. The Android version was released in October 2021, and the iOS version — in February 2022.