<p>One thing people fail to realize when saying "0 confirms are risky" is that risk is all relative.  A lot depends on how valuable the goods are.  While 0 confirmation may have some risk it is very low for low value transactions and likely far less than credit card fraud.  </p>

<p>Say you are selling a sandwich for whatever $5 is worth in BTC.  When you get a 0 confirm it has indicated that your client sees that address has sufficient value to complete the transaction.  The risk is simply that before confirmed someone else could purchase something with the same address, a hypothetical "double spend".</p>

<p>Still remember the window of attack is very small. The AVERAGE block completion time is 10 minutes but ~50% of blocks are completed in less than 6 minutes.  That means if two attackers timed it so they started their attack right after a block was discovered they have roughly 50% chance of getting both transactions completed prior to next block verification.  </p>

<p>To be defrauded BOTH transactions would have to be fully completed and the attacker gone within that window.  For low value transaction especially in the real world that is incredibly unlikely.  No attacker is guaranteed any sort of "minimum window" the next block might be verified in 10 minutes or in 9 seconds.  </p>

<p>Now if you are selling $100K worth of gold then maybe you should wait for 6 confirmations but a customer moving $100K worth of gold likely would understand the need for security.</p>

<p>Unless your physical world business involves both fast transactions AND high street value I wouldn't worry.  A bitcoin ATM however would be a good target for double spending thus some other mechanism would be needed to verify the transfer.</p>

CC BY-SA 3.0
2013-04-04T10:00:59.657Z
What could be a secure mechanism to verify the transfer in a bitcoin ATM scenario? It wouldn't be feasible to have the customer wait for 10 minutes before she can grab the withdrawn cash, let alone an hour.
nivs
CC BY-SA 3.0
2014-01-20T21:20:00.450Z
On related note, the Subway sandwich restaurant near my university do accept bitcoins with zero confirmations.
aland
CC BY-SA 3.0
2011-09-09T21:38:58.850Z
2011-09-09T21:38:58.850Z
DeathAndTaxes
<p>For transactions of under $100 or so, I don't think it's unreasonably risky to accept transactions with zero confirmations. For one thing, it doesn't matter unless the customer is attempting a double-spending attack, and it's unlikely someone would want to attempt such an attack and try to physically get away within 10 minutes or so just for $100.</p>

<p>For under $1,000, 1 confirmation is sufficient. That takes 10 minutes on average.</p>

<p>In general, face-to-face transactions just aren't all that risky.</p>

CC BY-SA 3.0
2011-09-01T10:22:25.737Z
2014-01-16T18:48:06.897Z
2014-01-16T18:48:06.897Z
David Schwartz
<p>Create a "We accept Bitcoin!" display:
<a href="http://ma.eatgold.com/accept/" rel="nofollow">http://ma.eatgold.com/accept/</a></p>

<p>If you want to verify that bitcoins have been received you can look on blockexplorer.com.  The format is <a href="http://blockexplorer.com/address/1At6LdqJsMJ11kkujzU4NR5cbD5NhLj3Ay" rel="nofollow">http://blockexplorer.com/address/1At6LdqJsMJ11kkujzU4NR5cbD5NhLj3Ay</a> . You can see a list of all transactions received on your wallet address.</p>

<p>You can get a receiving address from online exchanges or wallet services. I recommend you find one you can trust because they will be holding your coins. 
My recommendation is ExchB:
<a href="https://www.exchangebitcoins.com/en/r/howmanycoins" rel="nofollow">https://www.exchangebitcoins.com/en/r/howmanycoins</a></p>

<p>Another option is to download the bitcoin client from bitcoin.org. You must make sure your computer is secure from trojans or viruses or you could lose your coins. Or you could use an android based application for your mobile phone. Bitcoin Wallet is the most efficient app currently. Here is a link to it: <a href="https://market.android.com/details?id=de.schildbach.wallet&amp;hl=en" rel="nofollow">https://market.android.com/details?id=de.schildbach.wallet&amp;hl=en</a> . Take care your phone is secure from viruses or malicious applications that could steal your wallet. Transfer any large amounts of coins off of your phone and to a secure address elsewhere. </p>

<p>To check the exchange rate for converting your product prices you can pull up the current price at <a href="http://coin.ly/" rel="nofollow">http://coin.ly/</a> , or many other sites have this information as well.</p>

<p>You can also use a merchant services company such as bit-pay.com to handle all this stuff for you in an automated fashion. They offer additional features such as converting bitcoins into USD immediately so you dont have to deal with all the extra details and risks of handling bitcoins on your own.</p>

CC BY-SA 3.0
2013-04-21T22:44:19.007Z
downvote with no comments? UPVOTE!!!!
user4951
CC BY-SA 3.0
2011-09-01T08:18:39.807Z
2011-09-01T08:18:39.807Z
osmosis
<p>Accepting bitcoin is easy. Create an account on coinbase.com</p>

<p>Go to:
Linked Accounts -> Link a bank account.</p>

