The Bitcoin URI scheme 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?
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It only takes a minute to sign up.Sign up to join this community
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, 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). 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.
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.