<p>Setting up and operating an exchange can be quite involved.</p>

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

<p><strong>Legal</strong></p>

<ul>
<li>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.</li>
<li><p>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.</p></li>
<li><p>Merkle Tree offers a useful high-level global map of the regulatory landscape.</p></li>
</ul>

<p><strong>Banking</strong></p>

<ul>
<li>What sorts of banking relationships do I need and how can I secure them?</li>
<li>Note that banks <em>can</em> be heistant to provide services to digital currency exchanges.</li>
</ul>

<p><strong>Tech + Security</strong></p>

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

<ul>
<li><p>Matching engine</p></li>
<li><p>Risk management system</p></li>
<li><p>Accounting/audit system</p></li>
<li><p>Wallet management</p></li>
<li><p>Payment gateways</p></li>
</ul>

<p>Security is understandably paramount.  Some things to consider:</p>

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

<p><strong>Volume</strong></p>

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

<ul>
<li>Channeling liquidity from large exchanges like Bitfinex to your exchange</li>
<li>Messaging, media presence, brand creation and maintenance, ads and retargeting</li>
<li>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</li>
</ul>

<p>Hope this is helpful for getting started!  </p>

<p>Disclosure - I work at a firm called AlphaPoint (<a href="http://alphapoint.com">http://alphapoint.com</a>) - 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.</p>

CC BY-SA 3.0
2015-09-28T20:45:46.217Z
2015-09-28T20:45:46.217Z
Michael Haley
<p>You need three components:</p>

<ol>
<li>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.</li>
<li>A matching engine that looks at the current buy and sell orders and matches orders together and executes the trades.</li>
<li>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.</li>
</ol>

<p>Some challenges:</p>

<ol>
<li>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.</li>
<li>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.</li>
</ol>

<p>Best of luck!</p>

CC BY-SA 3.0
2014-05-27T06:50:08.033Z
@Bitlab- Can you give me some more ideas about matchine engine?? Should we design it?? or Is it available in readymade??
Jsd
CC BY-SA 3.0
2016-12-08T15:10:26.700Z
You might modify something like this https://developers.google.com/ad-exchange/rtb/open-bidder/
Vinnie James
CC BY-SA 3.0
2016-12-08T15:12:30.170Z
Or this https://openrtb.github.io/OpenRTB/
Vinnie James
CC BY-SA 3.0
2013-12-11T23:54:10.220Z
2013-12-11T23:54:10.220Z
Bitlab.co
<p>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. </p>

<p>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.</p>

<p>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 $</p>

<p>That is how an exchange works  </p>

CC BY-SA 3.0
2014-01-14T22:42:51.353Z
2014-01-14T22:42:51.353Z
Khan Shahrukh
<p>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:
<a href="https://bmfiddle.com/f/#/Wn322" rel="nofollow">https://bmfiddle.com/f/#/Wn322</a></p>

CC BY-SA 3.0
2014-11-21T06:35:15.637Z
Thanks for sharing this, I wasn't aware of bmfiddle - seems like a great way to create and relay business plans.
Eric Kigathi
CC BY-SA 3.0
2013-12-19T17:26:44.640Z
2013-12-19T17:26:44.640Z
user10950
<p>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.</p>

<ol>
<li>Someone to fund the process for paying salaries of 2, 3 and 4 below. (I am assuming you are this).  </li>
<li>Someone to create the front-end (skills depending on how fancy you want it to look). </li>
<li>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. </li>
<li>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.</li>
</ol>

<p>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. </p>

CC BY-SA 3.0
2015-02-09T19:55:19.690Z
2015-02-09T19:55:19.690Z
Jus12
<p>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.</p>

<p>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.</p>

CC BY-SA 3.0
2014-02-12T09:54:09.830Z
2014-02-12T09:54:09.830Z
Al Sutton
<p>You can create an exchange with <a href="https://github.com/AdamCox9/nickelbot" rel="nofollow">https://github.com/AdamCox9/nickelbot</a> and it only interacts with other exchanges so there is no need to set-up wallets on the server.</p>

CC BY-SA 3.0
2016-04-07T03:00:16.393Z
2016-04-07T03:00:16.393Z
Adam Cox
<p>Get more contacts with traders, they will be a part of website popularity.</p>

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

CC BY-SA 3.0
2016-10-12T13:32:24.533Z
2016-10-25T23:04:28.370Z
2016-10-25T23:04:28.370Z
Coin Joker
<p>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.</p>

<p>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 <a href="https://bitcoin.stackexchange.com/questions/17007/what-is-needed-to-make-a-bitcoin-exchange">this thread</a>...is there anything else I should consider?</p>

<p>Also, if I do set up an exchange, can I control of the fee rates? <a href="https://bitcoin.stackexchange.com/a/10081/10639">Other sites</a> 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?</p>

CC BY-SA 3.0
2013-12-11T21:01:32.060Z
This could be a rather difficult question to fully answer... Have you looked at all on bitcointalk.org?
BenjiWiebe
CC BY-SA 3.0
2013-12-11T23:16:14.017Z
It would require quite a lot of programming skill and experience in server security as well as scalability.
Steven Roose
CC BY-SA 3.0
2013-12-12T11:07:49.053Z
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.
CodesInChaos
CC BY-SA 3.0
2013-12-12T13:42:31.007Z
The question definitely provokes the same questions as the one the asker linked, the whole fee part introduces a separate question which at least the present answer doesn't even pick up on. I am confused (especially since you have 3k rep on SO) that you didn't just add a bounty on the exact duplicate question you found and opened another question just concerned with the fee part.
Murch
CC BY-SA 3.0
2013-12-12T14:20:27.027Z
However, I will concede that it is phrased much nicer and thus might inspire nicer answers as well.
Murch
CC BY-SA 3.0
2013-12-12T16:04:07.483Z
@Murch That's pretty much what I was going for. And I wanted to see if there were any other details that other thread had missed.
Chad Johnson
<exchanges><trading>
What would it take to create my own Bitcoin exchange?
Chad Johnson
# What would it take to create my own Bitcoin exchange?

(Asked by: username_0 on 2013-12-11)

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](https://bitcoin.stackexchange.com/questions/17007/what-is-needed-to-make-a-bitcoin-exchange)...is there anything else I should consider?

Also, if I do set up an exchange, can I control of the fee rates? [Other sites](https://bitcoin.stackexchange.com/a/10081/10639) 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?

**Tags:** exchanges, trading

> **Comments:**
> **username_1**: This could be a rather difficult question to fully answer... Have you looked at all on bitcointalk.org?  
> **username_2**: It would require quite a lot of programming skill and experience in server security as well as scalability.  
> **username_3**: 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.  
> **username_4**: The question definitely provokes the same questions as the one the asker linked, the whole fee part introduces a separate question which at least the present answer doesn't even pick up on. I am confused (especially since you have 3k rep on SO) that you didn't just add a bounty on the exact duplicate question you found and opened another question just concerned with the fee part.  
> **username_4**: However, I will concede that it is phrased much nicer and thus might inspire nicer answers as well.  
> **username_0**: @username_4 That's pretty much what I was going for. And I wanted to see if there were any other details that other thread had missed.  

---

## 8 answers

### Answer by username_5 on 2015-09-28. Score: 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.


---

### Answer by username_6 on 2013-12-11. Score: 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!

> **Comments:**
> **username_7**: @Bitlab- Can you give me some more ideas about matchine engine?? Should we design it?? or Is it available in readymade??  
> **username_8**: You might modify something like this https://developers.google.com/ad-exchange/rtb/open-bidder/  
> **username_8**: Or this https://openrtb.github.io/OpenRTB/  

---

### Answer by username_9 on 2014-01-14. Score: 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


---

### Answer by username_10 on 2013-12-19. Score: 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>

> **Comments:**
> **username_11**: Thanks for sharing this, I wasn't aware of bmfiddle - seems like a great way to create and relay business plans.  

---

### Answer by username_12 on 2015-02-09. Score: 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.


---

### Answer by username_13 on 2014-02-12. Score: 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.


---

### Answer by username_14 on 2016-04-07. Score: 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.


---

### Answer by username_15 on 2016-10-12. Score: 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.


---

