You want to start your own bitcoin exchange, but don’t know where to start? Well, you have come to the right place. This article intends to clarify which things you need to consider before you want to launch your own bitcoin/cryptocurrency exchange, how the internal architecture of an exchange software should be structured and most importantly, where to get your exchange software.
How to Start a Crypto Exchange
Starting a Crypto exchange involves six basic steps:
- Decide where you want to do business
- Learn about relevant regulations in that area
- Partner with a bank or payment processor
- Establish a transaction history and liquidity on the exchange
- Implement best security practices
- Offer customer support
Now, let’s explore each of those in greater depth.
1. Establish the operational scope of your exchange
Whether you want to operate globally or confine yourself to a specific region or country, you will usually be required to get necessary licensing and approvals for you company to open a bitcoin exchange according to your operational scope. Laws vary from place to place, hence, consult with a legal expert regarding the licensing and compliance with local laws and regulations.
2. Review the country’s regulations and compliance requirements
Almost all governments require entities which are involved in the currency exchange business to adhere to the Know Your Customer (KYC) norms. KYC is the process whereby a business verifies the identity of its customers through government issued ID cards or passports. The main purpose here it to discourage money laundering. Make sure you adhere to your country’s KYC norms and integrate a suitable customer verification procedure into your exchange. Otherwise, you might be wondering someday why the police is suddenly standing in front of your door.
3. Partner with a Bank or Payment Processor
You will need to partner with a bank or payment provider to process payments via fiat currency. Choosing a trustworthy bank with a host of online facilities is a good choice. This is more relevant in developing and under-developed economies where most banks do not have a facility to initiate an instant bank transaction online. Transactions may take up to two days for settlement. Partnering with a bank which has fast clearance and settlements of funds will provide convenience to your customer. Adding and withdrawing of fiat funds can be automated via payment gateway or even can be done by manual remittance.
4. Create Liquidity on Your Exchange
Any exchange needs liquidity to operate successfully. Customers are hesitant to place orders or even deposit funds unless they see a full order book and trading activity. New exchanges naturally encounter liquidity issues. There are three established ways of kick-starting your liquidity:
- You can simulate trading activity within your exchange by buying and selling between two artificial accounts within your own exchange.
- You can implement an API interface which connects your bitcoin exchange to another existing exchange.
- You can join a whole network of cryptocurrency exchanges such as Trust-Deposit which will tie together the liquidity of all exchanges within its network. The bigger the network, the better the liquidity.
5. Ensure High-Grade Security for Transactions and Customer Data
Any exchange needs top-notch security to ensure that both the exchange operator’s and his traders’ funds remain secure. This should also apply to your customers’ private data which include their KYC details and bank account information. There have been incidents of security breach at various exchanges like the infamous Mt. Gox breach where the security breach went unnoticed for years resulting to almost 1% of total bitcoins in circulation at that time being stolen. According to a Reuters report, a third of all bitcoin exchanges operational during the period of 2009 till 2015 were hacked. The main take-away: Security must be the top priority within your exchange.
6. Establish Customer Support Channels
Finally, customer support is another vital component of a successful exchange. Staff is needed for approving KYC requests, answering customer complaints, processing the deposit and withdrawal of fiat currency, etc. A swift customer support mechanism ensures you’re your customers start trading and generate revenues for you exchange from the very moment he has signed-up.
The Architecture Of A Crypto Exchange Software
Any exchange software should have these 4 different components working together:
1. The first component is the trade engine. The trade engine should be the core of any exchange. It accesses the order book, matches buy/sell orders, executes transactions and calculates balances. Without a trade engine, your exchange cannot function. So make sure you have a working trade engine before setting up anything else, or otherwise you will merely have an empty shell.
2. The second component is the user interface (UI) or front end of the exchange website. The user interface is how your traders see your exchange (e.g. trading platform and the design of your website). Any user interface must be user friendly and intuitive. This may sound cheesy, but make it your goal to offer your customers a wonderful trading experience (Tipp: less is more). The UI needs to be mobile friendly too, as the use of smartphones is constantly increasing. A dedicated app for mobile devices would make the exchange more easily accessible which in turn may enhance trading engagements. Ideally, the UI should enable the user to: –
- Register and access an account
- Deposit, maintain and withdraw Crypto and Fiat currencies
- View current order book, past transactions, balances, statistics etc.
- View charts
- Place buy and sell orders
- Access the support mechanism
3. The third component is the wallet. The wallet is the bitcoin daemon running on the exchange server. This is where the bitcoins (of the exchange operator and his traders) are stored, hence it needs maximum security. Any exchange should implement a so-called hot/cold wallet system to diversify risk.
The hot wallet is the bitcoin gateway of the exchange and allows the customer to instantly withdraw bitcoins to their external wallet without the need of approval from an exchange operator. A hot wallet need to have a positive balance for instant withdrawals which can be set according to the turnover of the exchange.
A cold storage wallet is where rest of your bitcoins are stored. This wallet is completely offline which guarantees that nobody can access your leftover bitcoin even if your hot wallet is hacked (Therefore, it is advisable to always put aside a certain amount of bitcoins and leave them in your cold storage wallet.). A simple cold storage wallet could be a piece of paper or an USB stick where your private keys are located.
Splitting the bitcoins into hot/cold wallet system provides a perfect balance between security and convenience for instant withdrawals.
4. The fourth component any exchange should possess, is an admin panel. The admin panel of an exchange is the equivalent of business intelligence and management software. It helps the exchange operator control and manage his exchange. Functions should include:
- Altering liquidity
- Editing the spread and trading fees
- Approving user accounts for trading, after verifying KYC or other compliance requirements
- Managing currencies like BTC, USD, ETH, etc. and markets like USD/BTC, BTC/ETH, etc.
- Crediting fiat deposits, or debiting fiat withdrawals requested by users
- Addressing the support requests raised by users
In summary, these four components, the trade engine, the user interface, the wallet and admin panel should form the basis of any exchange software (Software engineers call this architecture of splitting your software micro-services).
Available Options: Where Do I Get My Exchange Software?
There are three options when it comes to acquiring (and maintaining) Bitcoin Exchange Software:
Building the exchange software in-house: Gather a dedicated team of developers (friends, freelancers) to build (and maintain) your exchange software. Make sure that they understand how an exchange operates in general, how cryptocurrency and blockchain technology works, and that they implement the above-mentioned components.
From a programming language point of view, the choice of the proper language might also vary depending on which cryptocurrency you want to implement for your exchange. Furthermore, make sure that your software is compatible with various payment processing platforms or banks to safeguard payment transactions within your exchange.
Most importantly (this is a no-brainer, but some people seem to have unrealistic expectations), you need to estimate the costs and time associated with developing, maintaining, and constantly upgrading the software in-house. Due to its inherent complex nature, developing an exchange software from scratch will be quite costly and might take up 1-2 years (depending on your developers’ experiences) until it works properly. Contingent upon the salary of your developers, their experience, and what functionalities you want to incorporate into your exchange (multiples languages, currencies, mobile application, etc.), development costs range between 300.000 – 400.000 Euros. Bear in mind though, that these numbers are just a rough estimation based on our experience since so many different factors need to be considered.
Using free/open source scripts: If you check out GitHub or other forums, you will discover quite a few open-source bitcoin exchange scripts. The big benefit obviously is that the source code is free. Nevertheless, there are also a few risks that must be considered:
- You still need someone with technical knowledge to understand and implement the lines of code within the open-source script. Becoming acquainted with how the script works, will take time and modifications to enable customization, will also require additional time and money.
- There is no guarantee that the script is secure and reliable. It might be buggy, susceptible to hack attempts or in the worst case, includes malicious lines of code, which slowly but unnoticeably extract your funds or bitcoins.
- The amount of development support on an open source system is rather sparse. Most of the time, your team of developers will be left on their own to figure out how to fix bugs or improve performance. Worst case, if the project is abandoned, you will be left with absolutely no support or whatsoever.
White label exchange software: White label exchange software is software that has already been thoroughly tested and proven to work (particularly the trade engine!), while at the same time allowing you to customize and alter the software to match your individual requirements (e.g. design, brand placement, languages, currencies, charting etc.).
A big advantage of using white label software is that you save yourself the hassle of dealing with technical requirements, implementation and ongoing maintenance. Since the core components (trade engine, wallet, UI and admin panel) have already been developed and tested, the “only” thing left is to customize the software to your liking. You save yourself time because the customization time is much shorter (usually a few months) and you save yourself a lot of money because you pay significantly less for a white label software license compared to developing it on your own (for the ones who insist on a number.