165

I sent a transaction

  • without (or with an exceptionally small) transaction fee
  • using extremely small or unconfirmed inputs
  • while the stars were not standing right.

For whatever reason, I have been waiting forever for my transaction to confirm.

Why is it taking so long for my transaction to confirm? What can I do to speed-up the transaction’s confirmation?


This is a canonical question serving as a lightning rod for the flood of "unconfirmed transaction" questions we are experiencing lately. Please provide a detailed and broad answer to serve a wide range of these questions.

1

11 Answers 11

120
+100

How Bitcoin Mining Works

Bitcoin transactions are mined (processed) by Miners, and Miners want to benefit from their work. By mining transactions with higher fees, they make more money. Some miners can decide to mine all transactions no matter the fee but they still must compete with every other financially motivated miner.

Why is it taking so long for my transaction to confirm?

If you have sent a transaction

without (or with an exceptionally small) transaction fee

expect it to be ignored for an unknown amount of time until a miner decides to process it and solves the block; this could be several days to several weeks, possibly never. Your wallet and any Bitcoin node will show it as unconfirmed, your transaction is stuck in limbo.

Block sizes are limited, which means that only a limited number of transactions can be processed in a certain timeframe. In the beginning of bitcoin, there was lots of free space in each block because there were not many transactions. However, now that Bitcoin is quite popular there are more transactions than can be processed into the current block. This is why transaction fees have increased, and as long as someone is still willing to pay more they will keep increasing.

What can I do to speed-up the transaction’s confirmation?

