When a bitcoin user wants to pay another user, they craft an announcement to the whole network. This announcement takes the form of a transaction which specifies the funds that are being spent and the funds to be created. It also includes proof that the message was authorized by the owner of the spent funds. These payment promises are gossiped through the network. Each node keeps track of unconfirmed transactions in their individual memory pool (mempool).
As transactions are gossiped through the distributed network, the mempools of any two nodes generally overlap greatly (and I refer to this overlap as "the mempool"), but do not match exactly. Particularly, two nodes may receive transactions at different times or even have conflicting information altogether. The network needs a mechanism to resolve conflicting information among participants and converge on a common state. To this end, some nodes, called miners, assemble sets of unconfirmed transactions and propose them as updates to the network's state. The protocol performs a perpetual distributed lottery to select one among the many proposed updates to the shared state. The winning block commits the transactions to the network's journal (the blockchain) and indicates to participants that they should update their copy of the ledger (the Unspent Transaction Output set).
The protocol limits the overall transaction data as transactions consume resources of all participants in the network. Blocks are limited to 4,000,000 weight units, and the network regulates itself by targeting a stable block interval.
On the other hand, the amount of transactions that get submitted to the network is flexible. Miners can often not include all transaction that are queued in their mempools and they pick which (valid) transactions to include. Each transaction offers miners a small amount of bitcoin to incentivize inclusion in a block. Miners generally choose the transactions that pay the highest feerate (fee per weight unit) to maximize their revenue.
Especially, when bitcoin's exchange rate makes big swings, the volatility prompts people to participate in the market. As "being your own bank" is a core tenet among many Bitcoin users, a lot of people do not keep funds in exchange accounts but in wallets fully controlled by themselves. This means that market moving news and price swings often prompt the creation of higher than usual transaction traffic. Once the transaction creation rate exceeds the available blockspace supply, the mempool grows quicker than transactions get confirmed.
Anecdotally, transaction creation seems to follow a daily and weekly cyclical pattern. Transactions pick up with the start of the business day in Europe, and slow down with the end of the business day of the US west coast. The mempool usually shrinks between those hours as the Asian markets currently do not seem to produce as much traffic. Generally, the transaction volume drops on weekends. These patterns are sometimes overshadowed by other influences such as price rallies, or slumps in the hashrate that reduce the blockspace production.
Reading the mempool chart
As mentioned before, each node keeps their own view of the queued transactions in the so-called memory pool (or mempool). Jochen Hoenicke's website publishes mempool statistics of his own node. The website has three different graphs:
- Unconfirmed Transaction Count (Mempool)
- Pending Transaction Fee in BTC
- Mempool Size in MB
All of the below charts show the "mempool size in MB" from Jochen's site.
In the past few days, transaction creation has been exceeding transaction confirmation and more than 50 blocks worth of data have accumulated in the queue. This is about 1/3 of a day's capacity as the network targets 144 blocks per day. As users have varying urgency to see their transactions confirmed, they bid accordingly for inclusion of their transactions.
The colors in the graph represent different feerates. The feerate of a transaction is the ratio of fee per data amount. The higher the feerate, the more money a miner will make by including the transaction in their block.
- The blue bands in the bottom represent low-urgency transactions. The users may just be consolidating dust or have other reasons to prefer low cost over quick confirmation. The blue bands collect transactions in the feerates of 1–10 sat/vB.
- The green bands in the middle consist of transactions that want to get some priority, but are unwilling to pay a premium to get confirmed as quickly as possible. These are users usually aiming to see transactions confirmed in a day or two. The green bands collect transactions in the feerates of 10-40 sat/vB.
- The yellow (and red) bands at the top are users vying for express confirmations. They usually choose their bids to get confirmations within the next hour. These transactions could for example facilitate business deals or attempt to enter a market as quickly as possible. Yellow ranges from 40–140 sat/vB, red starts at 140 sat/vB.
While the transaction creation exceeds block capacity, the mempool grows more quickly than it shrinks. New transactions attempt to skip to the front of the line to make yet a higher bid and especially get added to the top. This pushes up the top feerates.
Eventually, the transaction creation slows down and drops below the rate of blockspace production. The mempool starts clearing from highest feerate to lowest feerate.
However, during a market frenzy or a hashrate slump, the demand for blockspace may exceed production for an extended period of time and bridge the nights and weekends which have lower blockspace demand. For example, in May after the third halving, more than 50 blocks worth of transactions amassed in the 1-2 sat/vB band (the lowest blue) when the transaction queue did not clear for over two weeks.
Last weekend, the mempool did not clear out either.
This is by no means the worst we have seen. In the 2017/2018 winter, around the time that the Bitcoin price reached its latest all-time-high, the transaction queue never fully cleared between Oct 26th 2017 and February 22nd 2018.
At the peek, just before Christmas, Block 500,546 collected 14.82150630 BTC for an average feerate of 1,415 sat/vB.
When to send your transaction
This really depends on the urgency of your transaction. If you need to make a payment that will be confirmed soon, you will need to be aware of the current queue and bid appropriately near the top. If you can choose the time of your transaction, you can either send with a lower feerate and just wait for the mempool to clear to that level, or wait for the transaction queue to recede to the levels you are willing to pay and submit your transaction then.