Skip to content

Bitcoin accepted at checkout  |  Ships from Montreal, QC, Canada  |  Expert support since 2016

Lightning BOLT 9 Feature-Bits Reference: Every Assigned Bit and Its Rules

Before two Lightning nodes will transact, they compare notes on what each can do — anchors, multi-part payments, splicing, blinded paths — through a compact vector of feature bits defined by BOLT 9. Get a bit wrong and the connection or payment simply fails. This reference lists every assigned feature bit with its name, the contexts it appears in, its dependencies, and the even/odd “optional vs required” rule that governs them. It rounds out our Lightning set beside the BOLTs index and the BOLT11 invoice reference.

Quick answer

Lightning nodes advertise their capabilities with a feature-bit vector, defined by BOLT 9. Bits come in even/odd pairs: the odd bit signals "I support this (optional)", the even bit signals "I require this (compulsory)" — the "it's ok to be odd" rule that lets a feature roll out softly before becoming mandatory. This reference lists all 24 assigned bits with their option_* name, purpose, the contexts they appear in (init, node_announcement, channel_announcement, BOLT11 invoice, channel_type, blinded path) and their dependencies. Five features so universal the spec marks them "ASSUMED" (implied, not advertised) are shown as such.

The rule that matters: if both bits of a pair are set, the feature is treated as REQUIRED. Unknown even bits fail the connection/payment (a peer cannot honor a requirement it does not understand); unknown odd bits are ignored. For an invoice, the "9"-context bits override node_announcement features. Free CSV/JSON under CC BY 4.0; as of 2026-07-26.

Download CSV Download JSON REST API →

BitsNameDescriptionContextsDepends on
0/1option_data_loss_protectASSUMED implied in all modern nodes
4/5option_upfront_shutdown_scriptCommits to a shutdown scriptpubkey when opening a channelIN
6/7gossip_queriesPeer has useful gossip to share
8/9var_onion_optinASSUMED implied in all modern nodes
10/11gossip_queries_exGossip queries can include additional informationIN
12/13option_static_remotekeyASSUMED implied in all modern nodes
14/15payment_secretASSUMED implied in all modern nodes
16/17basic_mppNode can receive basic multi-part paymentsIN9payment_secret
18/19option_support_large_channelCan create large channelsIN
22/23option_anchorsAnchor commitment type with zero-fee HTLC transactionsINT
24/25option_route_blindingNode supports blinded pathsIN9
26/27option_shutdown_anysegwitFuture segwit versions allowed in shutdownIN
28/29option_dual_fundUse v2 of channel open, enables dual fundingIN
34/35option_quiesceSupport for the stfu (quiescence) messageIN
36/37option_attribution_dataCan generate/relay attribution data in update_fail_htlc and update_fulfill_htlcIN9
38/39option_onion_messagesCan forward onion messagesIN
40/41zero_fee_commitmentsZero-fee commitment and HTLC transactionsINoption_channel_type
42/43option_provide_storageCan store other nodes' encrypted backup dataIN
44/45option_channel_typeASSUMED implied in all modern nodes
46/47option_scid_aliasSupply channel aliases for routingINT
48/49option_payment_metadataPayment metadata in a tlv record9
50/51option_zeroconfUnderstands zeroconf channel typesINToption_scid_alias
60/61option_simple_closeSimplified closing negotiationINoption_shutdown_anysegwit
62/63option_spliceAllows replacing the funding transaction with a new oneIN

Context legend

I Presented in the init message.
N Presented in node_announcement messages.
C Presented in the channel_announcement message.
C- Presented in channel_announcement, but always odd (optional).
C+ Presented in channel_announcement, but always even (required).
9 Presented in BOLT11 invoices.
B Presented in the allowed_features field of a blinded path.
T Used in the channel_type field when opening channels.

Source: the canonical BOLT 9 from lightning/bolts (09-features.md, fetched 2026-07-26). Pairs with the Lightning BOLTs reference and the BOLT11 invoice reference (where the "9"-context bits show up).