LND Circular Rebalancing - Fix Routes and Fee Optimization
What Is LND Circular Rebalancing?
Circular rebalancing sends a payment that routes out one channel and back in through another, redistributing liquidity without closing channels.
Common Errors
- no route found for circular rebalance
- fee too high: rebalance cost exceeds benefit
- payment timed out: circular payment loop took too long
- TEMPORARY_CHANNEL_FAILURE on intermediate hop
Manual Circular Rebalance via lncli
# Create invoice to yourself
lncli addinvoice --amt 500000 --memo rebalance
# Pay it via specific outgoing channel
lncli payinvoice --outgoing_chan_id <chan_id> <bolt11>
# List channel IDs
lncli listchannels | python3 -c "
import json,sys
for c in json.load(sys.stdin)['channels']:
print(c['chan_id'], c['remote_pubkey'][:20],
'local:', c['local_balance'], 'remote:', c['remote_balance'])
"Using bos (Balance of Satoshis)
# Install bos npm i -g balanceofsatoshis # Rebalance: move 500k sats out of chan A, in via chan B bos rebalance --out <peer_pubkey_A> --in <peer_pubkey_B> --amount 500000 # Set max fee rate (ppm) bos rebalance --out <pubkey_A> --in <pubkey_B> --amount 500000 --max-fee-rate 200
Fee Optimization
- Keep rebalance fee below your channel's routing fee revenue
- Target imbalanced channels: local > 80% or < 20%
- Use --max-fee-rate 100-300 ppm to limit costs
Need help balancing your LND node channels? DM on Nostr.