Back to ResearchTopic: Protocol Fundamentals and On-Chain Data
2026-10-2216 min read

Bitcoin Fees and the Mempool Explained

C

Research Desk • Organizational attribution

Source Standard
6 source notes
Last Reviewed
2026-10-22
Not Advice
Educational research, not a recommendation to buy or sell

A Bitcoin transaction fee is the difference between what a transaction's inputs hold and what its outputs pay out, and miners rank waiting transactions by fee per virtual byte (sat/vB), not by amount sent. A typical one-input, two-output native SegWit payment is about 141 vB, so at 5 sat/vB it costs 705 satoshis whether it moves 10 dollars or 10 million. On October 21, 2026, mempool.space recommended 1 sat/vB for every confirmation target.

That last number surprises people who remember fee spikes, and it is the reason this guide is built around arithmetic rather than a single "current fee." Fees are set by an auction for block space that clears every ten minutes or so. Some days the auction is crowded and some days it is nearly empty. What does not change is how the price is calculated, what makes a transaction big or small, and what you can do when one gets stuck. Those are the parts worth learning, and every number below comes from the Bitcoin protocol specifications, the Bitcoin Core source code, or explorer data pulled on October 21, 2026.

The Fee Is Implicit, and That Matters

Bitcoin transactions do not contain a "fee" field. A transaction spends existing coins (inputs) and creates new ones (outputs). Whatever the inputs hold that the outputs do not claim is left for the miner who includes the transaction in a block.

Fee = sum of inputs - sum of outputs

This design has one consequence that catches people every year: if wallet software or a hand-built transaction forgets the change output, the entire leftover goes to the miner. Spending a 1 BTC coin to pay someone 0.1 BTC without a change output pays a 0.9 BTC fee. Reputable wallets prevent this, but it is the reason fee warnings exist and the reason to be careful with any tool that lets you edit outputs directly. To see an implicit fee and a change output on a real transaction, follow our annotated mempool.space walk-through.

Why Size, Not Amount, Sets the Price

Blocks have a capacity limit, so miners care about how much of that capacity each transaction uses. Since the SegWit upgrade, that capacity is measured in weight units. BIP 141 defines a transaction's weight as its base size times three plus its total size, where base size excludes the witness data (signatures and related items) and total size includes it. A block can hold at most 4,000,000 weight units. Virtual size, the number wallets show, is weight divided by four and rounded up, so a full block is 1,000,000 vB.

The effect is that witness bytes count for a quarter as much as other bytes. That discount is why SegWit and Taproot transactions are cheaper than older formats carrying the same payment.

What a transaction is made of

A simple payment has a small fixed overhead (version, input and output counts, locktime, and for SegWit transactions a two-byte marker and flag in the witness area), plus a cost for each input and each output. Inputs dominate, because each one carries a signature.

The table below is our own calculation from the standard serialization of each script type, using a 72-byte signature with its sighash byte for ECDSA inputs and a 64-byte Schnorr signature for Taproot key-path spends. Real signatures vary by a byte or so, so treat the decimals as approximate.

ComponentLegacy (P2PKH)Native SegWit (P2WPKH)Taproot key path (P2TR)
One inputabout 148 vBabout 68 vBabout 57.5 vB
One output34 vB31 vB43 vB
Fixed overhead10 vB10.5 vB10.5 vB
1 input, 2 outputsabout 226 vBabout 141 vBabout 154 vB

Calculated by CryptosEyes from BIP 141 weight rules. Checked October 21, 2026.

Two observations. A native SegWit input costs less than half as much as a legacy input. And a Taproot output is larger than a SegWit output, but the Taproot input that later spends it is smaller, so Taproot pays a little more to receive and a little less to spend. Our Bitcoin address types guide works through which format to use and why.

Worked example: the same payment at four fee rates

A one-input, two-output payment (the recipient plus your change), in native SegWit format, is about 141 vB.

Fee rateFee in satoshisFee in BTCAt 84,101 dollars per BTC
1 sat/vB1410.00000141about 0.12 dollars
5 sat/vB7050.00000705about 0.59 dollars
20 sat/vB2,8200.0000282about 2.37 dollars
100 sat/vB14,1000.000141about 11.86 dollars

Illustration. The dollar column uses the 84,101.13 dollar bitcoin price in the CryptosEyes dataset pull of October 21, 2026.

