Bitcoin Transaction Fees: sat/vB, Mempool Congestion and Fee Estimation

Bitcoin does not price transactions by their value. It prices block space, measured in virtual bytes, and a fee is a rate per virtual byte multiplied by the size of the transaction's inputs and outputs. This guide defines weight and vsize, converts the fee rate Bitcoin Core returns into the sat/vB figure a wallet shows, and explains what a mempool snapshot on 2026-10-26 looked like.

CoinSoso EditorialPublished Article #00086Updated

Cover artwork: CoinSoso · AI-generated, not a photograph of a real venue, product or market capture.

Key takeaways

  • A Bitcoin fee is a rate per virtual byte multiplied by the transaction's virtual size, not a percentage of the amount sent.
  • Block weight is capped at 4,000,000 weight units, which is 1,000,000 virtual bytes.
  • Transaction weight is base size times three plus total size; virtual size is weight divided by four.
  • Bitcoin Core's estimatesmartfee returns a rate in BTC/kvB and accepts a confirmation target from 1 to 1,008 blocks.
  • On 2026-10-26 the mempool.space recommended-fee endpoint returned 1 sat/vB for every tier it publishes.

The unit that matters

A Bitcoin transaction does not carry a fee percentage. It carries a fee amount, and the network’s economy compares that amount to the space the transaction occupies. The comparison is expressed as a rate: satoshis per virtual byte, written sat/vB.

That is why two transfers of very different value can cost the same. A transaction with one input and two outputs has a shape, and the shape determines its size. The amount moved is a number inside an output; it does not change the number of bytes the transaction occupies.

Weight, vsize and the block budget

BIP141 defines the measurements that replaced a simple byte count:

Measure Definition
Transaction weight Base transaction size × 3 + total transaction size
Virtual transaction size Transaction weight ÷ 4, rounded up
Block weight limit 4,000,000 weight units

The Bitcoin Developer Glossary states the same limit in the other unit: the current block size limit is 4 million weight units, or 1 million vbytes. A block is therefore a budget of about 1,000,000 virtual bytes, shared by every transaction a miner chooses to include.

The weight formula is what gives witness data its discount. If total size is base size plus witness size, then weight is four times base size plus witness size, and virtual size is base size plus a quarter of witness size. Non-witness bytes cost four weight units each; witness bytes cost one. A transaction’s vsize is therefore smaller than its raw byte length when it carries witness data, and the fee rate is quoted against the smaller number.

From BTC/kvB to sat/vB

Bitcoin Core’s estimatesmartfee RPC returns a fee rate in BTC per 1,000 virtual bytes. The source describes the result field as an estimate in BTC/kvB and the confirmation target as a value from 1 to 1,008 blocks. The RPC also exposes a choice of estimator: the default tries the mempool estimator first and falls back to the block-policy estimator, while block_policy and mempool_policy force one or the other.

Wallets usually display sat/vB, so the conversion is worth doing once and remembering:

1 BTC = 100,000,000 satoshis 1 kvB = 1,000 vB sat/vB = BTC/kvB × (100,000,000 ÷ 1,000) = BTC/kvB × 100,000

A Core estimate of 0.00001000 BTC/kvB is therefore 1 sat/vB. The arithmetic is not a market fact; it is a unit conversion, and it is the step most often skipped when someone compares an RPC output with a wallet screen and concludes the two disagree.

What the estimator is doing

The estimator answers a conditional question: what rate gives a reasonable chance of confirmation within a target number of blocks. The target is not a promise. It is an input to a model built from recently mined blocks and, depending on the estimator, from the current mempool.

The distinction between the two estimators is practical. A mempool-based estimate responds to what is waiting right now; a block-policy estimate is derived from the fee policy the node applies to blocks it would mine. When the mempool estimator cannot produce an answer, Core falls back to the block-policy estimate. Neither is a guarantee that a transaction will be mined by the target, because both are estimates of a competitive process rather than a reservation system.

A live snapshot

On 2026-10-26, the mempool.space recommended-fees endpoint returned:

Tier Rate
Fastest 1 sat/vB
Half-hour 1 sat/vB
Hour 1 sat/vB
Economy 1 sat/vB
Minimum 1 sat/vB

The flat reading is itself informative. When every published tier returns the same number, the estimator is not finding a meaningful spread between faster and slower inclusion, and the minimum is the binding number. That describes a quiet mempool on that date, not a permanent floor. A snapshot is evidence of the moment it was taken, which is why the date belongs next to the number.

Congestion is a competition for a fixed budget

