Home › Glossary › Mempool

Mempool

Also called: memory pool, mempool policy, unconfirmed transactions, txpool.

The mempool is a node's waiting area for valid, unconfirmed transactions; miners choose from it, usually by fee rate, when they build a block.

The mempool (memory pool) is the set of unconfirmed transactions a node has checked and is holding until they are mined. There is no single global mempool: every node keeps its own, and they differ depending on what each node has heard and which policy it runs.

How the mempool works

When a node receives a transaction it checks it against the consensus rules and against its own policy rules (standardness, minimum fee rate, dust limits, size and chain limits). If it passes, the node stores it and relays it to peers. Miners build block templates from their mempool, normally picking the transactions or packages that pay the most per vbyte. When the mempool is full, the lowest fee-rate transactions are evicted (Bitcoin Core caps it at 300 MB by default).

Because policy isn't consensus, two nodes can disagree about whether a transaction belongs in the mempool while agreeing completely on which blocks are valid.

BIPs that shape the mempool

  • BIP 125: opt-in replace-by-fee, the rules for swapping a transaction for a higher-fee version.
  • BIP 133: the feefilter message, so peers don't send transactions below your minimum fee rate.
  • BIP 35: the mempool message, to ask a peer for its contents.
  • BIP 431: TRUC (version 3) transactions with tighter limits that resist pinning.
  • BIP 331: package relay, so CPFP packages are judged together.

See the mempool topic for every related proposal and the replace-by-fee guide for fee bumping in practice.

BIPs that define Mempool

  • BIP 125: Opt-in Full Replace-by-Fee Signaling: Deployed. Defines how a sender can mark an unconfirmed transaction as replaceable, so nodes will accept a new version paying a higher fee. This 'replace-by-fee' lets users speed up a transaction stuck because…
  • BIP 133: feefilter message: Deployed. Adds a 'feefilter' message by which a node tells its peers not to announce transactions paying fees below a chosen rate. This reduces wasted bandwidth by avoiding transactions the node would reject…
  • BIP 35: mempool message: Deployed. Adds a "mempool" message that lets a node ask a peer for the unconfirmed transactions it is holding. This helps lightweight wallets and freshly started nodes learn quickly about payments still…
  • BIP 431 (TRUC transactions): Topology Restrictions for Pinning: Draft. Explains 'pinning', a problem where someone can block a transaction from being replaced with a higher-fee version, which can endanger time-sensitive protocols like Lightning. It describes stricter…
  • BIP 331: Ancestor Package Relay: Draft. Lets nodes request and share an unconfirmed transaction together with the parent transactions it depends on, as a single package. This helps low-fee parents get relayed when a child pays extra fees…

Related terms

  • Replace-by-fee (RBF): Replace-by-fee (RBF) lets you replace an unconfirmed Bitcoin transaction with a new version that pays a higher fee, so it confirms sooner.
  • Child pays for parent (CPFP): Child pays for parent (CPFP) speeds up a stuck transaction by spending one of its outputs in a new high-fee transaction, so miners confirm both together.
  • Package relay: Package relay lets Bitcoin nodes accept and relay related unconfirmed transactions together, so a high-fee child can carry a low-fee parent.
  • Node: A Bitcoin node is a computer running Bitcoin software that downloads, checks and relays blocks and transactions; a full node verifies every rule itself.

Learn more

Guides