Overview
BOLTs (Basis of Lightning Technology) are the technical specification documents that define how the Lightning Network operates. Similar to how RFCs define internet protocols, BOLTs ensure that different Lightning implementations (LND, CLN, Eclair, LDK) can interoperate seamlessly. The specifications are developed collaboratively and maintained on GitHub.
BOLT Specifications
BOLT # Title Purpose
──────────────────────────────────────────────────────────────────
1 Base Protocol Messaging and connection
2 Peer Protocol for Channel Mgmt Opening/closing channels
3 Bitcoin Transaction and Script On-chain transaction formats
4 Onion Routing Protocol Payment routing privacy
5 Recommendations for On-chain TX Fee handling and policies
7 P2P Node and Channel Discovery Network gossip protocol
8 Transport and Authentication Encrypted communication
9 Assigned Feature Flags Capability advertisement
11 Invoice Protocol for Payments Payment request encoding
Why Interoperability Matters
The Lightning Network's value depends on all participants being able to transact with each other regardless of which software implementation they use. BOLTs provide the common language that makes this possible. A payment initiated from an LND node can route through CLN nodes and arrive at an Eclair node without any compatibility issues, because all implementations follow the same BOLTs.
Evolution
BOLTs are living documents that evolve as the Lightning Network matures. Proposed changes are discussed among implementation teams, tested for compatibility, and formally adopted when consensus is reached. Recent additions include specifications for offers (BOLT12), which improve upon the original invoice format with features like reusable payment codes and payer privacy.
Common Misconceptions
BOLTs define the protocol, not the implementation. Each Lightning implementation (LND, CLN, Eclair, LDK) is free to organize its code and add features as it sees fit, as long as it adheres to the BOLT specifications for cross-implementation communication.