A block can hold about 1,000,000 virtual bytes. When the transactions offered to the network fit inside that budget, a low rate can be enough. When they do not, inclusion becomes a selection problem, and the selection is made from the transactions available to the miner, with the fee rate as the visible signal of what each one pays for its space.

This is why fee estimation is inherently backward-looking. The estimator reads recent blocks and the current queue, then projects. A sudden rise in demand can invalidate the projection before the next block arrives. The practical response is not to find a better estimator but to give the transaction a rate that is competitive with the queue it is actually in, and to check the queue rather than a remembered number.

A routine for setting a fee

  1. Know the vsize before choosing a rate. The fee is rate × vsize, so a transaction with many inputs needs a higher absolute fee for the same rate. Consolidating small UTXOs is a fee decision made when you spend, not when you send.
  2. Pick a confirmation target in blocks. A target of one block and a target of six are different products; the estimator will return different rates when the queue has a shape.
  3. Read the rate in the unit you will sign with. Convert BTC/kvB to sat/vB before comparing it to a wallet display, and check that the wallet is not quoting sat/B against a vsize that already includes the witness discount.
  4. Check the queue at the moment of sending. A rate that was competitive when the estimate was produced can be stale by the time the transaction is broadcast.
  5. Do not confuse the fee with the amount. A 10 sat/vB rate on a 200 vB transaction is 2,000 satoshis, whatever the output values are.

The fee is a price for a measurable resource. Once the resource is measured in virtual bytes and the price in satoshis per virtual byte, the rest of the fee conversation becomes arithmetic plus a reading of the queue.

Risk note. The definitions in this article were read from BIP141, the Bitcoin Developer Glossary and the Bitcoin Core fee RPC source on 2026-10-26. The live fee snapshot was taken from mempool.space on the same date and is not a forecast. Nothing here is investment advice.

Sources

How this was researched. Written from primary documentation and the exchange or protocol's own published material, with sources listed at the end of the article.

Primary sources for the factual claims on this page. A date appears only where a human has actually read the source; where it is missing, the check is still outstanding.

  1. BIP141 — Segregated Witness (Consensus layer), weight and virtual size(read 2026-10-26)
  2. Bitcoin Developer Glossary — maximum block size(read 2026-10-26)
  3. Bitcoin Core — estimatesmartfee RPC source(read 2026-10-26)
  4. mempool.space — recommended fee rates (live snapshot)(read 2026-10-26)

Frequently asked questions

Why is my fee not a percentage of what I send?

Because Bitcoin prices block space, not value. A transaction that moves 0.01 BTC and one that moves 10 BTC can have the same fee if they have the same number of inputs and outputs, because they occupy the same virtual size.

What is the difference between weight and virtual size?

BIP141 defines transaction weight as base size times three plus total size, and virtual transaction size as weight divided by four, rounded up. Weight is the consensus measure; virtual size is the unit fee rates are quoted against.

Is 1 sat/vB always enough?

No. A rate is only competitive relative to the other transactions waiting. The mempool.space snapshot on 2026-10-26 returned 1 sat/vB across its published tiers, but that is a moment in time and not a floor that holds during congestion.

What does Bitcoin Core mean by BTC/kvB?

The estimatesmartfee RPC returns a feerate in BTC per 1,000 virtual bytes. To convert to sat/vB, multiply by 100,000: 1 BTC is 100,000,000 satoshis, and 1 kvB is 1,000 vB, so the two factors leave 100,000.

Does a higher fee guarantee the next block?

It improves the odds but does not reserve a place. Inclusion depends on how a miner orders the transactions available to it and on the block's weight budget, so a fee that is competitive at one moment can be outbid before the next block is found.

Where to go next

Independent research. Each card shows the platform’s invite code, and its Create Account button is a referral link that may earn us a commission at no extra cost to you. Whether an account can be opened is decided by the platform at sign-up.

Binance

One of the largest global exchanges by traded volume, with a very broad product range.

20% Trading Fee Rebate

Use invite code con888 when signing up to enjoy trading fee benefits.

Download Android App

Download from the exchange's official download service. Verify the source and follow the on-screen installation instructions.

Do not install an APK from an unknown source, or one that has been modified or cannot be checked.

Read review →

OKX

A large global exchange offering spot, derivatives and a self-custody wallet.

20% Trading Fee Rebate

Enter invite code con888 when signing up to check available trading fee benefits.

Download Android App

Download from the exchange's official download service. Verify the source and follow the on-screen installation instructions.

Do not install an APK from an unknown source, or one that has been modified or cannot be checked.

Read review →