Skip to content

BOLT 12: feature to allow requests of a bolt11 invoice. - #1336

Open
rustyrussell wants to merge 3 commits into
lightning:masterfrom
rustyrussell:fetch-bolt11
Open

rustyrussell wants to merge 3 commits into
lightning:masterfrom
rustyrussell:fetch-bolt11

Conversation

@rustyrussell

Copy link
Copy Markdown
Collaborator

This would allow a bridge to create a LNURL adapter for a BIP353. for simple offers.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Comment thread 04-onion-routing.md Outdated
70 is taken by lightning#1149

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Comment thread 09-features.md
[bolt04-mpp]: 04-onion-routing.md#basic-multi-part-payments
[bolt04-route-blinding]: 04-onion-routing.md#route-blinding
[bolt04-attributable-errors]: 04-onion-routing.md
[bolt12-bolt11-req]: 12-offer-encoding.md#requrements-for-invoice-requests

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit:

Suggested change
[bolt12-bolt11-req]: 12-offer-encoding.md#requrements-for-invoice-requests
[bolt12-bolt11-req]: 12-offer-encoding.md#requirements-for-invoice-requests

@t-bast t-bast mentioned this pull request Jun 1, 2026
11 of 19 tasks
Comment thread 12-offer-encoding.md

The requirement to use `offer_paths` if present, ensures a node does not reveal it is the source of an offer if it is asked directly. Similarly, the requirement that the correct path is used for the offer ensures that cannot be made to reveal that it is the same node that created some other offer.

The `option_bolt11_request` field allows a backwards-compatible mechanism for simple offers, to simplify transition.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like we missed the part to bind the bolt11 invoice. For a bolt12 invoice there's a cryptographic binding, but for bolt11 invoice there is no proof that it is coming from the offer? Like the payer cannot prove it corresponds to the exact request or offer version.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed. That's bolt11 for you.

Comment thread 12-offer-encoding.md
@vincenzopalazzo

Copy link
Copy Markdown
Contributor

Mh, I do not recall the main reason why this is considered sanity? Could you please help me to understand what the workflow of LNURL is that will require using bolt12 to fetch a bolt11 invoice?

@t-bast t-bast mentioned this pull request Jul 16, 2026
12 of 19 tasks
@t-bast t-bast mentioned this pull request Aug 12, 2026
5 of 18 tasks
@rustyrussell

Copy link
Copy Markdown
Collaborator Author

Mh, I do not recall the main reason why this is considered sanity? Could you please help me to understand what the workflow of LNURL is that will require using bolt12 to fetch a bolt11 invoice?

With this, you can create a generic bip353 server (which has to return a bolt12) in front of a LNURL service (which returns a bolt11). It's not particularly hard to add, or support. It might be considered a bad idea, but it is a bridge which may help ease transition.

Don't allow quantity and bolt11 together.

Reported-by: https://github.com/yyforyongyu
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
@vincenzopalazzo

Copy link
Copy Markdown
Contributor

With this, you can create a generic bip353 server (which has to return a bolt12) in front of a LNURL service (which returns a bolt11). It's not particularly hard to add, or support. It might be considered a bad idea, but it is a bridge which may help ease transition.

I see, I am wondering if the transition would be much smoother now that payer proof is getting inside Nostr, but I see now! However, do you/we already have someone who will try to use this?

I am worried that this will be the bridge to slow down the transition

@t-bast t-bast mentioned this pull request Aug 27, 2026
15 of 22 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants