bolts icon indicating copy to clipboard operation
bolts copied to clipboard

BOLT 12: Clarify handling of empty offer_chains field

Open erickcestari opened this issue 4 months ago • 1 comments

The BOLT 12 specification doesn't explicitly address how to handle an offer_chains field that is present but contains zero chain hashes.

Currently the spec defines:

  • Field omitted: Bitcoin only (implied)
  • Field present with chains: Those specific chains
  • Field present but empty: Undefined

I think we could reject such case or imply as "Bitcoin only"

Example offer: lno1qgqpvggrt0j7j3uzp9n549hxpu0sxlmpwe2ql5qplgwkg628wrzk5acfcskq

erickcestari avatar Aug 18 '25 19:08 erickcestari

If the field is present but empty, it means that the offer is not valid for any chain. From the Requirements for Invoice Requests:

if offer_chains is set: MUST set invreq_chain to one of offer_chains

So if it's empty, you can't request an invoice. That's how eclair treats it.

thomash-acinq avatar Aug 19 '25 08:08 thomash-acinq