Last updated on February 22nd, 2018 at 11:33 am
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.
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
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!
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”).
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.
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.
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:
- 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!