The same payment built from a legacy wallet is about 226 vB, so it costs 60 percent more at every rate. The amount being sent never enters the calculation.

The Mempool: Where Transactions Wait

A broadcast transaction does not go straight into a block. Each full node keeps its own pool of valid, unconfirmed transactions, called the mempool, and relays them to peers. Miners build blocks from their own mempools, usually by picking the transactions that pay the most per vB until the block is full.

There is no single global mempool. Nodes can run different software versions and settings, receive transactions in different orders, and evict different transactions when they fill up. Explorers show the view from their own nodes. That is why two explorers can show slightly different backlogs at the same moment.

Default limits in Bitcoin Core

These are the defaults in the Bitcoin Core source code as published on GitHub and checked on October 21, 2026. Released versions in use across the network can differ, and node operators can change any of them.

SettingDefaultWhat it does
Maximum mempool size300 MB of memoryWhen full, the lowest fee-rate transactions are evicted and the node's minimum accepted rate rises
Mempool expiry336 hours (14 days)Unconfirmed transactions older than this are dropped from the node's pool
Minimum relay fee100 sat per 1,000 vB (0.1 sat/vB)Transactions paying less are not relayed by default
Incremental relay fee100 sat per 1,000 vB (0.1 sat/vB)The extra rate a replacement must pay for its own size
Block minimum fee1 sat per 1,000 vBThe lowest rate the node will put in a block template
Ancestor and descendant limits25 transactions eachCaps chains of unconfirmed transactions

Source: Bitcoin Core policy.h and mempool_options.h on GitHub. The Bitcoin Core 29.1 release notes record the change of the relay and incremental defaults to 100 sat/kvB and the block minimum to 1 sat/kvB.

The 0.1 sat/vB relay floor is recent. For years the default floor was 1 sat/vB, and many guides still say nothing below 1 sat/vB can propagate. On nodes running the newer defaults, it can.

What the mempool looked like on October 21 and 22, 2026

The mempool.space API recommended 1 sat/vB for every target on both October 21 and October 22, 2026. A full pull of its mempool summary early on October 22 (UTC) reported:

54,953 unconfirmed transactions totaling about 25.4 million vB, or roughly 25 blocks' worth of data at the 1,000,000 vB block limit;
0.0359 BTC in total fees across all of them;
only about 1.3 percent of that waiting data paying 1 sat/vB or more;
about 60 percent of it priced between 0.12 and 0.16 sat/vB.

Put those together and the picture is clear. There was a backlog by volume, but about 98.7 percent of it sat below 1 sat/vB. A transaction paying 1 sat/vB was ahead of nearly everything waiting and could expect the next block. The backlog was made of transactions whose senders had chosen to wait.

The same explorer's one-month data shows what that means for miners: blocks averaged about 0.0231 BTC in fees in the month to October 21, 2026, against a 3.125 BTC subsidy. Fees were well under 1 percent of what miners earned per block. Compare that with block 840,000, the April 2024 halving block, which paid 37.63 BTC in fees across 3,050 transactions. Fee markets swing between those extremes. Our halving history guide covers why the fee share matters more each era.

How to Choose a Fee Rate

Fee estimation is a forecast of an auction, so no estimator is exact. A practical approach:

1.Decide how long you can wait. Next block, within a few hours, or whenever. The cost difference between "next block" and "today" can be large on busy days and zero on quiet ones.
2.Look at the mempool, not a single number. A fee histogram shows how much data sits above any given rate. If there is less than 1 million vB above your rate, you are likely in the next block, subject to how quickly other transactions arrive.
3.Leave room to bump. If your wallet supports Replace-By-Fee or you control a change output, you can start low and raise the fee later. If you cannot, pay what you need up front.
4.Avoid round-number traps. Many wallets offer fixed presets. When the mempool is crowded at exactly that preset, a fraction more can jump the queue.
5.Check the minimum your node and the explorer accept. A rate below 1 sat/vB may relay on newer nodes and not on older ones.

When a Transaction Gets Stuck

A transaction can sit unconfirmed because its fee rate is below what blocks are clearing, or because it was dropped by nodes whose mempools filled up. There are two fixes, and one of them needs planning before you send.

Replace-By-Fee (RBF)