Nothing. The next best thing is to cancel and resend the transaction.

  1. Make a note of the individual bitcoin address(es) that the unconfirmed transaction was sent from.
  2. Run Bitcoin Core with the -zapwallettxes option (or wait a few days until your wallet stops broadcasting the transaction and it falls out of the global transaction mempool). (Issue with mempool.dat resolved by #10330 in 0.15.0).
  3. Send all your bitcoins from the addresses recorded in step 1 to a new address with the recommended or higher than recommended fee.
  4. Make original transaction again using the recommended fee.

What to watch out for

  • Sites that claim to "speed up your unconfirmed bitcoin transaction". From personal experience, these sites are either scams or just don't work.
  • DOUBLE PAYMENTS. If the addresses used in the original transaction have sufficient bitcoin in them to cover the transaction, it can always be completed at a later date. To avoid this, follow step 3 to empty the associated addresses and do not reuse them.

What is the recommended fee?

Transaction fees vary by the size of your transaction, and not all transactions are the same size. The fee for same sized transactions also depends on how busy the bitcoin network is at the moment. An estimate (at the time of original post) was between 11-20 satoshi/byte (0.00011-0.00020BTC/kB) but now can be much higher. Most wallets have a feature which dynamically calculates the rate based on network congestion.

See https://bitcoinfees.earn.com/ for a live chart of suggested transaction fees

1
  • Very good! Thank you. Perhaps you could add a sentence please where you explain that blocks have gotten fuller and that’s why fewer miners pick up low-fee transactions.
    – Murch
    Commented Dec 21, 2015 at 21:57
37

Yes, there is a way to save a borked transmission. A restart of the wallet and some patience typically fixes the issue.

How to stop/reverse a Bitcoin transaction without confirmations:

  1. Run bitcoind and with -zapwallettxes.
    This makes the wallet "forget" any unconfirmed transactions, thus enabling you to reuse their inputs.
  2. Create a new transaction to make your payment and add an appropriate fee this time.
  3. The unconfirmed transaction is still valid and may still be floating around in the network, so be sure to spend its inputs to yourself, or the transaction may be confirmed at a later time and you'll end up double-paying.
    The simplest way is to send all your bitcoins to yourself. Don't forget an appropriate fee. ;)
1
27

Here is a guide for as many wallets as I could figure out how to perform an RBF with. This is adapted from my bitcointalk post: https://bitcointalk.org/index.php?topic=1802212.0

What is a "Stuck" transaction? How are they caused?

A "stuck" transaction is a transaction which has remained unconfirmed for period of time which either the receiver or the sender is uncomfortable with. Stuck transactions can be annoying as it means that recipients often consider the senders to not have paid yet, or the recipient needs the money as soon as possible.

Stuck transactions are typically caused by low transaction fee rates. However other things can cause stuck transactions such as spending from an unconfirmed transaction, having dust outputs in the transaction, or being a double spend of another transaction. If a transaction has a double spending transaction and the double spend confirms, then the transaction will be "stuck" forever as it can never confirm.

What can I do to make my stuck transaction confirm?

There are several options for confirming stuck transactions:

For both the recipient and the sender of the transaction, you can:

  • Wait for the transaction to confirm
  • Wait for the network to "forget" about the transaction
  • Ask a miner to confirm it for you

For the sender of a transaction, you can also:

  • Attempt an Replace-By-Fee double spend transaction
  • If you have a change output, you can attempt a Child-Pays-For-Parent transaction

For the recipient of a transaction, you can also:

  • Attempt a Child-Pays-For-Parent transaction

Waiting for a confirmation

If you are incapable of performing any of the other options or are too afraid to do so, you can simply wait and hope that the transaction will eventually confirm. To ensure the network is constantly being reminded of the transaction, you can rebroadcast the transaction periodically. Most wallets will rebroadcast automatically, so simply leaving your wallet open will allow rebroadcasting to happen.

Waiting for the network to "forget" about the transaction

If a transaction remains unconfirmed for too long, it can be eventually "forgotten" by most nodes on the Bitcoin network if no one rebroadcasts the transaction. This happens due to node restarts, mempool expiry times, or mempool eviction because the minimum mempool fee has increased. This process typically takes a few days (usually 3). Once a transaction has been "forgotten", you may not see it in your wallet and you probably will not see the transaction in most block explorers. Once the transaction has been "forgotten", you can simply send the Bitcoin again but include a higher transaction fee. If you still see the transaction in your wallet but don't find it on any block explorers, you will need to follow the instructions in the next Replace-By-Fee Section.

Note that some wallets will continuously rebroadcast the transaction while the wallet is on, so you either have to remove the transaction from the wallet using the instructions in the RBF section, or shut down the wallet and keep it off for several days.

Ask a miner for help

Some mining pools and miners offer services to allow you to prioritize your transaction in their mempool so that it is chosen sooner for inclusion in a block. One such service is https://pool.viabtc.com/tools/txaccelerator/. Note that ViaBTC does have a limit the accelerator to 100 transactions every hour and requires that it pays a minimum fee rate of 10 satoshis/byte, so their accelerator may not necessarily work. Another such service is https://pushtx.btc.com/#/. Not that BTC.com does require another form of payment in order to "accelerate" your transaction.

Also note that if you attempt a Replace-By-Fee transaction, both the original transaction and the RBF transaction will be considered double spends. Miners will likely not help with any transactions marked as double spends.

Attempting a Replace-By-Fee (RBF) double spend transaction

What is an RBF transaction

A Replace-By-Fee transaction is a transaction that is nearly identical to your stuck transaction but pays a higher transaction fee. Since the original transaction most likely does not use Opt-in RBF, the RBF transaction that we will be creating will be considered a double spend and marked as such. The transaction uses Full-RBF and thus may still take a little bit longer to confirm as it is technically a double spend.

The difference between the types of RBF transactions

Replace-By-Fee transactions have 3 different types, First-Seen-Safe(FSS) RBF, Full RBF, and Opt-in RBF. FSS RBF requires that the RBF transaction include the same outputs as the transaction it replaces and consumes the same inputs. Full RBF means that the transaction is simply a double spend of another transaction but pays a higher transaction fee than the one(s) it replaces. Opt-in RBF means that the RBF transaction can only replace a transaction that has Opted-in to allowing itself to be replaced. Opt-in RBF follows BIP 125.

The instructions given in this section will be for making Full RBF transactions. Opt-in RBF transactions will be described in the "Avoiding Stuck Transactions In The Future" section.

How to make a Full RBF transaction

Making a Full RBF transaction depends entirely on the wallet that you are using. Some wallets support the advanced functionality required to make a Full RBF transaction, others do not. The following will be guides for each wallet on how to make a Full RBF transaction with that wallet. In general the procedure is to remove the unconfirmed transaction from the wallet and then resend the Bitcoin but with a higher transaction fee.

When making a Full RBF transaction, the transaction should include the recommended fee rate effective at the time of creating the transaction. See the "Avoiding this issue in the future" section for help with that.

Bitcoin Core

Bitcoin Core makes making Full RBF transactions very easy. Simply go to the transactions list, right click the transaction that is stuck, and choose the Abandon Transaction option.

If that option is greyed out, go to the Bitcoin Core datadir and delete the mempool.dat file. Then restart Bitcoin Core with the -walletbroadcast=0 option and then you should be able to use Abandon Transaction.

If the above two options fail for some reason, start Bitcoin Core with the -zapwallettxes option to clear all unconfirmed transactions from your wallet.

Once the transaction is either Abandoned or cleared from the wallet, you can simply go to the Send tab and send the Bitcoin again but make sure that you include a sufficient transaction fee.

Bitcoin Armory

Bitcoin Armory also makes making Full RBF transactions very easy. Go to Help > Clear All Unconfirmed Transactions and restart Armory. This will clear all of the unconfirmed transactions from the wallet and thus allow you to create the Full RBF transaction. Once Armory has restarted, simply send the Bitcoin again as you normally would but be sure to include a sufficient transaction fee.

MultiBit HD

MultiBit HD allows for making Full RBF transactions fairly easy as well. Go to Manage Wallet and click on Repair Wallet and follow the wizard. This process will clear all of the unconfirmed transactions from your wallet much like Bitcoin Core and Armory do. Once repair wallet has completed, simply send the Bitcoin again as you normally would. Note that some users have had trouble with this method in the past and it may not always work. You may need to wait for the transaction to be "forgotten" in order for this method to work.

Wallets that do not allow you to or ones that I don't know how to make Full RBF transactions

Not all wallets support the creation of Full RBF transactions. Many wallets do not allow clearing all unconfirmed transactions to allow for making Full RBF transactions. The following is a list of wallet software which do not support Full RBF transactions. If a wallet on this list does support FullRBF transactions, please let me know and provide instructions for that so I can add it above.

  • Blockchain.info and web wallets in general
  • Electrum (supports Opt-in RBF, but not Full RBF)
  • Mycelium
  • MultiBit Classic
  • Bitcoin Wallet for Android
  • Breadwallet
  • Copay

Attempting a Child-Pays-For-Parent transaction

What is a Child-Pays-For-Parent transaction?

A Child-Pays-For-Parent (CPFP) transaction is exactly as the name implies, a child transaction spends from an unconfirmed parent transaction and includes a transaction fee which covers both the fee of the child and the parent. However creating CPFP transactions are much more difficult as it requires spending from an unconfirmed transaction, something that many wallets do not allow.

How can I avoid making Stuck transactions in the future?

Using Dynamic Fees

The best way to avoid having stuck transactions is to make sure that you are not spending from an unconfirmed transaction, and include a sufficient transaction fee. If your wallet supports dynamic transaction fees, you should use those. If you want very fast confirmations, set the dynamic fees to choose the fastest fee possible. Dynamic fees are calculated by the wallet by analyzing the current state of the network and determining an optimal transaction fee from there. Since the state of the network constantly changes, the optimal transaction fee calculated one day may not necessarily be the best fee for the next day.

If your wallet does not support dynamic fees but does support setting a custom transaction fee rate for each transaction, you can look up the optimal fee rate on sites like http://bitcoinfees.21.co/ and https://bitcoinfees.github.io/ and set the fee rate for each transaction based on those sites. You must do this for each transaction you make otherwise you may end up paying a sub-optimal fee.

If your wallet does not support any sort of fee rate or does not allow setting custom transaction fees, you should upgrade to a new wallet. Using a fixed fee or fixed fee rate is no longer a good idea as the network constantly changes. You can use this formula: <in>*148 + <out>*34 + 10 where <in> is the number of inputs and <out> is the number of outputs to estimate the size of your transaction and determine the optimal fee for it.

Note that some wallets (e.g. blockchain.info), even though they use dynamic fees, set an upper limit to the transaction fee. If you notice that your transactions are constantly being stuck even though you are using dynamic fees, you should check the settings of your wallet and perhaps even switch to a new wallet which has no limit to the transaction fee.

Use Opt-In RBF

Opt-In RBF is a feature that allows for an RBF transaction to be more easily created as these transactions will not be rejected by nodes supporting Opt-In RBF.

Currently few wallets support creating Opt-In RBF transactions

Electrum

To create a transaction that can be replaceable, go to Tools > Preferences and check the box "Enable Replace-By-Fee". Then when you want to send some Bitcoin, next to the Fee slider is a box labeled "Replaceable". Check that box so that while the transaction is still unconfirmed you can replace the transaction with one that pays a higher fee.

To increase the fee of a transaction that uses Opt-In RBF, right click the transaction in the history list and choose the "Increase Fee" option.

Armory

Armory also allows for the creation of RBF transactions. When sending a transaction, choose the checkbox "Enable RBF".

To increase the fee of a transaction that uses Opt-In RBF, right click the transaction in the transactions list and choose the "Bump Fee" option. Transactions whose fee can be increased are labeled clearly in the transactions list.

2
  • 4
    I just experienced a "gotcha" in Bitcoin Core 0.15 for an opt-in RBC transaction. The transaction required no "change" address since it was spending exactly the amount of the input. When attempting an RBF to speed up the transaction, bitcoin-qt complains that there is no change address present in the transaction, so RBF cannot be used.
    – Hannah Vernon
    Commented Nov 28, 2017 at 18:31
  • 1
    Regarding a transaction with no change output, see my question about exactly this issue: bitcoin.stackexchange.com/questions/64814/…
    – hitchhiker
    Commented Dec 12, 2017 at 20:28
25

In the case that your fee is too low: Now that child-pays-for-parent has been merged, you(or any of the recipients of your unconfirmed transaction) could spend the Bitcoin received and the fee associated with that second transaction will help prioritize the confirmation of the original transaction.

This does require more fine grained control of which outputs you spend, which not all wallets provide.

The behavior from miners prioritizing this way has existed in some pools for a while, but now it is the default.

1
13

The other answers cover most useful information already, I'd like to add one point though:

The fee estimation of most wallets has significantly improved since blocks have gotten full. If you're running an outdated version, it's likely that it is doing a bad job of guessing the fee. That may cause you to either overpay or your transactions not getting confirmed in a timely fashion.

To avoid fee-related delays in the future, it is advantageous to run a current version of your wallet software.

8

If you are using Electrum, there is no equivalent to -zapwallettxes. The closest thing you can do is to restore your wallet from a seed. This will wipe your client of any unconfirmed transactions.

Then, you can resend the transaction with a higher fee.

1
3

There's many ways to get your transaction confirmed.

  • push your transaction

https://insight.bitpay.com/tx/send

https://blockchain.info/pushtx

https://blockexplorer.com/tx/send

https://btc.com/tools/tx/publish

https://coinb.in/#broadcast

https://chain.localbitcoins.com/tx/send

http://webbtc.com/relay_tx

https://www.smartbit.com.au/txs/pushtx

https://live.blockcypher.com/btc/pushtx/

https://www.f2pool.com/pushtx (Needs referral code from pool operator.)

https://pool.viabtc.com/tools/BTC/broadcast/

https://chainquery.com/bitcoin-api/sendrawtransaction

Some websites ask for hex format transaction ID, You could convert it like that:

https://blockchain.info/tx/TransactionID Here?format=hex

1
  • 2
    No, pushtx websites only broadcast transactions, they don't convince miners to include theirs in their blocks.
    – MCCCS
    Commented Apr 29, 2020 at 10:13
3

If I had seen Andrew's great reply earlier, I would probably spared myself from writing an explainer on Reddit, but now that I did I'll post it here as well, hoping that it might complement this thread, as it is targeted more at beginner level folks.

In the last days we have been experiencing a sharp rise in price, which is historically correlated with many people transacting over the Bitcoin network. Many people transacting over the Bitcoin network implies that the blockspace is in popular demand, meaning that when you send a transaction, it has to compete with other transactions for the inclusion in one of the blocks in the future. Miners are motivated by profits and transactions that pay more than other transactions are preferred when mining a new block. Although the network is working as intended (blockspace is a scarce good, subject to supply/demand dynamics, regulated purely by fees), people who are unfamiliar with it might feel worried that their transaction is “stuck” or otherwise somehow lost or “in limbo”. This post attempts to explain how the mempool works, how to optimize fees and that one does not need to worry about their funds.

TL;DR: Your funds are safe. Just be patient* and it'll be confirmed at some point. A transaction either will be confirmed or it never leaves your wallet, so there is nothing to worry about in regards to the safety of your coins.

You can see how the mempool "ebbs and flows", and lower fee transactions get confirmed in the "ebb" times (weekends, nights): https://jochen-hoenicke.de/queue/#0,30d

Here’s how Andreas Antonopoulos describes it:

In bitcoin there is no "in transit". Transactions are atomic meaning they either happen all at once or don't happen at all. There is no situation where they "leave" one wallet and are not simultaneously and instantaneously in the destination address. Either the transaction happened or it didn't. The only time you can't see the funds is if your wallet is hiding them because it is tracking a pending transaction and doesn't want you to try and spend funds that are already being spent in another transaction. It doesn't mean the money is in limbo, it's just your wallet waiting to see the outcome. If that is the case, you just wait. Eventually the transaction will either happen or will be deleted by the network.

tl;dr: your funds are safe

* If you are in hurry there are things like RBF (Replace By Fee) and CPFC (Child Pays For Parent), which you can use to boost your transaction fees; you will need an advanced wallet like Bitcoin Core or Electrum for that though. Keep also in mind that this is not possible with any transaction (RBF requires opt in before sending, f.ex). If nothing else works and your transaction really needs a soon confirmation, you can try and contact a mining pool to ask them if they would include your transaction. Some mining pools even offer a web-interface for this: 1, 2.

If you are interested in trying out those options, here is a very helpful post that goes more into it: What can I do to make my stuck transaction confirm?

How is the speed of confirmations determined in bitcoin?

Open this site: https://jochen-hoenicke.de/queue/#0,2w

Here you see how many transactions are currently (and were historically) waiting to be confirmed, i.e how many transactions are currently competing with your transaction for blockspace (=confirmation).

You can see two important things: the differently coloured layers, each layer representing a different fee (higher layer = higher fees). You can point at a layer and see which fees (expressed in sat/byte) are represented in this layer. You can then deduct which layer your own transaction is currently at, and how far away from the top your position is (miners work through the mempool always from the top, simply because the transactions on top pay them more). You can estimate that each newly mined block removes 1MB from the top (see the third graph which shows the mempool size in MB). On average, a new block is produced every ten minutes. But keep in mind that over time more transactions come into the mempool, so there can be periods where transactions are coming faster than transactions being “processed” by miners.

The second important observation is that the mempool "ebbs and flows", so even the lower paid transactions are periodically being confirmed at some point.

In short: what determines the speed of a confirmation is A) how high you set the fee rate (in sat/vbyte), B) how many other transactions with same or higher fees are currently competing with yours and C) how many transactions with higher paid fees will be broadcast after yours.

