Note from the author: Our previous guide explains how to avoid stuck transactions: by paying the correct fee for the current network circumstances. This guide explains how to deal with stuck transactions and reduced fees.
We recommend reading these guides in order, since the first one covers some foundational concepts. This guide assumes some familiarity with wallet operations—particularly finding a transaction ID (txid) and inputs and outputs.
Bitcoin’s rocket ride has created a lot of believers and disproven a lot of critics. Bitcoin’s futures are now trading on traditional markets, and Bitcoin ranks 2nd in Google searches for 2017. So it’s clear that Bitcoin is succeeding beyond the expectations of all but the most optimistic early adopters.
But it’s not all good news! Exchanges are buckling under the pressure of new-user registrations (which are reportedly a higher order of magnitude than last year). Even more concerning: The Bitcoin network’s rapid growth has brought it to the limits of its non-upgraded scaling capacity.
The Problem: High Fees and Slow Transactions
If you sent a Bitcoin transaction in early December, chances are that you paid a really high— even record-high—transaction fee. And if you didn’t, then perhaps you experienced a delayed transaction.
Here’s the way Bitcoin works: a limited number of transactions can be confirmed in each block. As you probably know, miners produce a new block every 10 minutes or so, and transaction fees are the “bribes” that convince miners to include transactions in their new blocks. An included transaction is known as a confirmation.
When the price is really volatile, many people frequently try to send transactions at the same time. So competition for this limited block space drives up fees. The higher the fee attached to a transaction, the greater the chance that it’ll be confirmed in the next block.
Johoe’s Bitcoin Mempool Statistics site gives a visual representation of the number of unconfirmed transactions over time, and across various fee levels. It’s a great resource.
Note: As the mempool fills, new bands appear and widen, and fees are driven up. As the mempool clears, the uppermost fee ranges tend to be processed and closed first, as they represent the most profitable transactions for miners. This economic process is referred to as the fee market.
Necessary Concepts
We know that you’re probably impatient to fix your transaction, but doing so requires some knowledge of how Bitcoin works. We’ll try to keep the technobabble to a minimum…
1. The Mempool
The graphic above depicts what’s known as the memory pool (mempool): the set of unconfirmed transactions that are waiting to be entered into the blockchain. The mempool exists in the memory (RAM) of all Bitcoin full nodes (i.e., computers that are a part of the Bitcoin network).
Note that different nodes have different versions of the mempool, depending on which transactions they know about and remember. So each mempool is different for each node. If a transaction is not confirmed for a long period of time, it will eventually fade from the node’s mempool. The current default timeout is 72 hours. (Previously, it was 2 weeks.) But nodes may set their own duration. The transactions with the lowest value will also be dropped from the mempool, as higher fee transactions are entered.
It’s possible that a certain node (probably your own) will never forget about your transaction, and may even occasionally rebroadcast it, which reminds other nodes about it.
2. Transaction IDs
Regardless of whether it’s confirmed or unconfirmed, every Bitcoin transaction (tx) is assigned a unique identifier, which is known as a transaction ID (txid). Your wallet will report this txid. You can consult the wallet’s documentation if you’re unsure about how to access it. By copying and pasting the txid into any block explorer, you’ll get more info about the transaction.
Note: Your txid will be needed for some of the solutions covered below.
3. Satoshis per Byte (sat/B)
Of course, satoshis are the smallest units of bitcoin. The standard ways that miner fees are measured are satoshis per byte. This measure is what is being displayed by the fee-related pages Johoe and Earn. If fed a txid, block explorers will display any transaction’s sat/B value. But note that some services display it as sat/kB (kilobyte). You can get the sat/B rate by multiplying the sat/kB by 100,000.
Note: The size of your transaction (which many wallets allow you to preview) is represented in bytes or kilobytes. You can find the final fee you pay to miners by multiplying the size by the fee level (which is measured in satoshis).
The standard size of a non-SegWit transaction is around 250 bytes. However, the size of Bitcoin transactions greatly varies, based on 3 major factors:
- The number of inputs
- The number of outputs
- The complexity of the script
Inputs
Perhaps you’ve received thousands of small BTC payments over the years, then attempted to make a single large payment. If so, your transaction will likely be huge in size. (Here’s a short explanation about why.) Before attempting to spend many inputs, wait until the mempool is fairly clear (fewer than 50,000 pending transactions), and fees are correspondingly low.
Fee Reduction Tip: You can consolidate your addresses by sending many small inputs to an address you own—at a time when fees are low. That way, you will significantly reduce your future fees by consolidating your number of inputs into one.
You may have to periodically repeat this process each time you send less than the complete balance of your wallet to an address. Then you’ll receive a new input to make the change. For optimal results, consolidate to a SegWit address!
Outputs
Fee Reduction Tip: When generating multiple outputs (in other words, making payments to multiple addresses at once), it makes sense to batch your transactions, instead of making multiple payments. By doing so, you will both lower your fees (although sadly, not by the multiple of your intended recipient address) and your transaction size (or “blockchain footprint”).
Here are guides for sending multiple transactions in Bitcoin Core and Electrum. For other wallets, consult their documentation, in order to see if this feature is supported.
Script Complexity
If using complex conditional payments (such as multi-sig payments that involve numerous signatories), your transactions size will also dramatically increase.
Fee Reduction Tip: In this case, using SegWit or crafting simpler conditions will both help.
These factors affect transaction size, so they affect the fee paid. For an interactive example, check out Coinb.in’s Fees page.
Note that regular, non-SegWit inputs are a significant factor in the final byte size.
4. Fee Estimation
Wallets attempt to recommend a reasonable fee, based on the current and recent states of the mempool. Recent versions (0.15+) of Bitcoin Core tend to make the most intelligent estimations. Wallets and services that are overbid on the fee market drive up everyone else’s fees.
Most wallets allow you to set custom fees, and with practice, you can usually do better than their estimation of distribution algorithms. And of course, you will need to preview the size of your transaction before you can set a fee.
For help with choosing the right fee, refer to our previous guide, particularly the section on using the mempool display on Earn.com. Note that Earn gives a far more precise view than Johoe’s site, so it’s better for choosing your fees—down to 10 satoshis.
Low Fee Solutions
Solution 1: SegWit
Each Bitcoin block can accommodate about 2,500 regular transactions, but around 8,000 SegWit transactions. Since they’re smaller, SegWit transactions have much lower fees.
Here’s the good news: You can take advantage of SegWit right now, by using wallets and services that support it.
If everyone ran SegWit, the problems of high fees and stuck transactions would disappear—at least until a few million more people get into Bitcoin!
Note: In order to use a SegWit in a compatible wallet, you must first send your coins from your standard address(es) to a SegWit address that is generated by that wallet. As with coin consolidation, this process should be performed when fees are low. Likewise, it will save you a lot of money on future transactions.
Furthermore, note that there are two types of SegWit addresses:
Although bech32 transactions are about 10% smaller, they’re not widely supported yet, so many wallets and services are unable to send BTC to bech32 addresses. However, bech32 addresses can reliably send BTC to all other wallet types.
For maximum compatibility, it’s currently recommended that you use P2SH “3” SegWit addresses. Since Electrum defaults to bech32 addresses, this compatibility can be achieved by changing the derivation path.
Warning: Some airdrops and forkcoins reward you with tokens, since your Bitcoin balance does not recognize SegWit addresses.
Solution 2: Use GDAX for Withdrawals, instead of Coinbase
If you have a Coinbase account, move your coins to GDAX (Coinbase’s advanced trading exchange), then withdraw them. Unlike the simplified Coinbase side, GDAX does not charge a withdrawal fee. Since there have been reports that this application process has been delayed, you’ll have to apply for a GDAX account if you don’t have one.
Dealing with Stuck Transactions
Method 1: Replace by Fee (RBF)
If your wallet supports RBF, you can enable it—either for the transaction in question, or as a default option. Then you can experiment with as many cheeky, low-fee transactions as your time constraints allow.
If your transaction gets stuck, you can easily bump the fee via the RBF option. Your wallet will then automatically rebroadcast the transaction, with a fee raised to your specified level. Naturally, you should set the level higher, and refer to the above sections on fee estimation.
We recommend enabling RBF as the default option for all your transactions, unless you’re sending transactions that are intended to be accepted with no confirmations. In certain wallets, RBF is an opt-in feature. It can save you a lot of fee-related headaches, so there’s really no downside to using it.
Tip: Electrum (software wallet) and GreenAddress (web wallet) have simple RBF functionality in their GUIs, and they also support SegWit.
Method 2: Don’t Spend Unconfirmed Coins
If you wait to receive coins, avoid spending until they arrive. While most wallets will not spend unconfirmed coins by default, certain wallets may allow it. The last thing you want to do is create a new transaction, which depends on the confirmation of a prior one. It may lead to this nasty scenario: a chain of unconfirmed transactions.
In Electrum, ensure the bottom box is ticked.
In Bitcoin Core, ensure the bottom button is unticked.
Unsticking Transactions
If none of the above options work for you, here’s what you can do next:
Method 1: Wait
Sometimes, waiting is the best thing to do. If your transaction isn’t urgent, take a break, and forget about it for a while. There’s a good chance that it’ll sort itself out—one way or another.
Method 2: Rebroadcast
Perhaps you’ve noticed that fees have fallen, and transactions with similar fees are getting confirmed. If so, it makes sense to rebroadcast your fees (if they’re older than 72 hours).
There are numerous ways to rebroadcast transactions. For instance, you can enter “resendwallettransactions” into the console if you’re using a Bitcoin Core wallet. Other wallets may also offer this feature, so you can consult their documentation for more. It’s also possible to use an online service to rebroadcast. One option is Coinb.in’s Broadcast page:
Note that the site expects a hex-encoded transaction. You can easily acquire it by following these 4 simple steps:
- Enter your transaction ID (txid) into the Blockchain.info block explorer, as explained above.
- Note that the URL in the address bar will change to https://blockchain.info/tx/, followed by your full txid.
- After your txid appears in the address bar, enter the following text: ?format=hex.
- Blockchain will display a big blob of hex code. Copy and paste it into the Broadcast page, and click Submit. Your transaction will then be rebroadcast.
Method 3: Transaction Accelerators
Transaction accelerators are linked to mining pools. They’ll add your txid to the list of the ones that are included in the next block they mine—if they have the capacity to do so. Some are free. Others are free below certain size limits. Others charge upfront, and still others request tips.
Here are some recommended transaction accelerators:
- The ConfirmTX accelerator provides free processing of transactions below 300 bytes. Larger transactions incur $5 payments.
- When dealing with a stuck transaction, the forum thread for the Coolwave accelerator is also worth a try. To be able to submit your transaction, you will need to register an account on the BitcoinTalk forum, but it’s probably worth your time.
- ViaBTC’s accelerator is free, but it’s often unavailable, as it only accepts 100 unconfirmed transactions per hour. Therefore, in order for it to be accepted, you will likely have to repeatedly resubmit your txid at the top of every hour. ViaBTC also offers a payment option, but they only accept Bitcoin Cash.
Method 4: Double-Spending & CPFP
Your last resorts are:
- Double-spending
- Performing a Child Pays for Parent (CPFP) transaction on an incoming transaction
Double-spending sends the same transaction again, but with a higher fee. It’s much like RBF, but with this difference: RBF transactions conform to established protocol rules, and are incorporated in several wallet designs. Meanwhile, double-spending is considered invalid. (Indeed, it’s one of the major problems that Bitcoin was created to solve!) And all wallets are designed to prevent them.
CPFP transactions essentially spend coins that are incoming but unconfirmed, which is exactly what we advised against in Preventing Stuck Transactions Method 2. The fees on new transactions are high enough to cover themselves and the unconfirmed transactions they depend on. If the fee is high enough, a miner may be enticed to mine the old, low-fee, unconfirmed transaction, in order to claim the new, high-fee CPFP transaction (as it’s impossible to claim the new transaction before the old one is confirmed).
This Bitcoin wiki details the methods for both processes.
Warning: Keep in mind that these processes are rather tangled, difficult procedures, which may place your funds at risk.
Future Solution to Fees & Speeds: the Lightning Network!
Although it’s not quite ready for mainstream adoption, the Lightning Network promises nearly instant, free transactions to all Bitcoiners. Read more about it in our guide, and get ready for its release!
When a transaction is “Stuck” for more than a day, the easiest solution is just to rebroadcast it. You can use some free transaction accelerators. They are actually rebroadcasting your transaction via several nodes. BitAccelerate is currently rebroadcasting via 7 public nodes.
Very informative article, thanks! But one point confuses me: if 1 kB = 1,028 B, how is it “You can get the sat/B rate by multiplying the sat/kB by 100,000” – ?
Hi Barry,
Ah, I think the issue there was that I was looking at one block explorer quoting in sat/b and another in mBTC/kb. Ordinarily it should be 1000 as you say.
This was a great and informative article. Thanks
Bitcoin was pure in its idea but fatally flawed in its execution. Wasn’t the whole idea to get away from institutional charges, exchanges, and fees?! This is worse then the banking system. At one point the fee on a single Bitcoin transaction was $45 and higher. Even a foreign transaction charge with credit cards isn’t that high.
It is. Blockchains want to scale but it also wants to keep decentralization. LN can do a billion tps at near 0 cent but it not user friendly yet aka it beta mainent use only.
Hey Rich,
The whole idea (at least in my opinion) was to create money free from the control of politically-motivated central planners. This was achieved through decentralization. Compromising that fundamental principle – by going down the slippery slope of blocksize increases which degrade decentralzation – for the sake of cheap fees would have been a terrible mistake.
Scaling through layers is the way to keep Bitcoin decentralized while addressing the fee issue. While paying high fees might suck in the short-term, I’d rather suffer some minor financial pain now than see Bitcoin ruined.
I believe by the end of this year it will be entirely clear that Bitcoin’s scaling approach is vastly superior to that of Bcash.
Hey Steven,
Thank you for the article, informative!
Can you you tell me why increasing the blocksize centralizes Bitcoin network?
Thanks.
Hi nima,
Sure thing. The larger blocks are made, the more computing resources they require in terms of storage space, CPU processing, and bandwidth. This is true for both full nodes and miners.
As the vast majority of full nodes are run at an economic loss (electricity and bandwidth bills, as well as opportunity costs) by ordinary users, it’s clear that they don’t have a financial incentive to keep upgrading their systems to support ever larger blocksizes. It therefore follows that node count will drop further the larger blocksize becomes. This is bad, as full nodes verify transactions en route to miners, as well as verifying the newly-mined blocks.
Big blockers (Ver in particular) have gone so far as to argue that full nodes don’t matter; only miners matter. Ver apparently believes that reducing the network to a few massive mining datacentre nodes and placing full trust in these miners (some of whom have already shown themselves to be highly unscrupulous) is an acceptable scaling cost. Most sensible people disagree with this approach, as it would render the Bitcoin network just about as centralised as VISA or PayPal.
Bigger blocks also lead to greater mining centralisation. As the time to transmit blocks rises with their size, geographic concentration is incentivized. If the next block is already very likely to come out of China (as mining power is concentrated there), then the bigger the blocks the greater a miner’s lag will be to receive a new block the further they are from China. Having the majority of hashrate in a single country exposes the network to greatly increased regulatory risk, as well as destruction through environmental or manmade disasters.
For these reasons and others, bigger blocks are probably the worst possible way to scale, albeit also the easiest way.
Switch to Bitcoin Cash for faster & cheaper transactions…
Nope, Bcash might be fast and cheap right now but that’s because no one is using it. I believe that it’ll prove to be a poor store of value, once the problems with its unethical founders, mediocre development “team,” control by Bitmain, and other assorted drawbacks become more apparent.
If you want cheap, fast transactions then either wait for mainstream Lightning support (the LN future is already here, just not widely distributed) or use a more trustworthy altcoin.
Very informative & useful article. Thank you.