Skip to content

Commit 43f9688

Browse files
committed
Separate fragment params with - instead of +
Since only Bull Bitcoin Mobile and Cake wallet are currently deployed in production, both using PDK, and the `+` character is causing some friction, this change seems justified to avoid similar issues with future implementations.
1 parent c17a3db commit 43f9688

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

bip-0077.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ These session-specific parameters use a bech32-inspired encoding.
234234
The HRP is used as the parameter key, followed by the '1' separator,
235235
followed by the parameter value encoded using the bech32 character set in
236236
[uppercase](#uppercase-url). No checksum is used. Parameters are separated
237-
by a `+` character.
237+
by a `-` character (previously a `+` separator [was specified](#bip-77)).
238238

239239
The following parameters are defined, and must be provided in reverse
240240
lexicographical order:
@@ -253,7 +253,7 @@ lexicographical order:
253253
time](https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_16).
254254

255255
For example, a properly encoded endpoint Bitcoin URI looks like this
256-
`bitcoin:tb1q6q6de88mj8qkg0q5lupmpfexwnqjsr4d2gvx2p?amount=0.00666666&pjos=0&pj=HTTPS://PAYJO.IN/TXJCGKTKXLUUZ%23RK1Q0DJS3VVDXWQQTLQ8022QGXSX7ML9PHZ6EDSF6AKEWQG758JPS2EV+OH1QYPM59NK2LXXS4890SUAXXYT25Z2VAPHP0X7YEYCJXGWAG6UG9ZU6NQ+EX1WKV8CEC`
256+
`bitcoin:tb1q6q6de88mj8qkg0q5lupmpfexwnqjsr4d2gvx2p?amount=0.00666666&pjos=0&pj=HTTPS://PAYJO.IN/TXJCGKTKXLUUZ%23RK1Q0DJS3VVDXWQQTLQ8022QGXSX7ML9PHZ6EDSF6AKEWQG758JPS2EV-OH1QYPM59NK2LXXS4890SUAXXYT25Z2VAPHP0X7YEYCJXGWAG6UG9ZU6NQ-EX1WKV8CEC`
257257

258258
### Sender Original PSBT Messaging
259259

@@ -711,6 +711,8 @@ receiver also specifies the directory.
711711

712712
## Backwards compatibility
713713

714+
### BIP 78
715+
714716
Senders not supporting Payjoin will just ignore the `pj` parameter and
715717
proceed to typical address-based transaction flows.
716718

@@ -726,6 +728,18 @@ seconds or else the directory should respond with an `unavailable` JSON
726728
error code as [defined in BIP
727729
78](https://github.com/bitcoin/bips/blob/master/bip-0078.mediawiki#receivers-well-known-errors).
728730

731+
### BIP 77
732+
733+
A previous version of this document specified `+` as the fragment parameter
734+
separator. This can cause issues due to a common convention (not specified in
735+
RFC 3986, but in RFC 1866 in relation to HTML form submission and query
736+
parameters, not URI fragments) of representing ` ` with `+` in URI query
737+
parameters.
738+
739+
As a result of this change implementations are encouraged to still accept `+`
740+
delimited fragment parameters for during 2026 (a grace period of just under 6
741+
months).
742+
729743
## Reference implementation
730744

731745
A production reference implementation client can be found at

0 commit comments

Comments
 (0)