<p>then
Merchant Tools -> Merchant Settings ->
Check, "Instantly exchange my bitcoins to USD and credit my primary bank account once a day."</p>

<p>Add this to your event description:
"Bitcoin Accepted w/ coinbase to info@yourdomain.com"</p>

<p>If you want a bitcoin logo you can use this: <a href="https://i.imgur.com/s7YQ2.jpg" rel="nofollow noreferrer">http://i.imgur.com/s7YQ2.jpg</a></p>

<p>Here are examples of other companies accepting bitcoin:
<a href="http://blog.coinbase.com/post/48102298494/okcupid-starts-accepting-bitcoin-using-coinbase" rel="nofollow noreferrer">http://blog.coinbase.com/post/48102298494/okcupid-starts-accepting-bitcoin-using-coinbase</a>
<a href="http://en.blog.wordpress.com/2012/11/15/pay-another-way-bitcoin/" rel="nofollow noreferrer">http://en.blog.wordpress.com/2012/11/15/pay-another-way-bitcoin/</a></p>

CC BY-SA 3.0
2013-05-03T18:02:27.123Z
2013-05-03T18:02:27.123Z
osmosis
<p><a href="https://bitcointalk.org/index.php?topic=32818.0">Green address technique</a> from Instawallet. System sends bitcoins from well known address called Green Address and if recipient trusts Instawallet or any other major organization that uses same technique, then he or she can accept payment without waiting for confirmations. This is what already implemented but it solves only the third problem.</p>

<p><a href="https://bitcointalk.org/index.php?topic=25786.msg480826#msg480826">Instant TX for established business relationships</a> is in early development stage but it can solve all three of the problems, with an exception that only retailer needs to have internet access. For example, transaction could be printed by customer on a piece of paper, handed over and accepted instantly by retailer, and it still would be secure. The idea is very promising because such transaction could be sent over internet or by any other way directly from buyer to seller and won't use any of Bitcoin Network resources, and it would be economically fisible to make automatic payments for a service that costs several micro bitcoins. </p>

CC BY-SA 3.0
2011-09-01T03:30:32.497Z
2011-09-01T05:00:20.303Z
2011-09-01T05:00:20.303Z
Serith
<p>From what I understand, there are some requirements for using bitcoins at a physical store:</p>

<ul>
<li>Both the store owner and the client must have Internet access</li>
<li>The client must have a cellphone or a laptop to issue the payment</li>
<li>The seller must have a way to confirm that the coins were sent.</li>
</ul>

<p>The biggest problem is the confirmation. Since it is risky to accept transactions with 0 confirmations, it will take around 10 minutes before a single confirmation occurs and allows the real world transaction to be completed.  The more confirmations that occur, the less risky it is.</p>

<p>That said, what is the best way for a store owner to securely accept bitcoins?</p>