A) you can influence directly, B) you can observe in real time, but C) is difficult to predict. So it's always a little tricky to tell when the first confirmation happens if you set your fees low. But it's quite certain that at some point even the cheap transactions will come through.

Good to know: "fee" means the absolute amount of satoshis a transaction pays, and "fee rate" is the fee per weight of a transaction. Miners prioritize by the latter, because even if a "lighter" transaction pays less in absolute satoshis, it might be more profitable to include it into a block if it has higher fee rate, because it also takes up less space. This means, fees expressed in sat/vbyte is what interests us in this context.

So what happens if my transaction stays unconfirmed for days or even weeks?

Transactions are being broadcast by the full nodes on the network. Each node can adjust their settings for how long they keep unconfirmed transactions in their mempool. That’s why there is not a fixed amount of time after which a transaction is dropped from the mempool, but most nodes drop unconfirmed transactions after two weeks. This means that in the absolute worst case the unconfirmed transaction will simply disappear from the network, as if it never happened. Keep in mind that in those two weeks the coins never actually leave your wallet. It’s just that your wallet doesn’t show them as “available”, but you still have options like RBF and CPFP to get your transaction confirmed with higher fees, or to “cancel” your transaction by spending the same coins onto another address with a higher fee.

A transaction with very low fee rate might also disappear from the network if the mempool goes over 300MB in size, because by default a Bitcoin Core node will purge transactions from its internal mempool, starting with the lowest fee rates first, while increasing its minimum acceptable fee rates that it will broadcast further. You can read more about it here. Spikes this large have been very rare in bitcoin's history so far though, I think there was only one, briefly in January 2018.

