You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: guide/payments/request.md
+4-18Lines changed: 4 additions & 18 deletions
Original file line number
Diff line number
Diff line change
@@ -68,7 +68,7 @@ When a user requests bitcoin, there are three general ways in which this can be
68
68
69
69
## Single-use payment requests
70
70
71
-
The most common way bitcoin is requested is in the form of single-use payment requests. Lightning payments use [BOLT11](https://github.com/lightning/bolts/blob/master/11-payment-encoding.md) invoices. On-chain uses [addresses of various types]({{ "/guide/glossary/address/" | relative_url }}). These two formats can be combined into a single payment request so senders can use what is most convenient for them.
71
+
The most common way bitcoin is requested is in the form of single-use payment requests. Lightning payments use [BOLT11](https://github.com/lightning/bolts/blob/master/11-payment-encoding.md) invoices. On-chain uses [BIP21](https://bips.xyz/21) and [addresses of various types]({{ "/guide/glossary/address/" | relative_url }}). A BOLT11 invoice can be [embedded into a BIP21 URI](https://github.com/sbddesign/bip21-site) to form a single payment request so senders can use what is most convenient for them and requesters do not have to be worried about requesting from on-chain or lightning.
72
72
73
73
Single-use payment requests are convenient for one-time or in-person payments. Generating them should be fast and convenient from the users home screen. Wallet balances should not be shown when generating single-use payment requests. This is due to the users funds being visible to nearby third-parties, which negatively impacts their privacy and puts the user at risk of theft.
74
74
@@ -104,12 +104,6 @@ Zero amount single-use payment requests should also be easily generated from the
104
104
105
105
Units must be toggleable between bitcoin, satoshi and the users local currency. Ensure the unit being entered is clearly visible, to prevent entering the wrong unit amount. More on the [Units & Symbols page]({{ "/guide/payments/units-and-symbols/" | relative_url }}).
106
106
107
-
{% include /tip/open.html label="Did you know?" icon="info" color="blue" %}
108
-
109
-
Zero amount invoices were [exploitable](https://github.com/ottosuess/ottosuess.github.io/blob/master/zero-amount-payments.md) by intermediate routing nodes to steal a senders bitcoin. This has since been patched and it's recommended that all lightning enabled wallets allow sending and receiving to zero amount invoices.
110
-
111
-
{% include /tip/close.html %}
112
-
113
107
### Invoice expirations
114
108
115
109
Single-use lightning invoices aren't permanent; [they expire over time]({{ "/guide/glossary/#lightning-invoice" | relative_url }}). However, this expiration time can be modified, unlocking unique use cases and improving usability in some situations.
@@ -134,17 +128,9 @@ If there is no amount defined on the invoice, the invoice is denominated in bitc
134
128
135
129
While it is good to allow users to define their own custom expiries, remember that only advanced users will do this. Choose a sensible default that makes sense for your user-base and how the wallet is intended to be used.
136
130
137
-
**Set amount, denominated in fiat:** Use a short expiry and have the invoice refresh each time it expires
138
-
139
-
**No amount, denominated in fiat:** Use a long (24h) expiry
140
-
141
-
**Irrespective of amount, invoice is shared externally:** Set a zero amount and use a long (24h) expiry
142
-
143
-
**Set amount, denominated in bitcoin:** Use a long (24h) expiry
144
-
145
-
**Advanced users:** Allow to set their own expirations to suit their unique use case
131
+
For some background on situations the user might encounter with different invoice expiries, see this [blog post](https://d.elor.me/2022/01/lightning-invoice-expiration-ux-considerations/) from designer Stephen DeLorme.
146
132
147
-
Using [Bolt 12](https://bolt12.org/) offers, invoice expirations will no longer be a point of user friction. Offers are not yet an accepted standard, or widely supported by wallets, so interoperability will be an issue if adopting it.
133
+
Using [BOLT12](https://bolt12.org/) offers, invoice expirations will no longer be a point of user friction. Offers are not yet an accepted standard, or widely supported by wallets, so interoperability will be an issue if adopting it.
148
134
149
135
</div>
150
136
@@ -198,7 +184,7 @@ This meta data should also be able to be [backed up]({{ "/guide/onboarding/backi
198
184
199
185
## Reusable payment requests
200
186
201
-
Reusable payment requests offer an improved user experience, more flexibility, and enable unique use cases compared to single-use payment requests. Reusable payment requests avoid users having to manually generate a payment request each time they need to receive bitcoin.
187
+
Reusable payment requests offer an improved user experience, more flexibility, and enable unique use cases, as they don't need to be re-generated every time the user wants to receive bitcoin.
202
188
203
189
Currently there are limited reusable payment request options available. However, several are being worked on or are in the early stages of adoption. For Lightning, there are [BOLT12 offers](https://bolt12.org/) and AMP invoices. For on-chain, [reusable payment codes](https://bips.xyz/47) can be used to privately receive bitcoin in a reusable way on-chain. Learn more about these on our [payment request formats]({{ "/guide/payments/request/payment-request-formats/" | relative_url }}) page.
0 commit comments