CC BY-SA 3.0
2014-01-18T04:06:16.920Z
I think this is is an excellent question and if you have a problem with it, edit it and contribute or just go away.
Scott
CC BY-SA 3.0
2011-09-01T06:53:52.460Z
Here is [a proof of concept of a Bitcoin Point of Sale system](http://www.youtube.com/watch?v=o84SfChQ-S8).
ripper234
CC BY-SA 3.0
2011-09-01T17:57:00.410Z
I guess that you are talking about the title, cause the text clearly ends with a question. In this case, just suggest an edit of the title, don't vote to close.
D.H.
<transactions><security><confirmations><commerce><face-to-face-payment>
How do I accept bitcoin payments at a real world store?
nmat
# How do I accept bitcoin payments at a real world store?

(Asked by: username_0 on 2011-09-01)

From what I understand, there are some requirements for using bitcoins at a physical store:

* Both the store owner and the client must have Internet access
* The client must have a cellphone or a laptop to issue the payment
* The seller must have a way to confirm that the coins were sent.

The biggest problem is the confirmation. Since it is risky to accept transactions with 0 confirmations, it will take around 10 minutes before a single confirmation occurs and allows the real world transaction to be completed. The more confirmations that occur, the less risky it is.

That said, what is the best way for a store owner to securely accept bitcoins?

**Tags:** transactions, security, confirmations, commerce, face-to-face-payment

> **Comments:**
> **username_2**: Here is [a proof of concept of a Bitcoin Point of Sale system](http://www.youtube.com/watch?v=o84SfChQ-S8).  
> **username_3**: I guess that you are talking about the title, cause the text clearly ends with a question. In this case, just suggest an edit of the title, don't vote to close.  
> **username_1**: I think this is is an excellent question and if you have a problem with it, edit it and contribute or just go away.  

---

## 5 answers

### Answer by username_10 on 2011-09-01. Score: 15 | Accepted answer

[Green address technique](https://bitcointalk.org/index.php?topic=32818.0) from Instawallet. System sends bitcoins from well known address called Green Address and if recipient trusts Instawallet or any other major organization that uses same technique, then he or she can accept payment without waiting for confirmations. This is what already implemented but it solves only the third problem.

[Instant TX for established business relationships](https://bitcointalk.org/index.php?topic=25786.msg480826#msg480826) is in early development stage but it can solve all three of the problems, with an exception that only retailer needs to have internet access. For example, transaction could be printed by customer on a piece of paper, handed over and accepted instantly by retailer, and it still would be secure. The idea is very promising because such transaction could be sent over internet or by any other way directly from buyer to seller and won't use any of Bitcoin Network resources, and it would be economically fisible to make automatic payments for a service that costs several micro bitcoins.


---

### Answer by username_4 on 2011-09-09. Score: 10

One thing people fail to realize when saying "0 confirms are risky" is that risk is all relative. A lot depends on how valuable the goods are. While 0 confirmation may have some risk it is very low for low value transactions and likely far less than credit card fraud.

Say you are selling a sandwich for whatever $5 is worth in BTC. When you get a 0 confirm it has indicated that your client sees that address has sufficient value to complete the transaction. The risk is simply that before confirmed someone else could purchase something with the same address, a hypothetical "double spend".

Still remember the window of attack is very small. The AVERAGE block completion time is 10 minutes but ~50% of blocks are completed in less than 6 minutes. That means if two attackers timed it so they started their attack right after a block was discovered they have roughly 50% chance of getting both transactions completed prior to next block verification.

To be defrauded BOTH transactions would have to be fully completed and the attacker gone within that window. For low value transaction especially in the real world that is incredibly unlikely. No attacker is guaranteed any sort of "minimum window" the next block might be verified in 10 minutes or in 9 seconds.

Now if you are selling $100K worth of gold then maybe you should wait for 6 confirmations but a customer moving $100K worth of gold likely would understand the need for security.

Unless your physical world business involves both fast transactions AND high street value I wouldn't worry. A bitcoin ATM however would be a good target for double spending thus some other mechanism would be needed to verify the transfer.

> **Comments:**
> **username_5**: What could be a secure mechanism to verify the transfer in a bitcoin ATM scenario? It wouldn't be feasible to have the customer wait for 10 minutes before she can grab the withdrawn cash, let alone an hour.  
> **username_6**: On related note, the Subway sandwich restaurant near my university do accept bitcoins with zero confirmations.  

---

### Answer by username_7 on 2011-09-01. Score: 4

For transactions of under $100 or so, I don't think it's unreasonably risky to accept transactions with zero confirmations. For one thing, it doesn't matter unless the customer is attempting a double-spending attack, and it's unlikely someone would want to attempt such an attack and try to physically get away within 10 minutes or so just for $100.

For under $1,000, 1 confirmation is sufficient. That takes 10 minutes on average.

In general, face-to-face transactions just aren't all that risky.


---

### Answer by username_8 on 2011-09-01. Score: 1

Create a "We accept Bitcoin!" display:
<http://ma.eatgold.com/accept/>

If you want to verify that bitcoins have been received you can look on blockexplorer.com. The format is <http://blockexplorer.com/address/1At6LdqJsMJ11kkujzU4NR5cbD5NhLj3Ay> . You can see a list of all transactions received on your wallet address.

You can get a receiving address from online exchanges or wallet services. I recommend you find one you can trust because they will be holding your coins.
My recommendation is ExchB:
<https://www.exchangebitcoins.com/en/r/howmanycoins>

Another option is to download the bitcoin client from bitcoin.org. You must make sure your computer is secure from trojans or viruses or you could lose your coins. Or you could use an android based application for your mobile phone. Bitcoin Wallet is the most efficient app currently. Here is a link to it: <https://market.android.com/details?id=de.schildbach.wallet&hl=en> . Take care your phone is secure from viruses or malicious applications that could steal your wallet. Transfer any large amounts of coins off of your phone and to a secure address elsewhere.

To check the exchange rate for converting your product prices you can pull up the current price at <http://coin.ly/> , or many other sites have this information as well.

You can also use a merchant services company such as bit-pay.com to handle all this stuff for you in an automated fashion. They offer additional features such as converting bitcoins into USD immediately so you dont have to deal with all the extra details and risks of handling bitcoins on your own.

> **Comments:**
> **username_9**: downvote with no comments? UPVOTE!!!!  

---

### Answer by username_8 on 2013-05-03. Score: 1

Accepting bitcoin is easy. Create an account on coinbase.com

Go to:
Linked Accounts -> Link a bank account.

then
Merchant Tools -> Merchant Settings ->
Check, "Instantly exchange my bitcoins to USD and credit my primary bank account once a day."

Add this to your event description:
"Bitcoin Accepted w/ coinbase to info@yourdomain.com"

If you want a bitcoin logo you can use this: [http://i.imgur.com/s7YQ2.jpg](https://i.imgur.com/s7YQ2.jpg)

Here are examples of other companies accepting bitcoin:
<http://blog.coinbase.com/post/48102298494/okcupid-starts-accepting-bitcoin-using-coinbase>
<http://en.blog.wordpress.com/2012/11/15/pay-another-way-bitcoin/>


---