Important to know: even if the transaction has been forgotten by most nodes and doesn't appear anymore on blockexplorers, it is still a valid transaction and might have stayed in the mempool of a node somewhere. So it's better to use one of the inputs in another transaction to invalidate the original, "stuck" transaction (otherwise you risk it to be re-broadcast and be confirmed when you already forgot about it).

Helpful tools to estimate fees for future transactions:

Here are some resources that can help you estimate fees when sending a bitcoin transaction, so you don't end up overpaying (or underpaying) unnecessarily. Keep in mind that in order to take advantage of this, you need a proper bitcoin wallet which allows for custom fee setting. A selection of such wallets you can find here or here.

The order here is roughly from advanced to easy.

  1. https://jochen-hoenicke.de/queue/#0,24h

Here you can see a visualization of how many unconfirmed transactions are currently on the network, as well as how many were there in the past. Each coloured layer represents a different fee amount. F.ex the deep blue (lowest layer) are the 1sat/byte transactions, slightly brighter level above are the 2sat/byte transactions and so on.

The most interesting graph is the third one, which shows you the size of the current mempool in MB and the amount of transactions with different fee levels, which would compete with your transaction if you were to send it right now. This should help you estimating how high you need to set the fee (in sat/byte) in order to have it confirmed "soon". But this also should help you to see that even the low fee transactions get confirmed very regularly, especially on weekends and in the night periods, and that the spikes in the mempool so far have always been temporary. For that you can switch to higher timeframes in the upper right corner, f.ex here is a 30 days view: https://jochen-hoenicke.de/queue/#0,30d. Try higher timerframes as well.

