Buy Bitcoins at Bitcoin ATMs

Risks of running a bitcoin ATM business

Running a bitcoin ATM brings a lot of opportunities. On the other side such a business brings a lot of risks too.

This post concentrates on two of the main risks which bitcoin ATM operators have to deal with and choose which way to follow:

  • Exchange rate risk;
  • Counterparty risk.

For simplicity reasons lets look at the case when bitcoin ATM allows buying bitcoins for cash, not selling. Every bitcoin ATM operator chooses how to run a bitcoin machine in this case:

  • By using own bitcoin stock;
  • Through exchange mirroring deals.

Selling bitcoins from own stock

This scenario is illustrated on the following diagram (click to enlarge):

Operating bitcoin ATM from own stock bitcoins

When running a bitcoin ATM in such a way, operator runs a wallet or uses external wallet service provider in order to grant bitcoin ATM full access to this wallet (including private keys).

The process is the following:

  1. User initiates buy BTC process at ATM for cash. At the same moment ATM accesses hot wallet and sends required amount of BTC to the address provided by user. This is the end of transaction and no additional action is triggered at time T1.
  2. Periodically operator collects cash from machine (time T2) and converts it to BTC (time T3). Conversion might happen at OTC market, localbitcoins, exchange (in this case operator needs bank relationships, because exchange will accept only wire transfer).
  3. When operator received bitcoins, he/she replenishes balance of the hot wallet with bitcoins (time T4), which again is used by ATM for other users’ operations.

The whole concept here is that this address/hot wallet needs to be tracked to have enough balance and operator replenishes it manually when the balance is low, so that there is no service interruption occurs. If you run a bitcoin ATM network then one address/wallet can be used for multiple machines simultaneously, or if it is not supported by a software — there should be a separate wallet used for each machine.

But the main point of this approach is that operator buys bitcoins and holds them for a period of time and there is a time lag between purchase of bitcoins by operator (T3) and selling of the same bitcoins to users (T1), e.g. when FIFO accounting method is used. In order for machine to function smoothly — there should be always some liquidity available in hot wallet, which means over time these frozen funds will increase or decrease in value depending on how BTC market price moves. This is an exchange rate fluctuation risk, which operator needs to absorb when operating a machine in such a  way.

Normally operator have an equivalent of at least $10K (usually closer to $20K) frozen in BTC liquidity for smooth operating of one machine. Since 1st of August 2016 after closed-door meetings and later Bitfinex fiasco price fell from $650 to ~$550 in a matter of just 5 days. On a $10K liquidity volume that will result in ~$1.5K immediate loss for operator. Now if you run 5 bitcoin machines, and e.g. you are required to have separate wallets for each machine, then loss will account for $7.5K. At good locations you are probably required to have more than $10K in BTC liquidity (as this is just an amount that by chance can be bought from machine during a day), which will result in even bigger losses.

If operator purchased bitcoins at $650 (right before fall) and now market price is $580, if operator sells BTC with 5% premium (at $609) — that still gives immediate loss of $41 per 1 BTC sold.

This is how it works on a short term perspective. Now thinking long term, if BTC price grows — this is good for operator, as not only he earns fees from operations, but also his BTC stock increases in value over time. But looking from a different perspective, price also can fall long-term, e.g. what was happening since the end of 2013 till September of 2015 (when price was steadily decreasing for almost 2 years). In this case bitcoin ATM operators lost funds all the way down. These losses were to some extent covered by fees earned from operations, but in general such economic environment will make a running bitcoin ATM business much less profitable and require operators to absorb such exchange rate volatility risk.

Mirroring deals on exchange

Another way to conduct bitcoin ATM business is to use exchanges for immediate “mirroring” deals. The following diagram illustrates this approach (click to enlarge):

Operating bitcoin ATM using exchange

In this case additionally to liquidity in hot wallet (which can be lower compared to example when operating using own stock) operator holds liquidity funds on exchange(-s) and whenever a transaction happens at bitcoin machine, opposite mirror deal is automatically triggered on exchange. So whenever someone buys bitcoins from operator using machine, operator buys back the same amount of bitcoins on exchange.

The process is the following:

  1. User initiates purchase of bitcoins at machine for cash (time T1). At the same time ATM gets access to hot wallet and sends BTC to address provided by user (time T1). Also ATM via API connection sends a signal to exchange (where operator already have account opened and fiat liquidity ready to be used for trades), where bitcoins are bought on the market. All this happens simultaneously, which guarantees that price is fixed at the moment of purchase from ATM.
  2. After purchase is done bitcoins are sent from exchange balance to hot wallet of operator. Theoretically hot wallet step can be omitted and bitcoins can be sent from exchange to bitcoin address of the user directly, however, in this case sometimes it changes the legal status of ATM operator to money transmitter, as the process switches to allow user interact with third parties (exchange in this case).
  3. Periodically (time T3) operator withdraws cash and deposits it on bank account (time T4), and then transfers to exchange (time T5), making the funds again available in the form of fiat liquidity on exchange for future deals.

Such a process allows to minimize funds held in BTC (hot wallet can have much lower balance, as it is replenished after each purchase), or BTC fund holdings can be totally eliminated (in case BTC sent directly from exchange to users). As a result BTC exchange rate risk is eliminated or removed, but at the same time another risk appears — counterparty risk as the liquidity funds now have to be held on exchange ready to be used for mirroring deals. If exchange goes belly up, which happened partially with recent Bitfinex hack for example — then operator can lose funds stored on the exchange partially or in full. Some operators were affected recently as Bitfinex was a large exchange and many machines were running integrated with it.

