~/notes / consensus and blocks
What the Mempool Is, and Why It Decides Your Fee
The waiting room between broadcasting a transaction and it being included in a block. Almost everything about fees follows from what happens there.
When you broadcast a transaction, it does not go to a central server. It goes to whichever node your wallet is connected to, which validates it and passes it to its peers, which do the same.
Within a second or two it has propagated across most of the network. Each node holds it in memory, in a structure called the mempool, until it appears in a block.
There is no single mempool
This is the first thing that surprises people. Every node maintains its own, and they differ.
A node that came online recently has not seen transactions broadcast before it started. A node with a smaller memory allocation evicts low-fee transactions that a larger node retains. Nodes apply their own policies about what they will relay at all.
So “the mempool” in any tool is that provider’s node’s view, which is a good approximation and not the truth.
Why it determines your fee
Block space is limited. Miners or builders assembling the next block select from their mempool, and they select to maximise revenue, which means sorting by fee density.
Your transaction competes with everything else sitting there. If the mempool is nearly empty, almost any fee is sufficient. If it holds thousands of transactions offering more than yours, you wait.
This is why fees rise during periods of activity. Nothing about the network changed. The queue got longer.
What happens to transactions that wait too long
Nodes evict transactions when memory fills, starting with the lowest fee. A transaction dropped from every mempool effectively ceases to exist and must be rebroadcast.
This is the mechanism behind the advice to wait during congestion rather than panicking. A low-fee transaction during a spike will frequently confirm hours later when the queue clears, or drop out entirely, in which case nothing has been spent.
Private mempools
Not everything goes through the public network. Transactions can be sent directly to block builders through private channels, bypassing the public mempool entirely.
This exists mainly to avoid front-running. A large swap visible in the public mempool can be observed and traded against before it executes. Sending it privately removes that exposure.
The trade-off is that you are relying on the builder to include it, and the transaction is not publicly verifiable as pending until it lands.
What you can observe
Several sites visualise mempool state: how many transactions are waiting, at what fee levels, and what the next few blocks are likely to contain.
For anyone timing a transaction, this is far more useful than a fee estimate, because it shows the actual queue rather than a prediction derived from it.
The practical summary
Your fee is not a price set by the network. It is a bid in an ongoing auction for space, against a queue whose length you can observe before you submit.
Checking the queue before broadcasting is the entire skill. Everything else about fee management follows from it, including the observation that the queue is consistently shortest on weekend mornings and consistently longest during overlapping European and North American working hours.
For anyone who mostly buys and holds, none of this arises: purchases matched inside a venue that supports immediate withdrawal never touch the mempool, and only the withdrawal does.
# Corrections and technical nitpicks are welcome. Send them over. They get published with the fix.