You clearly can see that the mempool is cyclical and you can set a very low fee if you are not in hurry.

  1. https://mempool.space

This is also an overview of the current mempool status, although less visual than the previous one. It shows you some important stats, like the mempool size, some basic stats of the recent blocks (tx fees, size etc). Most importantly, it makes a projection of how large you need to set your fees in sat/byte if you want your transaction to be included in the next block, or within the next two/three/four blocks. You can see this projection in the left upper corner (the blocks coloured in brown).

  1. https://whatthefee.io

This is a simple estimation tool. It shows you the likelihood (in %) of a particular fee size (in sat/byte) to be confirmed within a particular timeframe (measured in hours). It is very simple to use, but the disadvantage is that it shows you estimates only for the next 24 hours. You probably will overpay by this method if your transaction is less time sensitive than that.

  1. https://twitter.com/CoreFeeHelper

This is a very simple bot that tweets out fees projections every hour or so. It tells you how you need to set the fees in order to be confirmed within 1hour/6hours/12hours/1day/3days/1week. Very simple to use.

Hopefully one of these tools will help you save fees for your next bitcoin transaction. Or at least help you understand that even with a very low fee setting your transaction will be confirmed sooner or later. Furthermore, I hope it makes you understand how important it is to use a wallet that allows you to set your own fees.


