Bitcoin Parent Transaction Unconfirmed: Why Subsequent Transfers Get Stuck Together

 / 
2

Subsequent transfers get stuck because you're spending money that hasn't arrived yet. Under Bitcoin's UTXO model, the change output of a transaction must wait for the parent transaction to be confirmed before it can be used as input for a child transaction. If the parent transaction isn't confirmed, all its child transactions will stay in the mempool.

OKX Exchange
A leading global cryptocurrency platform,suitable for both beginners and experienced traders.
New user benefit: 20% off trading fees upon registration!!

1. First, Understand How Bitcoin Transactions Are Chained

Bitcoin doesn't deduct balances like bank accounts. Instead, it uses UTXOs (unspent transaction outputs) to represent the "money tickets" you hold.

When you initiate a transaction, you consume one or more UTXOs as inputs and create new UTXOs as outputs (the payment to the recipient and the change back to you).

Here's the key point: If the funds you're sending include the change from an unconfirmed transaction, your new transaction has to wait for its "parent" transaction to confirm first. Until the parent is confirmed, the UTXO in the child transaction remains "pending" and cannot be included in a block by miners.

2. Why the Parent Transaction Gets Stuck

The most common reason a parent transaction gets stuck is that the fee is too low.

When the Bitcoin network is congested, miners prioritize transactions with higher fee rates (in sat/vB). If your fee is below market rate, the transaction will sit in the mempool queue, sometimes for hours or even days without being picked up.

It's a bit like trying to get a taxi during rush hour: if you don't tip extra, you'll always be at the back of the queue.

OKX Exchange
A leading global cryptocurrency platform,suitable for both beginners and experienced traders.
New user benefit: 20% off trading fees upon registration!!

3. Practical Steps to Diagnose and Resolve

Step 1: Confirm the parent transaction is still "Pending"

  • What to do: Look up the TxID (transaction hash) of your first transaction on a block explorer (e.g., Blockchain.com).

  • How to do it:

    • Check the transaction status. If it shows "Unconfirmed" or "Pending," the parent transaction is stuck.

    • Note down the parent transaction's TxID and the amount sent.

  • When you're done: You've confirmed the parent transaction is unconfirmed and understand the root cause of the stuck subsequent transactions.

Step 2: Decide how to "rescue" the funds

Once you've confirmed that the stuck parent is holding up the child transaction, you have two options:

  • Case A: You are the recipient and want to spend the unconfirmed funds (i.e., you initiated the child transaction)

    • What to do: Use CPFP (Child Pays for Parent). Create a new transaction that spends the unconfirmed output from the parent as an input, and attach a sufficiently high fee to this child transaction. Miners, seeing the high fee on the child, will include both the child and its parent in a block to claim the reward.

    • Note: The fee you pay must be high enough to cover the combined cost of both the parent and child transactions to attract miners.

  • Case B: You are the sender and realize the fee was too low

    • What to do: If you enabled RBF (Replace-By-Fee) when sending the transaction, you can replace the original with a new version that pays a higher fee. This effectively "cancels and reissues" the transaction: the new one gets confirmed and the old one becomes invalid.

    • Note: If you didn't enable RBF, this method won't work.

Risk note: If left unresolved, the stuck transaction may be dropped from nodes' mempools after about 14 days. At that point, the funds will return to your wallet, but you'll have to wait a long time and then pay fees again to reissue the transaction. Also, during this waiting period, do not repeatedly broadcast the same transaction, as it may trigger double-spend protection and complicate things further.

After taking these actions, how do you know the issue is resolved?

After using RBF, look up the new TxID on a block explorer. Once you see confirmations, the new transaction has been included and the old one is invalid. With CPFP, simply monitor the child transaction; when it gets confirmed (usually together with the parent), the parent's status will also change to "Confirmed". Once the child has 1 confirmation, you can proceed with any next steps.