<p>Great question!!!</p>

<p>Here is a non-authoritative answer based upon prior related experience of many years past. The Bitcoin URI-scheme is very reminiscent of the IETF HTTP and SIP URI protocol grammars. </p>

<p>With the suggested Bitcoin BNF Grammar documented in <a href="https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki" rel="nofollow noreferrer">BIP-21</a>, it is possible that implemented pchar "otherparam" or "reqparam" names to be abused to suggest a transaction fee. The fee is digit, not a pchar. The URI could even be made to suggest specific pool(s) to expedite the processing of the transaction (relates to <a href="https://bitcoin.stackexchange.com/questions/18491/high-level-details-for-bundling-transactions-for-solo-mining-or-pooled-gbt-minin">High level details for bundling transactions for solo mining or pooled GBT mining</a>). I'm guessing the issue is the the meaning of the name-value pair for a transaction fee is left up to the whim of a developer which could lead to downstream turnkey Bitcoin component interoperability issues. So does it would make sense for the BIP-021 to be tweaked to add something like the following to its grammar?</p>

<p>paytxfeeparam = "paytxfee=" *digit [ "." *digit ]</p>

<p>**The wallet application currently establishes the acceptable transaction fee. For now, Bitcoin-Qt "bitcoin.conf" "paytxfee" value is used to statically establish the transaction the client is willing to pay.</p>

<p>I can understand why current pool operators may not care about establishing a paytxfeeparam. However, a roaming customer may want to know what it takes to expedite an adhoc in-person brick and mortar transaction for a product or service.</p>

<p>To support commerce, its not too hard to also envision a need for something like:</p>

<p>paysalestaxparam = "paysalestax=" *digit [ "." *digit ]</p>

<p>BIP-21 needs to be updated with a number of other real world use cases...</p>

<p>From a Cybersecurity perspective, I would be very reluctant to click on a URI from that only God knows is from who that induces a very expensive transaction. I'm glad to BIP-21 talks about always requiring the user's authorization. </p>

CC BY-SA 3.0
2013-12-16T02:55:29.053Z
So the fee has nothing to do with the URL? The bitcoin client decides what the fee will be?
user16973
CC BY-SA 3.0
2013-12-17T03:06:38.743Z
That appears to be the case today. But there are good use cases that could justify having the URL notation extended in BIP-21.
skaht
CC BY-SA 3.0
2013-12-15T21:42:02.857Z
2013-12-15T21:42:02.857Z
2017-04-13T12:47:36.647Z
skaht
<p>To compose Bitcoin URIs, experiment with a wallet such a Multibit, and go into Multibit's "Request Bitcoin" functionality.  The Label field allows the wallet's user to compose a Bitcoin URI that is embedded within a QR Code image to the right side of Multibit. If you don't have one already, get a QR scanner installed on your smart phone. Scan the QR code. Email it to yourself and analyze it. Do a few rounds of this and then you should begin to understand a purpose for BIP-021.</p>

CC BY-SA 3.0
2013-12-17T18:10:43.497Z
2013-12-17T18:10:43.497Z
skaht
<p>The  <a href="https://en.bitcoin.it/wiki/BIP_0021" rel="nofollow">Bitcoin URI scheme</a> doesn't appear to provide any mechanism for setting a transaction fee.</p>

<p>Is there a way to get clients to include a transaction fee in a standard payment via a Bitcoin URI?</p>

<transaction-fees>
Bitcoin URLs: how to set a transaction fee?
user16973
# Bitcoin URLs: how to set a transaction fee?

(Asked by: username_0 on 2013-12-15)

The [Bitcoin URI scheme](https://en.bitcoin.it/wiki/BIP_0021) doesn't appear to provide any mechanism for setting a transaction fee.

Is there a way to get clients to include a transaction fee in a standard payment via a Bitcoin URI?

**Tags:** transaction-fees


---

## 2 answers

### Answer by username_1 on 2013-12-15. Score: 2

Great question!!!

Here is a non-authoritative answer based upon prior related experience of many years past. The Bitcoin URI-scheme is very reminiscent of the IETF HTTP and SIP URI protocol grammars.

With the suggested Bitcoin BNF Grammar documented in [BIP-21](https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki), it is possible that implemented pchar "otherparam" or "reqparam" names to be abused to suggest a transaction fee. The fee is digit, not a pchar. The URI could even be made to suggest specific pool(s) to expedite the processing of the transaction (relates to [High level details for bundling transactions for solo mining or pooled GBT mining](https://bitcoin.stackexchange.com/questions/18491/high-level-details-for-bundling-transactions-for-solo-mining-or-pooled-gbt-minin)). I'm guessing the issue is the the meaning of the name-value pair for a transaction fee is left up to the whim of a developer which could lead to downstream turnkey Bitcoin component interoperability issues. So does it would make sense for the BIP-021 to be tweaked to add something like the following to its grammar?

paytxfeeparam = "paytxfee=" \*digit [ "." \*digit ]

\*\*The wallet application currently establishes the acceptable transaction fee. For now, Bitcoin-Qt "bitcoin.conf" "paytxfee" value is used to statically establish the transaction the client is willing to pay.

I can understand why current pool operators may not care about establishing a paytxfeeparam. However, a roaming customer may want to know what it takes to expedite an adhoc in-person brick and mortar transaction for a product or service.

To support commerce, its not too hard to also envision a need for something like:

paysalestaxparam = "paysalestax=" \*digit [ "." \*digit ]

BIP-21 needs to be updated with a number of other real world use cases...

From a Cybersecurity perspective, I would be very reluctant to click on a URI from that only God knows is from who that induces a very expensive transaction. I'm glad to BIP-21 talks about always requiring the user's authorization.

> **Comments:**
> **username_0**: So the fee has nothing to do with the URL? The bitcoin client decides what the fee will be?  
> **username_1**: That appears to be the case today. But there are good use cases that could justify having the URL notation extended in BIP-21.  

---

### Answer by username_1 on 2013-12-17. Score: 0

To compose Bitcoin URIs, experiment with a wallet such a Multibit, and go into Multibit's "Request Bitcoin" functionality. The Label field allows the wallet's user to compose a Bitcoin URI that is embedded within a QR Code image to the right side of Multibit. If you don't have one already, get a QR scanner installed on your smart phone. Scan the QR code. Email it to yourself and analyze it. Do a few rounds of this and then you should begin to understand a purpose for BIP-021.


---