Thank you to u/MrRGnome and u/fiatjaf for feedback and a special thank you to u/xekyo aka Murch on bitcoin.stackexchange for valuable help and proofreading.

3

Note: In the 2017 fee event, accelerators were widely used, but they seem to be rather expensive today in 2020. YMMV.


There are some services that take out-of-band requests to prioritize transactions that call themselves "transaction accelerators".

E.g. viabtc.com allocates part of their block to bumping stuck transactions:
https://pool.viabtc.com/tools/txaccelerator/

btc.com would be another transaction accelerator service. Try it if you want to pay by credit card :P
https://pushtx.btc.com/

1
  • 5
    ViaBTC recently stated that their allotment for an hour is used up in about 3 minutes. Really, it's more of a band-aid and political instrument than a solution.
    – Murch
    Commented Mar 7, 2017 at 9:28
0

There is currently a backlog of unconfirmed Bitcoin transactions and typically only the transactions with the highest fees will be confirmed until the backlog clears.

Any Help????

You have a few options:

  1. Submit your transaction to the ViaBTC Transaction Accelerator
  2. If you control either of the receiving addresses, send a new transaction from one of them with a much larger fee, encouraging a miner to pick up the whole chain of transactions (Child-Pays-For-Parent).
  3. Wait. The transaction should be either confirmed or removed from the memory pool within about 72 hours.

