Bitcoin

Bitcoin Mempool and Fee Market

The Bitcoin mempool (memory pool) is the waiting area for unconfirmed transactions, where miners select transactions to include in blocks based on fee rates; the fee market is the competitive auction dynamic this creates for block space.

Every Bitcoin transaction you send enters the mempool — a distributed waiting room maintained by every full node on the network — before being included in a block. Miners (and validators in PoS equivalents) select transactions from the mempool to include in each block, and they select the highest-fee transactions first. This creates the Bitcoin fee market: a continuous auction where users compete to have their transactions confirmed quickly by offering higher fees. Understanding how the mempool works enables you to pay appropriate fees — no more, no less — for any desired confirmation time.

How the Mempool Works

When you broadcast a Bitcoin transaction, it propagates across the peer-to-peer network and is held in each node's mempool awaiting inclusion in a block. Each node has a mempool with a configurable maximum size (default 300MB in Bitcoin Core). When the mempool is full, nodes evict the lowest-fee-rate transactions to make room for higher-paying ones. Transactions that are evicted from all mempools effectively cease to exist until re-broadcast — though wallets typically auto-rebroadcast stuck transactions.

Bitcoin has a hard block size limit: approximately 4 million weight units, translating to roughly 1–4MB of transaction data per block depending on transaction types. At the rate of one block every ~10 minutes, Bitcoin can process approximately 5–7 simple transactions per second at full block capacity. During demand spikes (bull market surges, Ordinals inscription waves, major news events), demand for block space exceeds this throughput, and mempool backlogs build. During quiet periods, the mempool is nearly empty and even minimal fee transactions confirm quickly.

Fee Rates: Sat/vByte

Bitcoin transaction fees are measured in satoshis per virtual byte (sat/vByte). A "virtual byte" (vByte) accounts for the SegWit weight discount — SegWit witness data is counted at 1/4 weight, incentivising its use. A simple P2WPKH (native SegWit) transaction is approximately 110 vBytes; a P2PKH (legacy) transaction is approximately 148 vBytes; a Taproot P2TR transaction is approximately 57–68 vBytes for single-input transactions.

If the current market fee rate is 30 sat/vByte, sending a simple SegWit transaction costs: 110 vBytes × 30 sat/vByte = 3,300 satoshis ≈ $1.50–3.00 depending on Bitcoin's price. Fee rates fluctuate dramatically: during quiet periods, 1–3 sat/vByte confirms reliably; during congestion, 50–200+ sat/vByte may be needed for confirmation within 1–2 blocks. The historical peak was ~800 sat/vByte during the May 2023 BRC-20/Ordinals inscription surge.

Reading the Mempool

Before setting a transaction fee, check the current mempool state. Mempool.space is the standard mempool visualiser: it shows the mempool broken into fee-rate bands, indicating how many blocks each band of transactions will take to confirm. The "recommended fees" section shows low (likely 1+ hour), medium (~30 min), and high (~10 min) fee rate recommendations based on current mempool depth. For non-urgent transactions, setting fees at the "low" rate when the mempool is not congested can save 80–90% versus "high priority" fees during the same session.

Bitcoin fee rate patterns follow similar weekly cycles to Ethereum: weekend mornings UTC are typically less congested than weekday afternoons. For large, non-urgent transfers (moving to cold storage, funding a hardware wallet), choosing a low-activity window can reduce fees substantially.

Replace-By-Fee (RBF)

If you've sent a transaction with too low a fee rate and it's stuck in the mempool, Replace-By-Fee (BIP 125) allows you to broadcast a replacement transaction — with the same inputs but a higher fee — that supersedes the original. Miners accept the replacement because it pays more; the original transaction becomes invalid once the replacement confirms. Most modern wallets (Bitcoin Core, Sparrow, Electrum) support RBF natively. To use RBF, the original transaction must have been sent with the RBF signal (opt-in RBF) — most wallets set this by default. RBF is essential for active users who want flexibility to adjust fees after sending if the mempool unexpectedly congests.

Child-Pays-For-Parent (CPFP)

If a transaction was sent without RBF enabled and is stuck, Child-Pays-For-Parent (CPFP) is the alternative. The recipient (who has received the unconfirmed output) creates a new transaction spending that output with a high fee. Miners are incentivised to include both the "parent" (stuck low-fee transaction) and the "child" (high-fee new transaction) together, because the child's fee compensates for the parent's inadequate fee. The combined fee rate of both transactions clears the mempool's threshold. CPFP can only be used by the recipient wallet, not the original sender (unless the sender has unspent change outputs from the stuck transaction they can spend).

Ordinals and the Modern Fee Market

Bitcoin's Taproot upgrade enabled Ordinals inscriptions — arbitrary data embedded in taproot witness data. Since early 2023, Ordinals inscription activity has created significant, episodic mempool congestion entirely independent of financial transaction demand. During high inscription activity periods, financial transactions compete with inscription transactions for block space, spiking fee rates for everyone. The fee market is now influenced by Bitcoin's emerging role as a data availability layer for Ordinals, BRC-20 tokens, and Runes (a more efficient fungible token protocol on Bitcoin) — not just financial transfers. Understanding this broader demand landscape helps contextualise why mempool congestion can occur even when Bitcoin's financial usage appears routine.