If you’ve been into Bitcoin long enough, you may have heard the term “Mempool” being thrown around. In this post I’ll explain exactly what the Mempool is and why it’s important.
The Mempool is a “waiting area” for Bitcoin transactions that each full node maintains for itself. After a transaction is verified by a node, it waits inside the Mempool until it’s picked up by a Bitcoin miner and inserted into a block.
Mempool Explained. Before we begin, here’s a short and important video about how Bitcoin transactions get confirmed.
When a Bitcoin transaction is transmitted to the network, it first gets verified by all of the Bitcoin nodes available (i.e. computers participating in the Bitcoin network. After it successfully passes verification by a node, it sits inside that node’s “Unconfirmed Transactions” area called the “Mempool” (short for Memory Pool). The transaction patiently waits until a miner picks it up and includes it in the next block.
The Mempool is basically the node’s holding area for all the pending transactions. Each node has a different capacity for storing unconfirmed transactions. As a result, each node has its own version of the pending transactions. This explains the variety of Mempool sizes & transaction counts found in different sources.
Mempool Management. You may be wondering: how do nodes keep from crashing due to overload of pending transactions in the Mempool? The answer is simple. Once the Mempool reaches full capacity, the nodes start prioritizing transactions by setting up a minimal transaction fee threshold. Transactions with a fee-rate lower than the threshold are immediately removed from the Mempool and only new transactions with a large enough fee are allowed access to the Mempool. Default size in Bitcoin Core is 300MB.
The Importance of the Mempool. The Mempool is part of BIP 35 (Bitcoin Improvement Proposal No.35). The idea was that outside nodes would be able to access other nodes’ Mempool. This is useful for several cases: SPV clients (also known as lite wallets), wishing to know about transactions before they were confirmed and entered into a block. Miners who want to check for lucrative fees or download the current “transaction waiting list” in order to start confirming transactions. Remote network diagnostics. The Mempool is the “waiting room” of the Bitcoin network. The faster transactions are cleared from it and added into blocks on the Blockchain, the better experience users will get. In other words, if new transactions arrive at a higher rate than they are cleared from the mempool into blocks, a “traffic jam” will occur and transactions can take a long time to get approved (depending on their size and attached fee). When a node receives the latest mined block from the miner, it removes all the transactions contained in this block from its mempool. This results in a sharp drop in the Mempool size. If you want to see the current status on the Mempool you can take a look at this graph.
If, for example, the Mempool size is around 3MB then most transactions will have to wait at least one or two blocks until they get confirmed. This is because each block is 1MB in size, so it can take up to 3 confirmations to clear the whole mempool (assuming no new transactions are coming in). Keep in mind that some of the Mempool transactions are low priority transactions that their sender knows they will take a long time to be confirmed – for example “dust transactions” (sending really small amounts of Bitcoin).
How Long Does it Take to Confirm a Bitcoin Transaction? On average a new block of Bitcoin transactions is mined every 10 minutes. This is an average, meaning it could take 1 minute or 1 hour as well. Each block holds a few thousand transactions. Depending on the fee you’ve attached to your transaction you’ll be able to estimate how long it will take your transaction to get confirmed (again, on average). You can use this page to see how much of a fee you need to attach to get confirmed within a certain amount of time.
What Should I Do If My Transaction is Stuck in the Mempool? As a rule of thumb, if you wait long enough (max timeout is 21 days) your transaction will drop from all of the Bitcoin mempools and the funds will be returned to your wallet. However, here are some other things you can do to expedite transaction confirmation: Use Replace By Fee (RBF) – Some wallets (e.g. Electrum) will allow you to replace an existing transaction with a new one with a higher fee. Use transaction accelerators – Some mining pools supply a service of accelerating specific transactions for a fee or on a first come first serve basis. also consult the “Tools page” where you can find fees calculators and accelerators for your stuck txs.
Conclusion. The Mempool is a very important part of the Bitcoin network. It allows us to understand how crowded the network is and if there are “transaction traffic jams” which result in slower confirmation times and higher fees. As a general user rule, is better to check the Mempool page before you make a tx and see how is the status and the level of fees. If your tx is not really urgent, just wait for more empty mempool, or set your tx with a lower fee. If you are in a hurry, set yout tx with the reasonable fee for being confirmed by miners in the time you want. Don’t get panicked if your tx takes more time than you expect. If the mempool is big, just wait, be patient, it will get through in the end, don’t worry.