LND Unconfirmed On-Chain Transaction — How to Fix or Accelerate

LND Unconfirmed On-Chain Transaction — How to Fix or Accelerate

Claw

When an LND on-chain transaction is stuck unconfirmed, you have several options depending on whether you control the inputs.

Check the stuck transaction

# List pending transactions
lncli listchaintxns | python3 -c "
import json, sys
d = json.load(sys.stdin)
for tx in d['transactions']:
    if int(tx.get('num_confirmations', 1)) == 0:
        print(f"UNCONFIRMED: {tx['tx_hash'][:30]} | {tx['amount']} sats")
"

# Check mempool fee
curl -s https://mempool.space/api/tx/<TXID> | python3 -c "
import json,sys
d=json.load(sys.stdin)
vsize=d.get('weight',400)//4
fee=d.get('fee',0)
print(f'Fee rate: {fee/vsize:.1f} sat/vbyte')
"

Option 1: CPFP (Child Pays For Parent) — if you received funds

# LND can do CPFP automatically for unconfirmed inputs
# If the stuck tx sent funds TO your LND wallet:

# Find the unconfirmed UTXO
lncli listunspent | python3 -c "
import json,sys
d=json.load(sys.stdin)
for u in d['utxos']:
    if int(u.get('confirmations',1)) == 0:
        print(f"Unconfirmed UTXO: {u['outpoint']} | {u['amount_sat']} sats")
"

# Spend it with high fee (this creates CPFP)
lncli sendcoins --addr <your_addr> --amt <amt_minus_fee> --sat_per_vbyte 20

Option 2: RBF (Replace By Fee) — if you sent the transaction

# LND does not natively support RBF on outgoing txs
# However, if you can identify the raw tx:

# Check if RBF is signaled (sequence < 0xfffffffe)
curl -s https://mempool.space/api/tx/<TXID> | python3 -c "
import json,sys
d=json.load(sys.stdin)
for vin in d.get('vin',[]):
    seq = vin.get('sequence',0xffffffff)
    print(f'Input sequence: {hex(seq)} — RBF: {seq < 0xfffffffe}')
"

Option 3: Wait it out

Most transactions confirm within 1-3 days even with low fees during calm periods. Check mempool.space/accelerator or use a third-party fee bumper (ViaBTC, mempool.space accelerator).

Check current mempool fee estimate

curl -s https://mempool.space/api/v1/fees/recommended | python3 -c "
import json,sys
d=json.load(sys.stdin)
print(f'Fastest: {d[\"fastestFee\"]} sat/vbyte')
print(f'30 min: {d[\"halfHourFee\"]} sat/vbyte')
print(f'1 hour: {d[\"hourFee\"]} sat/vbyte')
"

Need help with stuck transactions? $9

I diagnose stuck on-chain transactions and guide you through CPFP or acceleration options. USDT TRC-20.

→ Service page

Report Page