Trends In The Bitcoin Mempool, And How To Set Proper Transaction Fees
Bitcoin transaction fees can be tricky. Sometimes a user sends a transaction with what seems to be a sufficient fee, but then the average transaction fees on the network spike, which can cause a transaction to get stuck for hours or even days in a worst case scenario. This article details trends in the Bitcoin mempool and how to set a proper transaction fee.
First, it is important to understand how Bitcoin transaction fees work. Transaction fees are paid to Bitcoin miners as an incentive for them to secure the network. The higher the transaction fee, the higher the priority that a transaction will have. Simultaneously, there is a limited amount of space in each Bitcoin block. Originally Bitcoin had a block size limit of 1 MB, but once Segregated Witness (SegWit) was implemented this block size limit increased on average to 1.2-1.3 MB.
When a transaction is first sent it is unconfirmed and resides in the mempool. If there is enough room in the block for all the transactions in the mempool then all transactions are confirmed, as long as they at least have the minimum fee of 1 satoshi per byte. Sometimes even transactions with zero fees can be confirmed, although that is not guaranteed even if blocks have room left, since often transactions with zero fees are not relayed by nodes.
However, if there are more transactions in the mempool than room in the block, then a bidding war essentially starts. The transactions with the highest fees make it into the block, while transactions with fees below a certain threshold remain in the mempool. This increases the profits of miners, and is actually an essential mechanism to sustain Bitcoin miners long term as block rewards approach zero due to halvenings.
For many years blocks rarely approached the 1 MB block size limit, keeping transaction fees low on the network since there was no need to bid for higher priority. Only in late 2016 and into 2017 did blocks regularly begin hitting the block size limit, causing transaction fees to rise. This was due to a massive increase in Bitcoin usage as the bull run of 2017 unfolded.
As Bitcoin approached its all-time high of $20,000 in December 2017 the mempool became clogged, and transaction fees increased to over 2,000 satoshis per byte at one point, equivalent to over $50 to send a Bitcoin transaction. Simultaneously, the mempool size increased to as high as 330 MB, meaning it would take over 300 blocks to clear all the transactions in the mempool, assuming no further transactions are sent. This incident revealed that Bitcoin has a critical scalability problem, and temporarily crippled Bitcoin’s use as a currency. It would be nonsensical to use Bitcoin to pay for a $5 cup of coffee if the fee is $50.
It was perhaps fortunate that the bull run of 2017 abruptly transitioned into the bear market of 2018, resulting in a sharp decrease in Bitcoin network usage. By February transaction fees were once again low, although it is notable that transaction fees were in excess of $10 for over a month and over $5 for about 2 months.
The ‘bull run’ of 2019, where Bitcoin rocketed from $3,000 to $14,000, has also caused the mempool to become congested at times, leading to a rise in transaction fees, although the highest fees seen in 2019 at any point were between $5 and $10 and only briefly. It seems that the increased block size limit from SegWit has helped to mitigate sustained mempool congestion, at least for now.
The devil is in the details however. A mempool/transaction fee chart for the past 6 months show that transaction fees on the Bitcoin network have been quite volatile. Zooming in on the 2 week chart it is notable is that transaction fees seem to spike during the morning in the Eastern United States and subside around sunset.
This creates a nearly daily situation where someone could send a transaction fee that seems appropriate in the morning, and then the fees to spike, causing their transaction to be stuck in the mempool and unconfirmed for almost the whole day. This can be disruptive for business, as well as personal life. For example, if someone is using a Bitcoin ATM and makes this mistake, they may be stuck at the ATM for the entire day.
In order to prevent this scenario, a useful tool is Johoe’s Bitcoin Mempool Statistics. Simply check this website before sending a transaction, and use a fee near the top of the range of recent transaction fees to guarantee that your transaction will be confirmed even if the fees spike rapidly before the next block. Most wallets allow custom transaction fees in satoshis per byte, and this is a far better option than letting the wallet calculate fees for you, since the wallet may set a fee that is too low.