Cryptocurrency, like many markets, is volatile. As a result, the question naturally arises of how
operators of cryptocurrency ATMs can make a consistent profit without exposure to
fluctuations in market prices undercutting their return.
Let’s first delve into the flow of coins and cash between you, your customer, and your
exchange, followed by an example showing how you profit regardless of market swings.
The cryptomat dispenses from wallets you own and stock with coins. The commission you
make is yours to keep: it's a percentage you set above each coin’s ticker price.
Your profit is realized as more cash in the cash box (or more coin left in the wallet) than there
would be if the commission were set at 0%.
For cash-out, it's the opposite: the user sends coins to the same wallet and the machine
dispenses cash, accounting for your commission in the total amount of coins it requests from
The machine can be linked to an exchange so that with each customer transaction, you
purchase back the same amount of coins at the current price (less your commission).
This allows you to avoid volatility and keep a constant supply. Every so often you'll transfer the
coins purchased on your exchange account to replenish the machine's wallet.
The float of coins with which you first stock machine's wallet is a buffer and can be thought of
as an initial investment. When using an exchange linkage, the only true exposure you'd have to
price swings is on your initial float, as every coin purchased thereafter by customers is
replenished at cost at time of transaction.
How much float you hold depends upon how frequently you'd like to refill coins from the
exchange account to your wallet. As you work up a steady pace of transactions, you'll get a feel
of how often this should be.
Your machine's wallet has 3 BTC in it and the machine has 0 USD. You transfer $9,000 to your
Bitcoin exchange, so your exchange account has $9,000 and 0 BTC.
A user comes up to the machine, puts in $275 for 0.1 BTC, assuming a $2,500/BTC rate and
10% commission, and the machine immediately puts in a buy order on the exchange for 0.1
Status: 2.9 BTC in the machine's wallet, $275 in the cash box. In the exchange you have $8,750
(0.1 BTC @ $2,500 rate) and 0.1 BTC.
This keeps happening until you have $8,800 (base price + 10% profit) in the cash box on the
machine and 0.4 BTC or so and it's time to refill. At this point you will have about 2.6 BTC in
your exchange account and ~$1,000 left. Now you send the 2.6 BTC from the exchange to your
machine's wallet so it has 3 BTC and, having collected$8,000 from your machine, you send the
cash to the exchange via your bank so you have $9,000 in the exchange.
And now you're back where you started, your machine's wallet has 3 BTC in it and the machine
has 0 USD. You exchange account has $9,000 and 0 BTC.
No matter the price of Bitcoin, you will have 3 BTC and $9,000 in the exchange, the only
difference being your profit of $800 for this cycle that stays in the bank. Price goes up leading
to a frenzy, you profit, price goes down leading to a frenzy, you profit.
Wallet and Exchange Separation
Separating the machine’s hot wallets and your exchange account is important for a few key
First, using a hot wallet has the effect of an immediate transaction for the customer, and gives
the assurance that you have the funds on hand to give them.
A hot wallet is also greater security for the operator, as only he or she will hold the private keys
to their hot wallet, keeping less on-hand with a third-party.
Most importantly, this helps avoid being considered a money transmitter in many jurisdictions,
as only two parties are involved in a direct sale, instead of a third if coins were sent directly
from an exchange to the user with the operator facilitating the transaction.
As noted above, the coins that are purchased on the exchange will need to be periodically sent
to your wallet to replenish it. This is done by logging into the exchange account and placing a
withdrawal to an address in your wallet.
This is not done automatically for reasons of security. If the trading API allows the machine to
trade coins with the fiat account as well as send it, and the server is compromised, the attacker
will be able to use all of the fiat to buy coins and send it to their address. By limiting the API to
trade-only, without the ability to send, a compromised server would allow the theft of coins
just to those currently on the server.