19

I'm looking into creating a Bitcoin / crypto currency trading platform (say, like Tradeking), as I've noticed there are a few sites out there already, except they all have pretty hefty fees.

So, to reduce fees, is it possible to create my own Bitcoin exchange? What is involved in setting one up? I'm pretty sure I'll need to develop an API, which I can do (I am an experienced software developer). I'll also need a business entity and a business bank account to use for transactions. What else? I see this thread...is there anything else I should consider?

Also, if I do set up an exchange, can I control of the fee rates? Other sites have rates averaging around 0.5%...can I set mine to whatever I want (considering my costs), or am I limited in some way by some third-party entity?

8
  • This could be a rather difficult question to fully answer... Have you looked at all on bitcointalk.org?
    – BenjiWiebe
    Commented Dec 11, 2013 at 21:01
  • 1
    It would require quite a lot of programming skill and experience in server security as well as scalability. Commented Dec 11, 2013 at 23:16
  • 1
    The programming part by itself shouldn't be that hard. Withstanding DDoS is annoying. The legal issues are the real problem, especially if you offer exchange conventional currencies. Commented Dec 12, 2013 at 11:07
  • 1
    Thanks for linking to my own answer (or the question to it). How does your question differ? Fees? Regarding fees, I had the same plan initially of undercutting just about any exchange out there. Remember you have to recoup costs, e.g. in mtgox's case the losses from a forfeited bank account, a lawsuit from a business venture probably aimed at being more law-compliant, possible costs associated with becoming properly licensed, and all the staff needed for anti-money-laundering compliance...
    – user6049
    Commented Dec 12, 2013 at 12:20
  • 2
    Also note that you may not need your own exchange just to get access to lower fees than 0.5%. A typical bitcoin exchange has a fee schedule that start around that percentage for small customers, and becomes progressively lower, typically down to about 0.2% to 0.25%, for customers generating huge trading volume. So if your trading platform generates sufficiently large volumes, you may be able to budget less than 0.5% for external trading fees.
    – user6049
    Commented Dec 12, 2013 at 19:07

8 Answers 8

19

Setting up and operating an exchange can be quite involved.

A few tiers to start thinking about: legal, banking, tech+security, and volume.

Legal

  • The first question is whether you want to operate globally (e.g. Bitfinex or BitStamp) or focus on a national market (e.g. FlowBTC, meXBT). The next step is to seek legal counsel to help decide where you want to locate and how to incorporate/structure your business.
  • You want to think about how you can limit your liability and exposure to litigation, as well as what regulatory/compliance requirements are in your jurisdiction, and what they are likely to be in ther near term.

  • Merkle Tree offers a useful high-level global map of the regulatory landscape.

Banking

  • What sorts of banking relationships do I need and how can I secure them?
  • Note that banks can be heistant to provide services to digital currency exchanges.

Tech + Security

You or a partner need to build and maintain complex architecture that pairs orders, executes transactions, and manages deposits and withdrawals. Major componets are:

  • Matching engine

  • Risk management system

  • Accounting/audit system

  • Wallet management

  • Payment gateways

Security is understandably paramount. Some things to consider:

  • Sound internal security procedures among your team - see, e.g. CryptoCurrency Security Standard (CCSS) (incredibly important, and often overlooked)
  • Network and hardware security (secure data center, etc.)
  • KYC (Know Your Customer) + AML (Anti-Money Laundering) solutions
  • Two-Factor Authentication for users

Volume

Without lots of live volume, all the above is for naught. It is well worth your time to actively consider all of the below:

  • Channeling liquidity from large exchanges like Bitfinex to your exchange
  • Messaging, media presence, brand creation and maintenance, ads and retargeting
  • User definition (is this a retail exchange, for advanced users?, etc.), and using this to inform UI design and to prioritize features for product differentiation

Hope this is helpful for getting started!

