Have been investigating some of the gateway apps and offline systems that are being developed. I was wondering what is the most secure way for a business to conduct itself. Let's use a bar as an example.

I would assume a strategy like this would be a start.

  1. Owner creates a cold storage wallet with some read only addresses. I am thinking as this being the safe. (maybe even print some out so employees can easily cash out)
  2. The bar then has an online accessible wallet.
  3. He outfits his mobile devices running one of the online gateways or maybe even the electrum wallets.
  4. Patron is ready to pay, the employee rings up the bill and says $xx.xx
  5. The employee and the patron do their transactions.

Here is the question...

How often should the employee dump the coin into the cold storage safe? I would think they would need some in case they needed to reimburse a customer.

What do you guys think is the optimal way for a business of anytime, customers or not should handle their coin?

3 Answers 3


Electrum is the best way I can think of.

The shop owner have an offline wallet, then set ups seedless wallets in shops' computers. He can have a private key imported from another wallet to be able to have coins for reimbursements. As the seedless wallet is a watch-only wallet that can generate new public addresses, employees can have a new address for each purchase.


Why would you need to reimburse a customer? They should give you exact change and there's really no reason for them not to. I would recommend creating a daily cold storage wallet to receive bitcoins and then using some kind of online wallet service with a watch-only address so your employees can see the new deposits but they can't actually withdraw any of the coins.

  • 1
    Thanks for the reply. In the case of a bar, what if the entered manual amount in the terminal is wrong. What if there is a dispute? Or in a store, the person decides to return an item...these are all reimbursable activities. Also what is your thinking in regards to daily cold storage wallets? Commented Dec 1, 2013 at 19:55

You can actually do this without having to trust staff with your coins. Since it's uncommon for people to overpay, you could have something like this:

  1. A Hierarchical Deterministic (equivalent to electrum) wallet where the server/POS terminal can derive a new public key, but does not have access to private keys. It gives the customer an unique address to pay to.
  2. A server with a knowledge of your orders + their addresses can monitor (without private keys if you like) this address for payment, and notify you on receipt of funds.

Two-way Bitcoin ATM's work in a similar fashion - you can be sure you're not sending BTC to a private key held on the device, but some other wallet entirely.

If you need to issue immediate refunds, be aware that the PaymentProtocol, heavily used in all wallets for fulfilling payments to others, lets buyers specify a return address. You could use this, instead of a purely offline wallet, you could make use of HD wallets with multisignature addresses.

  1. Each member of staff could have a HD wallet they have the private keys for. You give each member of staff your personal extended public key, and your stores extended public key. For each order a new 2-of-3 multisig address is created.
  2. Every member of staff can now generate a receive-only address for the customer to pay on. You can be notified of payments in a similar fashion to before.
  3. If they do need to issue a refund, the member of staff can add a signature from their private key, but the constraint is 2 signatures, so he needs you to add your approval.

Also since you have two keys in there, it means you can personally refund transactions to buyers if the member of staff wasn't present.

The benefits of the second case are that: refunds are fully taken care of, and your staff aren't exposed to moving balances to an offline wallet.

  • Is the Payment Protocol really "heavily used"? My understanding is that it remains rather experimental and obscure. Commented Mar 26, 2015 at 18:37
  • I think so - Bitcoin Core, Electrum, the Android wallet and almost certainly others support these requests. It is deployed by Coinbase/Bitpay, but for some sites you might still get a bitcoin address and amount, or the older payment URI.
    – karimkorun
    Commented Mar 26, 2015 at 18:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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