A Go implementation of a Lightning Network node that manages channels, routes payments and exposes gRPC and REST APIs.
ElementsProject/lightning
A standard-compliant Lightning Network node implementation in C, run as the lightningd daemon and controlled over JSON-RPC.
- Stars
- 3,105
- Forks
- 1,043
- Open issues
- 429
- Last commit
- 2 days ago
What is it?
Core Lightning (CLN) is an implementation of the Lightning Network protocol for Bitcoin, written in C and maintained by Blockstream. It runs as a node daemon, lightningd, that opens and manages payment channels, creates and pays invoices, and connects to other lightning nodes. It works on Linux and macOS and requires a locally or remotely running bitcoind (version 25.0 or above) that is fully synced.
The node is controlled through a JSON-RPC 2.0 interface exposed over a Unix domain socket, with a lightning-cli tool and a Python client library available. Its functionality can be extended with plugins. Installation is possible from precompiled binaries, Docker images, or source. The project recommends starting on testnet or regtest before using mainnet.
The repository also covers operational topics such as pruned bitcoind nodes, which can cause synchronization to stall if blocks are missed, and optional encryption of the HD wallet seed via the --encrypted-hsm option.
Key features
- 01Implements the Lightning Network protocol with a focus on spec compliance
- 02Controlled via JSON-RPC 2.0 over a Unix domain socket and the lightning-cli tool
- 03Supports opening channels, creating invoices, and paying BOLT11 invoices
- 04Extensible through a plugin system
- 05Optional encryption of the HD wallet seed
Use cases
- Running a Lightning node to send and receive Bitcoin payments
- Building payment features or services on top of a Lightning node via its JSON-RPC API
- Developing custom Lightning plugins or experimenting on regtest networks
Quick start
- 1
Install a pre-compiled binary from the GitHub releases page
- 2
Start bitcoind and wait until it is fully synced
bitcoind -daemon - 3
Start lightningd on mainnet with debug logging
lightningd --network=bitcoin --log-level=debug - 4
Generate a new on-chain address to fund your node
lightning-cli newaddr
Things to know
- Only works on Linux and macOS.
- Requires a locally or remotely running bitcoind (version 25.0 or above) that is fully synced and relays transactions.
- The license is not clearly identified in the project metadata.
In collections
Topics
FAQ
- What is lightning?
- A standard-compliant Lightning Network node implementation in C, run as the lightningd daemon and controlled over JSON-RPC. Core Lightning (CLN) is an implementation of the Lightning Network protocol for Bitcoin, written in C and maintained by Blockstream. It runs as a node daemon, lightningd, that opens and manages payment channels, creates and pays invoices, and connects to other lightning nodes. It works on Linux and macOS and requires a locally or remotely running bitcoind (version 25.0 or above) that is fully synced.
- Is lightning free to use? What license does it have?
- lightning is open source under the Other license. Check the license terms before using it in commercial products.
- Is lightning still maintained?
- Actively maintained. The last commit to lightning was on Nov 5, 2026.
- What can I use lightning for?
- Running a Lightning node to send and receive Bitcoin payments Building payment features or services on top of a Lightning node via its JSON-RPC API Developing custom Lightning plugins or experimenting on regtest networks
- How do I install lightning?
- Install a pre-compiled binary from the GitHub releases page Start bitcoind and wait until it is fully synced: bitcoind -daemon Start lightningd on mainnet with debug logging: lightningd --network=bitcoin --log-level=debug Generate a new on-chain address to fund your node: lightning-cli newaddr
- Where can I get lightning?
- The source code and installation instructions are on GitHub: https://github.com/ElementsProject/lightning
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Go toolkit for self-custodial Bitcoin wallets that combines Ark, Lightning swaps and on-chain payments behind one daemon and CLI.
A free, open-source, self-hosted Bitcoin payment processor that lets merchants accept Bitcoin directly without intermediaries.
Official Docker Compose deployment that generates and runs a full BTCPay Server stack from environment variables.
A home server operating system for self-hosting, with an app store of over 300 apps for storing files and running services on your own hardware.
A self-custodial Android Bitcoin wallet covering on-chain, Lightning, Ark, Spark, and Liquid, with privacy and customization focus.