Here is a good fee estimator for future transactions: https://bitcoinfees.earn.com/

1
  • I've merged the question this answer was posted on originally into this more canonical topic. Please check if you should edit your answer to adapt it to this topic.
    – Murch
    Commented Jun 7, 2017 at 16:40
0

If your Bitcoin transaction is not getting confirmed, it's likely due to one or more of the following reasons:

Network congestion: When the Bitcoin network experiences high transaction volumes, it can lead to longer confirmation times. For instance, in late 2017, during the peak of the cryptocurrency market, the network became heavily congested, causing significant delays in transaction confirmations. Miners prioritize transactions with higher fees, so during times of congestion, transactions with lower fees may take longer to be included in a block.

Insufficient transaction fee: If the transaction fee you've included is too low compared to the current market rate, miners might not prioritize your transaction, leading to a delay in confirmation. For example, if the average transaction fee is 100 satoshis per byte and your transaction fee is only 50 satoshis per byte, miners will likely prioritize other transactions with higher fees before yours.

Unconfirmed parent transaction: If your transaction is dependent on another unconfirmed transaction (for example, you're trying to spend coins received from an unconfirmed transaction), it won't be confirmed until the parent transaction is confirmed first. This situation can create a chain of unconfirmed transactions that need to be processed sequentially.

What can you do about it?

Wait: Often, the simplest solution is to wait for some time. Miners may eventually confirm your transaction when the network congestion subsides or when they have processed higher-fee transactions. This can take from a few hours to a few days, depending on the network conditions.

Replace-by-fee (RBF): If your wallet supports the RBF feature, you can try to increase the transaction fee to incentivize miners to prioritize your transaction. For example, if your original transaction fee was 50 satoshis per byte, you could create a new transaction with a fee of 120 satoshis per byte to make it more attractive to miners.

Child pays for parent (CPFP): If your wallet allows you to spend the unconfirmed transaction outputs, you can create a new transaction, known as a "child" transaction, with a higher fee. By doing so, you effectively increase the fee for the entire chain of unconfirmed transactions, encouraging miners to confirm both the original "parent" transaction and the new "child" transaction.

Use a transaction accelerator: Some services, like mining pools or third-party platforms, offer transaction acceleration services. For example, ViaBTC offers a transaction accelerator service that prioritizes your transaction for a fee, increasing the likelihood of a timely confirmation. Be cautious when using such services and only opt for reputable providers.

Wait for the transaction to drop from the mempool: If none of the above options work or are available, you can wait for the transaction to be dropped from the network's mempool (usually between 2 weeks and 30 days, depending on the network). Once the transaction is dropped, the funds will return to your wallet, and you can initiate a new transaction with a higher fee.

To avoid unconfirmed transactions in the future, ensure you're using a wallet that dynamically calculates the appropriate transaction fee based on current network conditions, such as the Electrum wallet or the Bitcoin Core wallet.