The bitcoin mempool size is at 108 MB and still climbing according to chain.so. It is slowly approaching 300 megabytes, which is said to be the mempool limit for BTC. What happens after 300 MB?


Each node maintains a separate, individual mempool. While the default is 300 MiB, each node operator can set their own value. The mempool limit doesn't pertain to the serialized data (which is what is written to the block and you see listed on a mempool monitor), but to the actual memory usage of the deserialized transaction data on the node. This memory usage is platform dependent.

When a node's mempool limit is reached, it will drop the transactions with the lowest fee rate and increase its minMempoolFeeRate. It will communicate its new minMempoolFeeRate to its peers basically telling peers not to forward transactions below that fee rate for the time being. Note that every node does this individually, so a node with a larger mempool or different architecture may drop transactions earlier or later. Nodes will keep a copy of transactions that are relevant to their own wallet. Even if all other nodes have dropped a transaction, the sender and recipients of a transaction would retain a copy. The sender can either force his node to drop the original transaction and send another conflicting transaction to update it, or their node will continue to try to broadcast the transaction so that it will eventually get relayed on the network again once the congestion has passed.

After the congestion passes and some delay, a node will lower their minMempoolFeeRate and start accepting transactions again that it previously expelled.

You can currently observe this happening e.g. on Johoe's mempool monitor (switch to BTC (default mempool)): Last 24h of BTCH (default mempool)

As you can see, the 1-2 sat/B band dropped around 6am this morning when the node's mempool exceeded its limit.

| improve this answer | |

Firstly, there is no "the bitcoin mempool". Each node on the Bitcoin network maintains its own mempool and each node can have different settings and rules for allowing transactions into its mempool.

The default mempool maximum size is 300 MB. When the maximum is reached (regardless of what it is), a node will begin to evict lower priority (i.e. transactions paying a lower fee rate) and increase its minimum acceptable fee rate. It does this to keep the mempool size at or under the configured size and will remove transactions and raise the minimum fee rate as needed to maintain this.

Since most nodes are probably using the default of 300 MB, many transactions that pay a low transaction fee probably will not be confirmed and will need to be rebroadcast at a later date when fees are not so high. Or those transactions can be replaced with a conflicting one that has a higher fee rate.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.