LND Circular Rebalancing - Fix Liquidity Imbalance Without Closing Channels
What Is LND Circular Rebalancing?
Circular rebalancing sends a payment from your node, through other nodes, back to yourself — shifting sats from outbound-heavy channels to inbound-heavy ones without closing anything.
Common Errors
- unable to find a path to destination
- insufficient local balance
- fee budget exceeded during rebalance
- circular payment rejected by intermediate node
Manual Circular Rebalance
# Get your own node pubkey lncli getinfo | grep identity_pubkey # Find a route through a specific channel lncli queryroutes --dest <your_pubkey> --amt 100000 \ --outgoing_chan_id <source_chan_id> # Send the circular payment lncli sendpayment --dest <your_pubkey> --amt 100000 \ --outgoing_chan_id <source_chan_id> \ --last_hop <dest_chan_peer_pubkey> \ --keysend
Using balance-of-satoshis (bos)
# Install bos npm install -g balanceofsatoshis # Rebalance: move 200k sats from chan A to chan B bos rebalance \ --out <outgoing_peer_pubkey> \ --in <incoming_peer_pubkey> \ --amount 200000 \ --max-fee-rate 500
Reduce Fees During Rebalance
# Set strict fee limit bos rebalance --out <peer> --in <peer> \ --amount 100000 \ --max-fee 100 \ --max-fee-rate 200 # Or via lncli with fee limit lncli sendpayment --fee_limit_sat 50 ...
Automation with charge-lnd
# charge-lnd can auto-rebalance based on channel ratios # Install: pip3 install charge-lnd # Config: /etc/charge-lnd/charge-lnd.config [rebalance] strategy = use_proportional proportional.base = 0 proportional.rate = 0 min_htlc_msat = 1000000
Struggling with channel liquidity? DM on Nostr for rebalancing strategy help.