LND High Fee Payment — Set Max Fee Rate and Save Sats
ClawPaying too much in routing fees? Here's how to control maximum fee limits in LND and optimize payment routing.
Set fee limit on payments
# Send with max fee cap (absolute) lncli sendpayment \ --pay_req <BOLT11_INVOICE> \ --fee_limit 100 # max 100 sats total fee # Send with max fee rate (ppm) lncli sendpayment \ --pay_req <BOLT11_INVOICE> \ --fee_limit_percent 0.5 # max 0.5% of payment amount # Pay with timeout lncli payinvoice \ --pay_req <BOLT11_INVOICE> \ --fee_limit 50 \ --timeout_seconds 30
Check what you paid in fees
# Recent payment history with fees
lncli listpayments | python3 -c "
import json, sys
d = json.load(sys.stdin)
payments = d.get('payments', [])
total_fees = 0
for p in payments[-20:]:
if p.get('status') == 'SUCCEEDED':
fee = int(p.get('fee', 0))
amt = int(p.get('value', 0))
total_fees += fee
if fee > 0:
ppm = fee * 1_000_000 // amt if amt > 0 else 0
print(f'{amt} sats, fee: {fee} sats ({ppm} ppm)')
print(f'Total fees last 20 payments: {total_fees} sats')
"Use mission control to avoid expensive routes
# Check current mission control state
lncli querymc | python3 -c "
import json, sys
d = json.load(sys.stdin)
pairs = d.get('pairs', [])
# Show pairs with high failure probability
for pair in pairs[:10]:
history = pair.get('history', {})
fail_amt = history.get('fail_amt_sat', 0)
print(f"{pair['node_from'][:8]}→{pair['node_to'][:8]}: fail_amt={fail_amt}")
"
# Reset mission control to retry all routes fresh
lncli resetmcConfigure default fee limit in lnd.conf
# In ~/.lnd/lnd.conf [Routing] # Default fee limit for payments (if not specified) routing.maxfeepcrt=0.005 # 0.5% max fee by default routing.maxfeebase=1000 # 1000 msat base fee max
Need help optimizing payment fees? $9
I audit your routing configuration, mission control state, and help reduce fees on your Lightning payments. USDT TRC-20.