npx skills add https://github.com/roasbeef/claude-files --skill lndSKILL.md
LND Lightning Network Skill
LND (Lightning Network Daemon) is a complete implementation of a Lightning Network node. This skill helps you run lnd in Docker for development and testing, with support for multiple backends.
Prerequisites
- Docker and Docker Compose installed
- (Optional)
ghCLI for building from GitHub PRs
Quick Start
Start the full regtest stack (Bitcoin Core + LND):
cd ~/.claude/skills/lnd/templates
docker-compose up -d --build # First time: builds lnd from source (~3-5 min)
docker-compose up -d # Subsequent runs: uses cached image
This starts:
lnd-bitcoind: Bitcoin Core 30 in regtest mode with ZMQlnd: LND built from local source
Notes:
- LND is built from source at
/users/roasbeef/gocode/src/github.com/lightningnetwork/lnd - First build takes ~3-5 minutes to compile Go code
- Uses
--noseedbackupfor testing (no wallet seed required)
Check status:
~/.claude/skills/lnd/scripts/lncli.sh getinfo
Backend Options
LND supports three backend options:
| Backend | Description | Best For |
|---|---|---|
| bitcoind | Bitcoin Core | Production, regtest development, interop testing |
| btcd | btcd (Go implementation) | Simnet testing, fast iteration |
| neutrino | Light client (BIP 157/158) | Testnet, mobile simulation |
Standalone Mode (bitcoind backend - default)
cd ~/.claude/skills/lnd/templates
docker-compose up -d
Shared Mode (interop with eclair)
# First start eclair's stack
cd ~/.claude/skills/eclair/templates
docker-compose up -d
# Then start lnd using eclair's bitcoind
cd ~/.claude/skills/lnd/templates
docker-compose -f docker-compose-shared.yml up -d
btcd Mode (simnet)
cd ~/.claude/skills/lnd/templates
docker-compose -f docker-compose-btcd.yml up -d
Neutrino Mode (light client)
cd ~/.claude/skills/lnd/templates
docker-compose -f docker-compose-neutrino.yml up -d
# Or with signet
NETWORK=signet docker-compose -f docker-compose-neutrino.yml up -d
Docker Management
Build Image (from lnd source)
# Build from current source
~/.claude/skills/lnd/scripts/docker-build.sh
# Build from a specific branch
~/.claude/skills/lnd/scripts/docker-build.sh --branch simple-taproot-chans
# Build from a GitHub PR
~/.claude/skills/lnd/scripts/docker-build.sh --pr 1234
# Build from a specific commit
~/.claude/skills/lnd/scripts/docker-build.sh --commit abc123
# Quick PR build (convenience wrapper)
~/.claude/skills/lnd/scripts/build-pr.sh 1234
Start Containers
# Start standalone stack (bitcoind + lnd)
~/.claude/skills/lnd/scripts/docker-start.sh
# Start in shared mode (uses external bitcoind)
~/.claude/skills/lnd/scripts/docker-start.sh --shared
# Start with btcd backend
~/.claude/skills/lnd/scripts/docker-start.sh --btcd
# Start in neutrino mode
~/.claude/skills/lnd/scripts/docker-start.sh --neutrino
# Rebuild before starting
~/.claude/skills/lnd/scripts/docker-start.sh --build
Stop Containers
# Stop containers (preserve data)
~/.claude/skills/lnd/scripts/docker-stop.sh
# Stop and remove volumes (clean state)
~/.claude/skills/lnd/scripts/docker-stop.sh --clean
View Logs
docker logs -f lnd
docker logs -f lnd-bitcoind
Essential lncli Operations
All commands use lncli.sh wrapper which auto-detects the lnd container.
Node Information
# Get node info
~/.claude/skills/lnd/scripts/lncli.sh getinfo
# Get wallet balance (on-chain)
~/.claude/skills/lnd/scripts/lncli.sh walletbalance
# Get channel balance (Lightning)
~/.claude/skills/lnd/scripts/lncli.sh channelbalance
Wallet & Addresses
# Get new address (native SegWit)
~/.claude/skills/lnd/scripts/lncli.sh newaddress p2wkh
# Get new address (nested SegWit)
~/.claude/skills/lnd/scripts/lncli.sh newaddress np2wkh
# Get new Taproot address
~/.claude/skills/lnd/scripts/lncli.sh newaddress p2tr
# Send on-chain
~/.claude/skills/lnd/scripts/lncli.sh sendcoins --addr=<address> --amt=<satoshis>
Connect to Peers
# Connect by URI
~/.claude/skills/lnd/scripts/lncli.sh connect <pubkey>@<host>:9735
# List connected peers
~/.claude/skills/lnd/scripts/lncli.sh listpeers
# Disconnect
~/.claude/skills/lnd/scripts/lncli.sh disconnect <pubkey>
Channel Management
# Open channel
~/.claude/skills/lnd/scripts/lncli.sh openchannel --node_key=<pubkey> --local_amt=1000000
# List channels
~/.claude/skills/lnd/scripts/lncli.sh listchannels
# Get channel balance
~/.claude/skills/lnd/scripts/lncli.sh channelbalance
# Close channel cooperatively
~/.claude/skills/lnd/scripts/lncli.sh closechannel --funding_txid=<txid> --output_index=<n>
# Force close channel
~/.claude/skills/lnd/scripts/lncli.sh closechannel --funding_txid=<txid> --output_index=<n> --force
Payments
# Create invoice
~/.claude/skills/lnd/scripts/lncli.sh addinvoice --amt=<satoshi
...
Repository
roasbeef/claude-filesParent repository
Repository Stats
Stars17
Forks3