E.g. operator of General Bytes machine in Kazakhstan wrote on reddit:


Or SunATM operator, who put a message on their bitcoin machine in Erie:

Bitfinex lost funds

In the next post we cover what is supported by each of the main ATM providers on the market with respect to above scenarios settings.


You can find bitcoin ATM locations on our map.

Subscribe to our Twitter account to get latest news from bitcoin ATM industry @CoinATMRadar

20 thoughts on “Risks of running a bitcoin ATM business

    1. It depends on how you organize it, basically you need to convert it to BTC for continue operations.
      If you have bank relations who are ok with your business – you deposit cash to bank and send later to exchange for converting to BTC, or you can find someone who will sell you BTC for cash.

  1. but how can you start from no having bitcoins avilable to sell on exchanges?
    we only own the bitcoin vending machine or atm do we need an initial deposit ?

    1. If you own bitcoin “vending” machine, that means you are going to sell bitcoins to your customers. So you need to have bitcoin liquidity or access to it before starting operation, as you will need to send bitcoins after every customer’s transaction.
      Normally you have some bitcoin liquidity in the wallet associated with machine and at the same time you have fiat liquidity on exchange, which you convert to bitcoins and withdraw via mirror transactions.

  2. Ok, let’s see that example without Hot Wallet

    The customer is buying btc via ATM, BTC are purchased trough exchange market – That’s simple, but is there any software which is buying those BTCs on exchange for me? Because I can’t imagine that I’m doing it manually because market is floating, for example – customer is buying BTC and i’m already at shop and can’t really purchase BTC for him because my phone is down. He’s buying for price 2900 and after 30-40 min I have to buy it for 2930 on the market = no profit.

    Please help

    1. Usually, you still need to have some BTC liquidity to send to customers immediately. And yes, this functionality is implemented in the software of most bitcoin machines (all top, for sure). You will define auth keys in the settings of machine to access your exchange account and do trades. Machine will handle it automatically in case there is enough liquidity on your exchange account. So whenever customer buys bitcoins from machine, an automatic trade will happen for your account on exchange (to purchase bitcoins).

      Sending directly from exchange to customer address might not always work, as some exchanges e.g. Kraken require you to manually create withdrawal address prior to withdrawal (not via API), and obviously this will not work in this case. Some don’t support this for KYC/AML purposes, e.g. withdrawal has to be to account owner address. Also given recent congestion of Bitcoin network this will result in delays of delivery to customer address, that is why usually some BTC liquidity is provided by operator to send funds immediately.

      1. Those softwares are made by manufacturers or it is just one simple software with the same principle of action which you can put to every ATM?

        It could be a problem when i got some BTC for example: 3000$ on my hot wallet and there will be a dump to 2700 and customers will buy them for that price.

        In which case, sending directly to customer adress will work? Which exchange?

        1. > Those softwares are made by manufacturers or it is just one simple software with the same principle of action which you can put to every ATM?

          Each manufacturer has own software.

          > It could be a problem when i got some BTC for example: 3000$ on my hot wallet and there will be a dump to 2700 and customers will buy them for that price.

          Yes, could be, in case BTC grows you get gains on opposite. How large a liquidity you have is your entrepreneurial decision, you can have only $100 in BTC hot wallet reducing exchange rate volatility risk a lot, but then obviously you will not serve many customers, e.g. those who want to buy more than $100 at a time.

          > In which case, sending directly to customer adress will work? Which exchange?

          Don’t have info out of my mind, you need to research. But also keep in mind that depending on the state, that could change your legal status a lot, e.g. will require to obtain additional licenses as a money transmitter, as in this case you are not selling bitcoins from your own wallet.

  3. Thank you sooo much. You makes me clear with everything.

    About softwares – Do you know any way how to get something like this? It’s behaving like a bot for exchanges so I think it is possible to get one 😉

    1. There is a service already for what you look for – it’s called Reload and is provided by one of bitcoin ATM operators – Bitnik:

      What it does – is you define BTC address and service tracks it’s balance, whenever you send BTC from this address, service automatically repurchases bitcoins on exchange at current rate and sends BTC to replenish balance for given address.

      You can read more about the service here:

      You can use it for ATM (the only disadvantage here you need to reuse the same BTC address, as service works with addresses only, but not xpub the last time I checked). However, you can use it for being localbitcoins trader for example, so not only for running ATMs, but mostly whenever you need to quickly repurchase spent BTC funds.

  4. Hmmm, some of the jargon required extra steps to look up, “kyl.”
    Place an explanation next to any jargon please. These are intro articles.

    1. 1. You register at exchange that is supported by ATM software.
      2. Get API key.
      3. Define connection settings in your ATM backend.
      4. ATM software should execute deals according to defined logic.

      For more details, please contact ATM supplier of your choice.

  5. How do the transactions get treated from a tax liability? Am I taxed as a percentage of the markup or is it purely the cost basis of my coins vs the sale price? And if the latter is the case I can get a tax deduction if I buy at 19000 and sell at 18500?


Leave a Reply

Your email address will not be published. Required fields are marked *