RBF means broadcasting a new version of the transaction that spends at least one of the same inputs and pays a higher fee. Nodes keep only one of the conflicting versions, and miners prefer the one that pays more.

BIP 125 sets out the original rules. A replacement must pay an absolute fee at least as large as all the transactions it replaces, must also pay for its own size at the node's incremental rate, may only add unconfirmed inputs that were already in the originals, and may not evict more than 100 transactions in total. Under BIP 125 a transaction had to signal that it was replaceable. Bitcoin Core 28.0 changed the default so that nodes accept replacements whether or not the original signaled (the mempoolfullrbf setting now defaults to on). In practice, most nodes running current software will relay a valid replacement for any unconfirmed transaction.

Worked example. You sent the 141 vB payment above at 1 sat/vB, paying 141 sats, and it is stuck. To replace it at 5 sat/vB, the new version pays 705 sats. The rule check: 705 is more than the original 141, and the increase of 564 sats is more than the 14.1 sats the new version needs for its own 141 vB at 0.1 sat/vB. The replacement is valid.

RBF has one sharp edge: it lets the sender change outputs, so an unconfirmed incoming payment is not final. A merchant who treats an unconfirmed transaction as paid is trusting that the sender will not replace it. Wait for confirmations on anything that matters.

Child-Pays-For-Parent (CPFP)

CPFP works from the other side. If you received the stuck transaction, or it sent change back to you, you can spend that unconfirmed output in a new transaction with a high fee. Miners evaluating the pair together see the combined fee rate, and to collect the child's fee they must include the parent.

Worked example. The parent is 141 vB and paid 71 sats (about 0.5 sat/vB). You want the pair to average 5 sat/vB. A child spending one SegWit output to one SegWit output is about 110 vB. The pair is 251 vB, so at 5 sat/vB it needs 1,255 sats in total. The parent already paid 71, so the child must pay 1,184 sats, a rate of about 10.8 sat/vB on its own.

SituationWho can actUse
You sent it, wallet supports replacementSenderRBF
You sent it, and it has a change output to youSenderRBF or CPFP
You received it and it is stuckRecipientCPFP
The parent is below the relay floor and nodes dropped itEitherCPFP via package relay, where nodes support it

Bitcoin Core 28.0 added limited package relay, where one low-fee parent and one child can travel together even if the parent alone is below a node's minimum. The release notes caution that this is not yet reliable against adversarial behavior. It helps, but it is not a guarantee.

Dust and Tiny Coins

Bitcoin Core treats an output as dust when it would cost more to spend than it is worth at a reference rate, and it will not relay transactions creating dust by default. The reference is the dust relay fee, 3,000 sat per 1,000 vB (3 sat/vB), applied to the output's own size plus the size of a typical input that would spend it. Working that through:

Output typeApproximate dust threshold
Legacy P2PKH546 satoshis
Native SegWit P2WPKH294 satoshis
Taproot P2TR330 satoshis

Calculated by CryptosEyes from Bitcoin Core's DUST_RELAY_TX_FEE and input size assumptions.

Dust limits are a relay rule, not a statement of what is economical for you. At 50 sat/vB, spending one native SegWit input costs about 3,400 sats on its own (68 vB times 50), so a coin worth 2,000 sats costs more to move than it holds. Wallets that receive many small payments build up coins like that and pay for it later.

Consolidation: the main fee you can schedule

If you hold many small coins, you can merge them into one during a quiet period. Twenty native SegWit inputs into one output is about 1,402 vB (10.5 overhead, 20 inputs at 68, one output at 31). At 1 sat/vB that costs 1,402 sats. At 50 sat/vB the same merge costs 70,100 sats. Every later payment then spends one input instead of several. The trade-off is privacy, since consolidating links those coins together on-chain. Our wallet basics guide explains the coin model behind this.

Batching: Why Exchanges Pay Less Per Payment

Because the overhead and the input are paid once per transaction, paying many people in one transaction is far cheaper than paying them separately. Ten separate native SegWit payments of 141 vB each total about 1,410 vB. One transaction with one input, ten recipient outputs and one change output is about 420 vB (10.5 overhead, 68 for the input, eleven outputs at 31). That is about 70 percent less block space for the same ten payments, and at 20 sat/vB it saves about 19,800 satoshis. This is why large services batch withdrawals and why a withdrawal can wait a few minutes for the next batch. It is also a reminder that a service's withdrawal fee is its own pricing decision: its actual network cost per customer can be much lower than the cost of a single standalone payment.

