The mempool explained in one line: it is the waiting room where a crypto transaction sits after you press send and before a miner or validator puts it in a block.

Your wallet shows the payment as “pending” during that time. Nothing has been settled yet. The transaction exists only as a signed message that network nodes are holding in memory, and how long it stays there depends mostly on the fee you offered and on how busy the network is.

There is no single mempool

The word suggests one shared queue. In practice every node keeps its own. Bitcoin’s developer guide describes how full nodes may track unconfirmed transactions that are eligible for the next block, and says Bitcoin Core stores them in non-persistent memory, which it calls the memory pool or mempool.

Two consequences follow:

  • Nodes can disagree. A transaction that one node accepted may never have reached another, or may have been dropped by it. Block explorers show the view from their own nodes, not a network-wide truth.
  • A restart forgets. The same guide notes that when a node shuts down, its mempool is lost except for transactions stored by its own wallet. Transactions that are never mined tend to slowly disappear from the network as nodes restart or purge entries to free memory.

Ethereum works on the same principle. Its transactions documentation explains that a signed transaction is broadcast to the network and must then be included in a validated block. Client software such as Geth calls the waiting area the transaction pool.

What decides the order

Blocks have limited space, so block producers pick the transactions that pay them most for that space. Arrival time matters less than the fee.

On Bitcoin, the useful number is the fee rate: the fee divided by the transaction’s size, usually quoted in satoshis per virtual byte. A small transaction with a modest fee can outrank a large one with a bigger total fee.

On Ethereum, ethereum.org’s gas page splits the fee into a base fee set by the protocol and a priority fee, or tip, paid to the validator. A transaction that pays only the base fee is valid but, in the page’s words, unlikely to be included. Our gas fees explainer walks through how those two parts become the final bill.

Why a transaction gets stuck

A transaction usually sits in the mempool for one of three reasons:

  1. The fee is too low for current demand. Higher-paying transactions keep filling the next blocks.
  2. The node’s pool is full. Bitcoin Core caps its mempool at 300 MB by default, set in its mempool options source. Once a pool is full, the node has to drop entries to make room; the developer guide notes that nodes purge some transactions to free memory for others, and a low-fee transaction is the likely candidate.
  3. On Ethereum, an earlier transaction is missing. Every transaction from an account carries a nonce, a counter that increases by one each time. A transaction with a later nonce cannot be included until the earlier one is. Geth holds such transactions in a separate queue, and its command-line documentation sets a default lifetime of three hours for these non-executable entries.

How a stuck transaction leaves the mempool

There are four ways out:

  • It is confirmed. A block includes it, and nodes remove it from their pools.
  • It is replaced. You send a new version that spends the same coins (Bitcoin) or uses the same nonce (Ethereum) with a higher fee.
  • It expires. Bitcoin Core drops a transaction after 336 hours, 14 days, by default, per the same options file. Other node software uses its own limits.
  • It is pushed out. A full pool drops entries to make room for others.

Expiry is not cancellation. A wallet or another node can rebroadcast the same signed transaction later, and it can still be confirmed. Until a block includes a replacement or a conflicting spend, treat a dropped payment as possibly still alive.

Replacing a transaction with a higher fee

Bitcoin Core’s replacement rules let a new transaction that spends the same inputs replace one already in the mempool. The replacement must pay at least the total fee of what it replaces, plus an extra amount that covers its own size at the node’s incremental relay rate. The same document records that replace-by-fee for every transaction became Bitcoin Core’s default policy in version 28.0, and that a transaction no longer has to signal that it may be replaced.

Ethereum replacements reuse the nonce. Geth requires the new transaction’s price to be higher by a bump percentage, 10% by default according to its command-line documentation. Wallets that support it usually label the option “speed up” or “cancel”; either way, it only works if the replacement is confirmed before the original.

When a mined transaction comes back

Sometimes a block is replaced by a competing chain. Bitcoin’s developer guide explains that transactions from such stale blocks are added back to the mempool, then removed again if the new blocks include them. That is why a single confirmation is not the end of the story. Our blockchain finality explainer covers when a confirmed payment can be treated as final.