Eclair (french for Lightning) is a scala implementation of the Lightning Network. It can run with or without a GUI, and a JSON-RPC API is also available.
This software follows the Lightning Network Specifications (BOLTs). Other implementations include lightning-c, lit, and lnd.
🚧 Both the BOLTs and Eclair itself are a work in progress. Expect things to break/change!
Eclair 0.2-alpha1 is compliant with the BOLTs at commit 06a5e6cbdbb4c6f8b8dab444de497cdb9c7d7f02, with the following caveats:
- BOLT 1: Base Protocol
- BOLT 2: Peer Protocol for Channel Management
- BOLT 3: Bitcoin Transaction and Script Formats
- BOLT 4: Onion Routing Protocol
- BOLT 5: Recommendations for On-chain Transaction Handling
- If a revoked commitment tx is published, only the offender's main output will be stolen as punishment, not the HTLCs.
- BOLT 7: P2P Node and Channel Discovery
- BOLT 8: Encrypted and Authenticated Transport
- BOLT 9: Assigned Feature Flags
Eclair needs a synchronized, segwit-ready, non-pruning, tx-indexing Bitcoin-core node.
Run bitcoind with the following bitcoin.conf:
regtest=1
server=1
rpcuser=XXX
rpcpassword=XXX
txindex=1
Just use the windows installer, it should create a shortcut on your desktop.
You need to first install java, more precisely a JRE 1.8+.
Then just grab the latest fat jar and run:
java -jar eclair-node_xxxxxx-fat.jarEclair will create a directory in ~/.eclair by default. You may change this directory's location using --datadir <dir> command line argument.
If you want to change configuration parameters, create a file named eclair.conf in eclair's home directory.
datadir is mandatory if you want to run several instances of eclair on the same machine. You will also have to change ports.
| option | description | default value |
|---|---|---|
| eclair.server.port | TCP port | 9735 |
| eclair.api.port | HTTP port | 8080 |
| eclair.bitcoind.rpcuser | Bitcoin Core RPC user | foo |
| eclair.bitcoind.rpcpassword | Bitcoin Core RPC password | bar |
→ see application.conf for full reference.
| method | params | description |
|---|---|---|
| connect | host, port, pubkey | connect to another lightning node through a secure connection |
| open | host, port, pubkey, fundingSatoshis, pushMsat | opens a channel with another lightning node |
| peers | list existing local peers | |
| channels | list existing local channels | |
| channel | channelId | retrieve detailed information about a given channel |
| network | list all nodes that have been announced | |
| genh | generate a payment H | |
| send | amountMsat, paymentHash, nodeId | send a payment to a lightning node |
| close | channelId | close a channel |
| close | channelId, scriptPubKey (optional) | close a channel and send the funds to the given scriptPubKey |
| help | display available methods |
- [1] The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments by Joseph Poon and Thaddeus Dryja
- [2] Reaching The Ground With Lightning by Rusty Russell

