How to build a cryptocurrency exchange app like Coinbase
Cryptocurrencies are everywhere now, and more and more people wish to trade them. The stunning rise of Bitcoin to almost $20,000 at the end of 2017 encouraged more people to trust this new way of investment.
Cryptocurrency trading is done at cryptocurrency exchanges, or online platforms, allowing to buy, sell and transfer cryptocurrencies. To enable secure and convenient trading, the exchanges operate through web or mobile apps with various functionality.
If you are planning to build a cryptocurrency exchange and create an app for it, we have put together some recommendations and best practices that may help you get started.
As an example of a successful, transparent and user-friendly cryptocurrency trading app, we will analyze Coinbase, an application that many users and experts find rather convenient.
Coinbase – why do users love it?
Coinbase began operating in 2011 as a Bitcoin trading exchange. Until 2011, Bitcoin remained virtually the only notable cryptocurrency, therefore, Coinbase operated with a single currency only. In 2016, the company added Ether as a traded currency and in 2017 – Litecoin and Bitcoin Cash.
By the way, the multi-currency operation is one of the features that distinguishes Coinbase from other exchanges, as many of them operate only in Bitcoin or Ether. And the users appreciate it, too.
Coinbase is the largest cryptocurrency exchange in the US. According to its own statistics, Coinbase currently serves more than ten million users.
The Coinbase package includes the exchange per se, the cryptocurrency wallet and the API allowing integration into other resources.
The advantages of Coinbase are:
- Support of bank transfers, PayPal and credit cards as the payment methods
- Operations with several cryptocurrencies (Bitcoin, Ether, Litecoin, Bitcoin Cash)
- Easy user onboarding and intuitive UI
- A range of related services, such as deposits, instant transfers between users
At the same time, for fairness sake, we should also mention the points where Coinbase falls behind:
- Limited geography (currently, Coinbase serves only 32 countries)
- Cryptocurrency stored with third parties (however, with the Vault feature enabled, this issue is resolved)
- Limited number of supported cryptocurrencies. Indeed, there are exchanges that support only Bitcoin, and in this case, Coinbase is definitely more effective. However, there are those that support dozens of currencies.
- Monitoring your cryptocurrency spending. It can even shut down your account when it decides that your transactions fall under a prohibited category
Coinbase earns its money from trading fees. It charges various fees on all buying and selling transactions, depending on the location and the transaction type. However, this seems to be enough to make $2.7 million per day. You can get the idea of the volume of transactions it performs.
Coinbase Wallet app
For cryptocurrency trading, Coinbase has a great mobile app full of convenient features. You can use it to perform any trade-related transactions, control your cryptocurrency accounts, monitor exchange trends.
However, Coinbase, despite its popularity and enormous customer base, is not the only one on top of the cryptocurrency exchange rating. Check, for example, Bittrex supporting more than 190 different cryptocurrencies, or Kraken with its very low fees. Comparing different crypto exchange platforms, you can get the idea of the functionality scope you need to include in your app.
How to develop a Coinbase-like application?
If you are planning to build a cryptocurrency exchange app, it takes some serious preparation and research.
You are about to venture into an industry which, on the one hand, is hardly regulated by any national laws or rules and, on the other hand, involves huge amounts of money. Therefore, you should be extremely careful in developing your app and, thus, thorough preparation is in order.
As with any project, the first stage is discovery. At this stage, the research of your future cryptocurrency application is done, and the application scope is defined.
Start your project planning with a market research. Analyze the competition and do user interviews to define their primary needs.
By asking the users about their experience with other similar products and their vision of a perfect cryptocurrency exchange platform you may get the idea of the scope to be implemented.
As a result of the discovery phase, you should be able to answer the following questions:
- What does the competition offer?
Study the competitors’ products and note their advantages and disadvantages. By creating a cryptocurrency application that resolves the problem other apps have you will immediately stand out.
For example, if we are talking about Coinbase, it only works with the three major cryptocurrencies – Bitcoin, Litecoin, and Ether. It does not list other currencies or ICO tokens. Therefore, a good idea may be to provide support for other cryptocurrencies as well.
- What market niche is my app aiming at?
This is an extension of the previous question. Do you target only cryptocurrency traders, or do you plan to attract ICO investors, too?
Are you planning only buy and sell transactions or peer-to-peer transfers, too?
- Which problem does our solution resolve?
You should be able to offer something that fills the needs of your users or the particular user group you are focused on.
Again, if we take Coinbase as the reference point, it may happen that it does not serve the region where your target group is located.
After the marketing research, use its findings to plan your project of building a cryptocurrency wallet app. Define the functionality scope of your application.
For example, for a Coinbase-like app, you may include the following functionality:
- New wallet creation
- Send/receive transaction support
- Account management
- Multi-currency exchange (as an alternative, you may develop only a Bitcoin exchange and wallet app, if your marketing research and user interviews suggest it)
- Instant exchange function (this is a great feature that Coinbase offers to users who want to trade Bitcoin but do not wish to be affected by its volatility. As soon as Bitcoin is received on their account, it is immediately converted into a fiat currency and credited to their wallet in USD, EUR or GBP)
- Real-time cryptocurrency rate charts
- Transaction history
- Push notifications and alerts about certain price peaks
- Onboarding flow with a brief introduction to cryptocurrency exchange and its options
During the project planning, you should also define whether you are going to create both web and mobile versions of your app, the mobile platforms your app will run on (we recommend developing both for iOS and Android, as this way you have good chances to nearly double your audience). That determines the technology stack you are going to need.
At the same time, running a cryptocurrency exchange requires compliance with legal regulations of multiple jurisdictions. Although cryptocurrencies are much less regulated than regular financial transactions, many countries are beginning to review their attitude towards them. This is due to the ever-increasing effect that cryptocurrencies have on the national economies and the global economy as a whole.
A wise move would be getting legal counsel on the regulatory situation in the countries you plan to offer your services in.
Think how you are going to earn with your exchange app. If you follow the Coinbase path, you should plan to charge commission on each trade transaction.
Alternatively, you can go commission-free, like Robinhood exchange app, and leverage the number of customers that you will be able to attract with your trading terms.
Usually, for cryptocurrency exchange apps, the back-end is created using Java or Node.js. For easier and quicker development, you can use the available libraries containing most of the required wallet functionality.
If you plan to develop an app supporting only Bitcoin trading, you can use BitcoinJ SDK. However, it has a significant disadvantage – it can be used only for developing Android apps. Alternatively, check Coinbase libraries that can be used both for iOS and Android.
As for the front-end, you have a variety of development platforms. You can use Angular or React, or if you want to save time and costs, opt for React Native. With React Native, you will build one application that can run both on iOS and Android without the need of creating two different ones.
Depending on the final scope and the required technology stack, you may need to put together the following professional product development team:
- A back-end developer with the knowledge of Java or Node.js
- An iOS developer
- An Android developer
- A front-end developer experienced with the selected front-end development platform
- A graphic designer
- A QA engineer to test the product
- A project manager to coordinate the development
There are multiple ways of organizing a team for a project. If you have in-house developers with the required skills, you are all set and can proceed with the project immediately.
However, if some skill is missing, or if you have no development department at all, you can either contract an outsourcing company or hire freelancers.
Both options have their pros and cons. For example, with freelance developers you can expect lower development costs, while a professional outsourcing agency can be contracted for ongoing support and maintenance.
We have done a detailed research on the possible team hiring options, where we outlined the advantages and disadvantages of each approach for your project: freelance devs vs. development agency for your project.
Prototyping and MVP creation
Before developing a full-featured product, we recommend creating a working prototype or a minimum viable product, or MVP.
This approach is especially practical when the budget is tight, and you need to raise funds. The prototype and/or MVP will, on the one hand, help you test your hypothesis with your users and, on the other hand, allow showcasing your product to the potential investors.
While planning your MVP, think of the core and killing feature that you wish to show.
In a cryptocurrency wallet app, this may be, for example, multi-currency exchange or instant exchange options. Make sure you include them in your MVP.
There are many prototyping tools on the market, and you will have no problem choosing the one suiting your purposes. Check, for example, InVision where you can build interactive prototypes showing the user experience and allowing to test it.
When your prototype or MVP is ready, ask the users, preferably, the same group of users you interviewed during the discovery stage, to test it. The results of such testing may suggest some changes to the functionality or UX.
After the prototype or MVP has been tested and the final scope has been approved, you can proceed with the development.
Usually, a mobile app development takes about 8 weeks – 10 weeks for back-end and 8 weeks for front-end. It may take longer if you decide to create two apps for iOS and Android; however, the ballpark figure is about 5 to 6 months.
The cost of development differs greatly depending on the location of your development team and the prices on that market.
In Eastern Europe, however, the average cost of full-cycle app development is between $50,000 and $150,000, depending on the complexity.
The nature of blockchain technology and cryptocurrency trading makes them heavily dependent on the quality of software development.
You have, probably, heard of the Parity Wallet bug that rendered about $150 million of Ether unavailable. So far, the solution has not been found.
Thus, an application designed for cryptocurrency exchange must be made by professionals who know what they are doing. The key point is engaging an expert team with expertise in the domain.
Intuitive design, useful functionality, professional development and creative marketing – this is the recipe for your cryptocurrency exchange app success.