Disclosure - I work at a firm called AlphaPoint (http://alphapoint.com) - we provide white label tech to many of the largest Bitcoin exchanges in the marketplace, including full stack tech and hosting, as well as order routing for day-one liquidity.

17

You need three components:

  1. A user account system that allows users to register, maintain a balance, deposit and withdraw BTC and other currencies, and place buy and sell orders. You'll need to integrate this with a payment processor to support currency deposits and withdrawals.
  2. A matching engine that looks at the current buy and sell orders and matches orders together and executes the trades.
  3. A Bitcoin wallet to actually store each user's BTC balance. You should use a hot/cold wallet system that keeps most of the BTC offline.

Some challenges:

  1. You need to track each user's Bitcoin balance so you'll need a way to keep the Bitcoin wallet in sync with a database like MySQL or MongoDB. A good way to do this is to combine the blocknotify command with the listsinceblock() JSON-RPC call.
  2. The biggest challenge is keeping your bank account from getting closed. Many banks are wary of Bitcoin and navigating local, state and federal laws can be tricky.

Best of luck!

4
  • @Bitlab- Can you give me some more ideas about matchine engine?? Should we design it?? or Is it available in readymade??
    – Jsd
    Commented May 27, 2014 at 6:50
  • You might modify something like this developers.google.com/ad-exchange/rtb/open-bidder Commented Dec 8, 2016 at 15:10
  • Or this openrtb.github.io/OpenRTB Commented Dec 8, 2016 at 15:12
  • You could make a pure cryptocurrency exchange, then there is no fiat currency to worry about, and therefore no bank to close your account.
    – user48006
    Commented Apr 11, 2018 at 15:45
6

Bitcoin exchange is not a giant, what all you need is running daemons of the coins in the backend on your server, a front end PHP website which deals with the transactions taking place on the website. You also don't need a bank account, you can accept USD with so many online payment gateways which do not connect with banks.

So what actually happens is you run daemons in the back end they keep sync with the network you use json script to send commands to the daemons and get the response back. When a user comes to your website and he chose to deposit bitcoin he navigates to that page and click on get deposit address this request is sent to daemon and daemon response with a address where he should send bitcoins, once he sent bitcoin you need a cron job to communicate with the daemon to check how many transactions have been confirmed. Insert confirmed transactions into database and let the user trade with database only. When he place a withdraw request daemon again comes into picture.

In short a exchange is : I came to your casino paid you a $ and u gave me some chips these chips have no value anywhere else but in your casino I kept playing(I can play until I have chips with me) and winning. When I am done with playing and made good amount I came back to you gave you back your chips and took real $

That is how an exchange works

3

I'm trying to find sort of a business model template, the closest I got to is something really basic but might be helpful to you: https://bmfiddle.com/f/#/Wn322

1
  • Thanks for sharing this, I wasn't aware of bmfiddle - seems like a great way to create and relay business plans. Commented Nov 21, 2014 at 6:35
2

To create an exchange, you essentially need 4 entities, each one may be composed or one or more sub-entities, but in general the 4 roles do not overlap.

  1. Someone to fund the process for paying salaries of 2, 3 and 4 below. (I am assuming you are this).
  2. Someone to create the front-end (skills depending on how fancy you want it to look).
  3. Someone to create the back-end (the database layer, order matching engine, wallets, deposits, withdrawals, etc). This person/team needs to have detailed knowledge of Bitcoin.
  4. Someone to handle the financial and legal aspects, getting licenses etc. This one needs good connections (apart from the ones of 1.), knowledge of regulations and laws.

Thats for creating it. Once you have it running, you will need people from 2 and 3 to maintain it and another one to additionally handle fiat transactions and to top up the hot-wallets. Needless to say this person must be extremely trusted.

1

One of the things you need is a good understanding of your countries laws. Many countries have regulations around handling and exchanging money, and without understanding those you could find your exchange shut down, or worse, find yourself in jail on money laundering charges.

The software and algorithms for running an exchange are quite simple, but the regulatory issues aren't, so you'll probably find a lot of the fees exchanges charge go into compliance; i.e. making sure they can continue trading.

1

You can create an exchange with https://github.com/AdamCox9/nickelbot and it only interacts with other exchanges so there is no need to set-up wallets on the server.

0

Get more contacts with traders, they will be a part of website popularity.

Setting a price range is determined globally. So keep watching the bitcoin price value for updates.

Not the answer you're looking for? Browse other questions tagged or ask your own question.