The number of transactions on the Bitcoin network has steadily increased over the years. This means more blocks are filling up. And as not all transactions can be included in the blockchain straight away, backlogs form in miners’ “mempools” (a sort of “transaction queue.”)

Miners typically pick the transactions that pay the most fees and include these in their blocks first. Transactions that include lower fees are “outbid” on the so called “fee market,” and remain in miners’ mempools until a new block is found. If the transaction is outbid again, it has to wait until the next block.

This can lead to a suboptimal user experience. Transactions with too low a fee can take hours or even days to confirm, and sometimes never confirm at all.

But here is what you can do today to keep your own transaction from getting stuck.

Before You Send It

For the first years of Bitcoin’s existence, most wallets added fixed fees to outgoing transactions: typically, 0.1 mBTC. Since miners had spare space in their blocks anyways, they normally included these transactions in the first block they mined. (In fact, transactions with lower fees or even no fee at all were often included as well.)

With the increased competition for block space, a fixed 0.1 mBTC fee is often insufficient to have a transaction included in the next block; it gets outbid by transactions that include higher fees. While even a low fee transaction will probably confirm eventually, it can take a while.

Try increasing the fee

If you want to have your transaction confirmed faster, the obvious solution is to include a higher fee.

If your wallet (by default) includes an insufficient fee, you may be able to adjust the fee manually, either as part of the wallet settings, or when you send a transaction. (Or both.)

Websites like 21.co monitor the network and suggest how much of a fee you should include per byte, as well as how fast you can expect your transactions to confirm at different fee levels.

If you need the payment to go through in the next block or two, you need to pay a higher fee. For less urgent payments, you can include a lower fee; it will just take a bit longer to confirm.

Check if your wallet includes dynamic fees

These days, most wallets support dynamic fees. Based on data from the Bitcoin network, these wallets automatically include a fee that is estimated to have a transaction included in the next block, or maybe in one of the first blocks after that.

Some wallets also let you choose the fee priority. Again, higher fees let your transactions confirm faster, lower fees could make it take a bit longer.

If transactions from your wallet are often delayed during peak hours, and you have no option to adjust to higher priority fees, your wallet is most likely outdated. Check if there is an update available, or switch to a new wallet.

Consider switching wallets

If you do switch to a new wallet, you of course need to transfer funds from your old wallet to your new wallet. If you’re not in a rush and don’t mind paying the fee, you can just send it from your old wallet to the new wallet through the Bitcoin network. It will probably arrive eventually — even if the fee is low.

If you are in a rush, some wallets allow you to export your private keys or the private key seed, and then import them into the new wallet. This requires no transaction on the Bitcoin network. From the new wallet, you can immediately start transacting.

After You’ve Sent It

If you’ve already sent a transaction and it gets stuck, that transaction can, in some cases, be made to “jump the queue.”

Opt-in Replace-by-fee

The easiest way to make your transaction jump the queue is using an option called Opt-In Replace-by-Fee (Opt-In RBF). This lets you re-send the same transaction, but with a higher fee.

In most cases, when the same transaction is re-sent over the network, but with a higher fee, the new transaction is rejected by the network. Bitcoin nodes typically consider this new transaction a double spend, and will therefore not accept or relay it.

But when sending a transaction using Opt-In RBF, you essentially tell the network you may re-send that same transaction later on, but with a higher fee. As a result, most Bitcoin nodes will accept the new transaction in favor of the older one; allowing the new transaction to jump the queue.

Whether your new transaction will be included in the very next block does depend on which miner mines that next block: not all miners support Opt-In RBF. However, enough miners support the option to, in all likelihood, have your transaction included in one of the next couple blocks.

Opt-In RBF is currently supported by two wallets: Electrum and GreenAddress. Depending on the wallet, you may need to enable Opt-In RBF in the settings menu before you send the (first) transaction.

Child Pays for Parent

If your wallet does not support Opt-In RBF, things get a bit more complex.

Child Pays for Parent (CPFP) may do the trick. Applying CPFP, miners don’t necessarily pick the transactions that include the most fees, but instead pick a set of transactions that include most combined fees.

Without getting into too many technical details, most outgoing transactions do not only send bitcoins to the receiver, but they also send “change” back to you. You can spend this change in a next transaction.

Some wallets let you spend this change even while it is still unconfirmed, so you can send this change to yourself in a new transaction. This time, make sure to include a high enough fee to compensate for the original low fee transaction. A miner should pick up the whole set of transactions and confirm them all at once.

If your wallet does not let you select which bitcoins to spend exactly — meaning you cannot specifically spend the unconfirmed change — you can try spending all funds in the wallet to yourself; this should include the change.

Like Opt-In RBF, not all miners currently support CPFP. But enough of them do to probably have your transaction confirmed in one of the next blocks.

Or…

If neither Opt-In RBF nor CPFP are an option, you can technically still try and transmit the original transaction with a higher fee. This is typically referred to as “full replace-by-fee,” which some miners accept. However, publicly available wallets currently do not support this as an option.

Otherwise, you may just have to wait either until the transaction confirms or until the bitcoins reappear in your wallet. It’s important to note that until a transaction confirms, the bitcoins are technically still in your wallet — it’s just that it often doesn’t appear that way. The bitcoins are not literally “stuck” on the network and cannot get lost.

Update: Since completion of this article, mining pool ViaBTC started offering a “transaction accelerator”. If your transaction is stuck and includes at least 0.1 mBTC fee per kilobyte, you can submit the transaction-ID to ViaBTC, and the pool will prioritize it over other transactions. Since ViaBTC controls about seven percent of hash-power on the Bitcoin network, there is a good chance it will find a block within a couple of hours. The service is limited to 100 transactions per hour, however.

As the Receiver

Of course, a transaction can also get stuck if you’re on the receiving end of it.

If your wallet allows spending unconfirmed transactions, this can be solved with CPFP as well. Much like as mentioned before, you can re-spend the unconfirmed, incoming bitcoins to yourself, including a fee high enough to compensate for the initial low fee transaction. If the new fee is sufficient, the transaction should typically confirm within a couple of blocks.

The only other option is to ask the sender whether he used Opt-In RBF. If so, he can re-send the transaction with a higher fee.

Update: Of course, ViaBTC’s transaction accelerator (mentioned above) works for incoming transactions as well.