Fee rate
A fee rate (also spelled feerate) is the ratio of a transaction's miner fee to its size. Miners who maximize fee income prefer transactions with a higher fee rate, because those transactions pay more satoshis per unit of scarce block weight. Confirmation speed in a congested mempool is therefore determined mainly by fee rate, not by the total fee alone. This page is about the rate metric itself; see Fee estimation for how wallets choose a rate, and Miner fees for fees in general.
Weight and vsize
The fee of a transaction is the sum of input values minus the sum of output values. Transaction size varies with the number of inputs and outputs and with script type, so a large transaction that pays a large total fee can still be less profitable to mine than a small transaction that pays a high rate. Before SegWit, size was measured in bytes. BIP 141 introduced weight: each non-witness byte contributes four weight units and each witness byte contributes one. Virtual size in vbytes is weight divided by four, rounded up. Modern fee rates are quoted in satoshis per vbyte (sat/vB) or satoshis per kilovirtualbyte. Bitcoin blocks target a maximum of 4,000,000 weight units; that cap, together with demand for confirmation, produces a market for block space.
Fee rate equals fee in satoshis divided by virtual size in vbytes. For example, a 225 vbyte transaction that pays 2,250 satoshis has a fee rate of 10 sat/vB. Miners generally sort by ancestor-aware fee rate rather than by individual transaction fee rate. If transaction B spends an unconfirmed output of transaction A, the pair can only be mined with A before B; the package fee rate is the sum of fees divided by the sum of virtual sizes. A high-fee child can therefore raise the effective rate of a low-fee parent (child pays for parent). Replace by fee replacements must increase the fee rate (and pay an incremental relay fee) according to node policy. Nodes also advertise a fee filter so that peers do not send inv announcements below a rate the receiving node will accept. Package-aware mining and cluster mempool linearization still select by feerate of transaction chunks, so quoting sat/vB remains the user-facing metric even when ancestor score is no longer the sole ranking key.
Relay floors
Relay policy has long used a minimum fee rate. For many years Bitcoin Core's default minimum relay rate was 1 sat/vB (1,000 sat/kvB); later releases lowered the default minimum. Independently, the dust relay rate (default 3 sat/vB) decides whether an output is uneconomical. These are local policies — consensus allows a zero-fee transaction if a miner includes it. Wallets estimate a fee rate from recent blocks and mempool data in order to target confirmation within N blocks; estimates are probabilistic, lag during rapid congestion, and floor at the node's minimum relay rate when the mempool is empty. Bitcoin Core exposes fee-rate estimates through estimatesmartfee and uses ancestor score when assembling blocks. Block explorers and mempool visualizers display sat/vB histograms. Lightning commitment and splice transactions must meet on-chain fee-rate policies when they hit the chain.
Ancestor score and package fee rate matter when unconfirmed parents must confirm together. Under Cluster mempool linearization, miners score connected components by chunk feerate rather than by a single transaction's sat/vB alone. A wallet that only looks at its child's individual rate can underpay if the parent's rate dilutes the package.
Dust policy and minimum relay rates set floors below which nodes will not accept or announce transactions. Those floors are policy, not consensus, and can differ between implementations and versions. Historical defaults such as 1 sat/vB for relay have moved as spam pressure and mempool conditions changed. Operators tune minrelaytxfee and related settings locally.
See also
- Mempool
- Miner fees
- Fee estimation
- Cluster mempool
- Replace by fee
- Package relay
- Weight units
- Dust
- Bitcoin Core