Common Mistakes

Paying by percentage of amount. Bitcoin fees are by size. A large payment from one input can cost less than a small payment from twenty.
Using a legacy address in 2026. Every input costs about 148 vB instead of about 68. Over many payments that adds up.
Ignoring the change output. A missing change output turns your leftover into the miner's fee.
Treating zero-confirmation payments as final. With replacement now the default on current nodes, an unconfirmed payment can be redirected by its sender.
Assuming an exchange withdrawal fee is the network fee. Exchanges set their own withdrawal charges and batch payments. Their fee is a business decision, not the mempool rate.
Waiting forever on a dropped transaction. After 14 days by default, nodes stop holding it. If your wallet still shows it as pending, rebroadcast or replace it.

Checklist Before You Send

[ ] Your wallet uses native SegWit or Taproot addresses.
[ ] You checked the mempool fee histogram, not just one "recommended" number.
[ ] You know whether your wallet can replace the transaction later.
[ ] The change output exists and returns to an address you control.
[ ] For large amounts, you plan to wait for several confirmations.
[ ] You considered consolidating small coins on a quiet day instead of during a spike.

Frequently Asked Questions

How much is a Bitcoin transaction fee right now?

It depends on the moment. On October 21, 2026, mempool.space recommended 1 sat/vB for every confirmation target, which is about 141 satoshis (around 12 US cents) for a standard native SegWit payment. On busy days the rate can be tens or hundreds of times higher. Check a live mempool view before sending.

Why did my Bitcoin fee not depend on how much I sent?

Because miners are selling block space, and block space is measured in weight. A transaction's size depends on how many inputs and outputs it has and their script types. The amount is just a number inside an output and does not change the size.

What is a sat/vB?

Satoshis per virtual byte. A satoshi is 0.00000001 BTC. A virtual byte is a quarter of a weight unit, as defined in BIP 141. Multiply your transaction's vsize by the rate to get the fee in satoshis.

Can I cancel an unconfirmed Bitcoin transaction?

Not directly, but you can usually replace it with a version that pays yourself instead, using a higher fee. Once a version confirms, the other becomes invalid. Since Bitcoin Core 28.0 defaulted to accepting replacements without opt-in signaling, this works on most nodes, though nothing forces miners to accept it.

Why is my transaction stuck when the recommended fee is 1 sat/vB?

The likely causes are a fee below the minimum some nodes accept, a chain of unconfirmed parents with low fees, or your transaction being evicted from nodes' mempools during an earlier busy period. Replacing it, or spending its output with a high-fee child, usually fixes it.

Do Lightning payments pay these fees?

Lightning payments themselves do not go on-chain, so they do not pay the on-chain rate per payment. Opening and closing channels are on-chain transactions and pay normal fees, which is why channel management costs more when the mempool is busy.

Read Next

Fees are half of what miners earn, and the other half is set by the protocol's issuance schedule and the difficulty that decides how hard blocks are to find. If you want to know why blocks keep arriving roughly every ten minutes no matter how much hashrate joins, our difficulty adjustment explainer uses the same October 2026 block data to walk through the retarget step by step. For background on blocks themselves, see how a blockchain works. If you keep your own keys, the wallet recovery checklist is worth reading before you move funds. The full set of explainers is in the CryptosEyes research library.

CryptosEyes publishes educational research, not financial advice. Fee figures are dated snapshots and change block by block. Check your wallet's preview before sending, and never share a seed phrase with anyone offering to "speed up" a transaction.

Source & Review Basis

This article is reviewed against the source types below. Source links are provided to help readers verify primary documents, market context, and methodology independently.

Reviewed against source notes and calculations
Education
Research note: This article is educational market research, not financial advice. Crypto and public equity data can change quickly; see our methodology and editorial policy for sourcing, review, and correction standards.
Important: Educational Purposes OnlyThe data, charts, treasury tracking metrics (including mNAV and SPS), and research provided on CryptosEyes.com are for informational and educational purposes only. They do not constitute certified financial, investment, or trading advice. Digital assets like Bitcoin and Ethereum are highly volatile. Always conduct your own research and consult with a registered financial advisor before making investment decisions.