A mempool (a contraction of memory and pool) is a cryptocurrency node’s mechanism for storing information on unconfirmed transactions. It acts as a sort of waiting room for transactions that have not yet been included in a block.
When a transaction is broadcast, it is sent from a node to its peers, who will then pass it on to their peers. This continues until the transaction has been widely propagated, ready for miners to add it to a block. It’s vital that this buffer zone exists, as transactions are not added to the blockchain immediately.
Nodes will run a series of checks to ensure that the transaction is valid – i.e., verifying that signatures are correct, outputs do not exceed inputs, and funds have not already been spent. If it fails to satisfy these conditions, it is rejected.
We often speak of the mempool, but it should be noted that there is no universal pool shared by all nodes. Each one is configured differently and receives transactions at different times. Lower-end devices with limited resources may only dedicate small amounts of memory to logging transactions, whereas higher-end ones might devote considerably more.
As miners are motivated chiefly by profits, transactions with higher fees attached are those most likely to be discarded from the mempool first as they’re confirmed. Accurately estimating fees is difficult, particularly when block space is limited, and demand is high, but the mempool provides a starting point.
To estimate fees, one can look to the current unconfirmed transactions. It stands to reason that users should not overpay in times of low throughput. Nor should they underpay for time-sensitive transactions at peak times, as it may be a while before it gets confirmed. By taking into account the spread of fees at a given moment, they can make an educated guess at how quickly their transaction will be included.