<p>Right now with <a href="https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki">bip-0021</a> it is possible to define bitcoin URIs to make payments like this:</p>

<pre><code>bitcoin:1JfzSVJV44AALQrNrLCehznQLvbhUcr5mB?label=tip-erasmospunk
</code></pre>

<p>so if you put this URI in an HTML anchor:</p>

<pre><code>&lt;a href="bitcoin:1JfzSVJV44AALQrNrLCehznQLvbhUcr5mB?label=tip-erasmospunk"&gt;tip me!!!&lt;/a&gt;
</code></pre>

<p>and click it the bitcoin wallet opens and it is preloaded with my bitcoin address together with the label "tip-erasmospunk".</p>

<p>One of the problems with this approach is that when I pay, it will take many seconds until the transaction propagates properly in the bitcoin network and the merchant receives it (we are talking only about the merchant seeing the transaction, not about conformation that can take many minutes). So if you want to pay the metro ticket, you need to do it as fast as possible.</p>

<p>So with <a href="https://github.com/bitcoin/bips/blob/master/bip-0072.mediawiki">bip0072</a> the above URI scheme is extended with the <code>r</code> parameter that points to the merchant's server. The wallet ignores the other parameters (address, label, etc) and speaks with the server by using the bip-0070 Payment Protocol. This protocol allows the merchant to receive your signed transaction directly from you and confirm the transaction faster.</p>

<p>The faster transaction times are one of the benefits, here is the full list:</p>

<ol>
<li>Human-readable, secure payment destinations-- customers will be asked to authorize payment to "website.com" instead of an inscrutable, 34-character bitcoin address.</li>
<li>Secure proof of payment, which the customer can use in case of a dispute with the merchant.</li>
<li>Resistance from man-in-the-middle attacks that replace a merchant's bitcoin address with an attacker's address before a transaction is authorized with a hardware wallet.</li>
<li>Payment received messages, so the customer knows immediately that the merchant has received, and has processed (or is processing) their payment.</li>
<li>Refund addresses, automatically given to the merchant by the customer's wallet software, so merchants do not have to contact customers before refunding overpayments or orders that cannot be fulfilled for some reason.</li>
</ol>

CC BY-SA 3.0
2014-03-20T00:49:34.863Z
2014-03-20T00:49:34.863Z
John L. Jegutanis
<p><a href="https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki#Protocol" rel="nofollow">BIP 0070</a> (the payment protocol) is included in Bitcoin-core 0.9.0. The main idea behind it is to simplify the sending of bitcoins to a service by making it a more p2p thing. </p>

<p>My question is this, from the user's perspective, how would this work? Does a website give me a link or button to click and then I authorize a payment?</p>

<bip70-payment-protocol>
How does BIP 0070 work for me, the user?
John T
# How does BIP 0070 work for me, the user?

(Asked by: username_0 on 2014-03-19)

[BIP 0070](https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki#Protocol) (the payment protocol) is included in Bitcoin-core 0.9.0. The main idea behind it is to simplify the sending of bitcoins to a service by making it a more p2p thing.

My question is this, from the user's perspective, how would this work? Does a website give me a link or button to click and then I authorize a payment?

**Tags:** bip70-payment-protocol


---

## 1 answers

### Answer by username_1 on 2014-03-20. Score: 5 | Accepted answer

Right now with [bip-0021](https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki) it is possible to define bitcoin URIs to make payments like this:

```
bitcoin:1JfzSVJV44AALQrNrLCehznQLvbhUcr5mB?label=tip-erasmospunk

```

so if you put this URI in an HTML anchor:

```
<a href="bitcoin:1JfzSVJV44AALQrNrLCehznQLvbhUcr5mB?label=tip-erasmospunk">tip me!!!</a>

```

and click it the bitcoin wallet opens and it is preloaded with my bitcoin address together with the label "tip-erasmospunk".

One of the problems with this approach is that when I pay, it will take many seconds until the transaction propagates properly in the bitcoin network and the merchant receives it (we are talking only about the merchant seeing the transaction, not about conformation that can take many minutes). So if you want to pay the metro ticket, you need to do it as fast as possible.

So with [bip0072](https://github.com/bitcoin/bips/blob/master/bip-0072.mediawiki) the above URI scheme is extended with the `r` parameter that points to the merchant's server. The wallet ignores the other parameters (address, label, etc) and speaks with the server by using the bip-0070 Payment Protocol. This protocol allows the merchant to receive your signed transaction directly from you and confirm the transaction faster.

The faster transaction times are one of the benefits, here is the full list:

1. Human-readable, secure payment destinations-- customers will be asked to authorize payment to "website.com" instead of an inscrutable, 34-character bitcoin address.
2. Secure proof of payment, which the customer can use in case of a dispute with the merchant.
3. Resistance from man-in-the-middle attacks that replace a merchant's bitcoin address with an attacker's address before a transaction is authorized with a hardware wallet.
4. Payment received messages, so the customer knows immediately that the merchant has received, and has processed (or is processing) their payment.
5. Refund addresses, automatically given to the merchant by the customer's wallet software, so merchants do not have to contact customers before refunding overpayments or orders that cannot be fulfilled for some reason.


---

