Fees & Gas

Bitcoin Transaction Fees: sat/vB and How Fees Are Calculated

By HealthShaper Hub · · How we check facts

How Bitcoin transaction fees are calculated: size in vbytes times the fee rate in sat/vB, and why inputs and address types matter more than the amount sent.

Bar chart of the fee for one Bitcoin payment built from legacy, nested SegWit, native SegWit and Taproot addresses

Key takeaways

  • Bitcoin fee = virtual size (vB) × fee rate (sat/vB). The amount you send does not change the fee.
  • Virtual size = weight ÷ 4, rounded up; weight counts non-witness bytes four times and witness bytes once.
  • Inputs cost more than outputs: about 68 vB per native SegWit input versus 31 vB per output.
  • At 18 sat/vB, the same payment costs 2,538 sats from native SegWit and 4,068 sats from legacy, about 38% less.
  • Fee rates move with demand for block space. Check a mempool explorer and your wallet's estimate before sending.
On this page
  1. How are Bitcoin transaction fees calculated?
  2. What is a virtual byte (vB)?
  3. What makes a transaction bigger?
  4. Worked example: why many small deposits cost more to spend
  5. How do you choose a fee rate?
  6. Network fee vs exchange withdrawal fee
  7. Checklist before you send bitcoin
  8. The bottom line
  9. Frequently asked questions
  10. Sources

How are Bitcoin transaction fees calculated?

Bitcoin has no gas. Every transaction spends earlier coins (inputs) and creates new ones (outputs), and whatever the inputs hold beyond the outputs goes to the miner as the fee. Because block space is limited, miners compare transactions by the fee they pay per unit of size, so the whole calculation fits on one line:

Fee (sats) = virtual size (vB) × fee rate (sat/vB)

A satoshi, or sat, is 0.00000001 BTC. A typical one-input, two-output payment from a native SegWit wallet is 141 vB. At a hypothetical 18 sat/vB it pays 141 × 18 = 2,538 sats, or 0.00002538 BTC, which is about $1.90 if BTC is a hypothetical $75,000.

If you also use Ethereum, note the contrast. Ethereum charges for computation in gas priced in gwei, as explained in how Ethereum gas fees work and what gwei is. Bitcoin charges for bytes.

What is a virtual byte (vB)?

SegWit, defined in BIP 141, changed how size is counted. A transaction’s weight is its base size (everything except signatures and other witness data) times 3, plus its total size. Virtual size is that weight divided by 4, rounded up to the next whole number.

The effect is simple to use: each non-witness byte counts as 1 vB and each witness byte counts as a quarter of one. Signatures live in the witness, so SegWit and Taproot spends are cheaper than legacy ones of the same shape. A block can hold 4,000,000 weight units, the equivalent of 1,000,000 vB.

What makes a transaction bigger?

The number of inputs and outputs, and the address types involved. These are typical sizes for single-signature spends, based on Bitcoin Optech’s size tables; real signatures can differ by a byte or so.

Part (vB)Legacy (P2PKH)Nested SegWitNative SegWitTaproot
Fixed overhead1010.510.510.5
Each input148916857.5
Each output34323143
1 input, 2 outputs226166141154

Two patterns stand out. Inputs are the expensive part, because each carries a reference to the coin being spent plus a signature. And newer formats are cheaper to spend from: Taproot has the smallest inputs, while native SegWit has the smallest outputs, which is why it edges out Taproot for a simple one-input payment.

Same payment, different address types (sats)
  • Legacy (P2PKH)4,068 sats
  • Nested SegWit2,988 sats
  • Native SegWit2,538 sats
  • Taproot2,772 sats
One input and two outputs at a hypothetical 18 sat/vB. Sizes of 226, 166, 141 and 154 vB are based on Bitcoin Optech size tables.

At the same 18 sat/vB, the legacy payment costs 4,068 sats and the native SegWit one 2,538 sats, about 38% less for exactly the same payment.

A quick formula for your own transaction

Add the fixed overhead, then each input and output from the table, and round up. For native SegWit that is 10.5 + 68 × inputs + 31 × outputs; for Taproot it is 10.5 + 57.5 × inputs + 43 × outputs.

Example: A payment with three inputs and two outputs is 10.5 + 172.5 + 86 = 269 vB with Taproot, or 4,842 sats (about $3.63) at 18 sat/vB. The native SegWit version is 277 vB, or 4,986 sats. With two outputs, native SegWit is smaller for one or two inputs, and Taproot is smaller from three inputs on.

Worked example: why many small deposits cost more to spend

Suppose your wallet holds twelve small coins from regular purchases, and you now send one payment that needs all of them. With native SegWit, the size is 10.5 + 12 × 68 + 2 × 31 = 888.5, which rounds up to 889 vB. At 18 sat/vB that is 16,002 sats, about $12.00, or 6.3 times the fee for the same payment made from a single coin.

Timing can soften this. If you combine those twelve coins into one during a quiet period at 2 sat/vB, the consolidation is 858 vB and costs 1,716 sats, about $1.29. The later payment then costs the single-coin 2,538 sats, for a total of 4,254 sats, which is 11,748 sats (about $8.81) less than spending all twelve coins at 18 sat/vB. The trade-off is privacy: a transaction with many inputs publicly suggests that one person controls them all.

Very small coins can become uneconomic. At a busy 45 sat/vB, spending one native SegWit input costs 68 × 45 = 3,060 sats, about $2.30, so any coin worth less than that costs more to move than it is worth at that rate.

How do you choose a fee rate?

A fee rate is a bid for limited space, and rates rise and fall with demand. Miners decide what they include, and they generally favor higher rates when blocks are in demand. Here is how the same 141 vB payment looks at three hypothetical rates:

Fee rateFee in satsFee in USD (BTC at $75,000)
2 sat/vB (quiet)282$0.21
18 sat/vB (moderate)2,538$1.90
45 sat/vB (busy)6,345$4.76

To pick a rate, check a mempool explorer, which shows what recent blocks accepted and estimates for faster and slower confirmation, and compare it with your wallet’s suggestion. At the low end, Bitcoin Core 29.1, released in September 2025, lowered its default minimum relay fee rate to 0.1 sat/vB, though its release notes caution that such low-fee transactions are not guaranteed to propagate or confirm. If a payment waits too long, replace-by-fee and other speed-ups let you raise the rate.

Network fee vs exchange withdrawal fee

When you withdraw bitcoin from an exchange, the fee on the screen is set by the exchange, not calculated from your transaction’s vbytes. It may be a flat amount that is higher or lower than the network cost at that moment, and the difference is explained in withdrawal fees vs network fees. To weigh a withdrawal fee alongside trading fees and spreads, run the numbers through the calculator below or follow a fair method for comparing crypto fees.

Checklist before you send bitcoin

  • Check current fee rates on a mempool explorer and compare them with your wallet’s estimate.
  • Look at how many coins your wallet will spend; coin control shows which inputs it picked.
  • Decide how urgent the payment is, and enable replace-by-fee if you choose a low rate.
  • Avoid creating tiny outputs that will cost more to spend later than they are worth.
  • Confirm the fee in sats as well as dollars, since the dollar figure depends on a price that moves.

The bottom line

A Bitcoin fee is virtual size times fee rate, so the number of inputs and the address type drive the cost, not the amount you send. Estimate the size, check live fee rates before sending, and keep an eye on small coins that could cost more to spend than they are worth.

Frequently asked questions

What does sat/vB mean in Bitcoin fees?

It stands for satoshis per virtual byte. A satoshi is 0.00000001 BTC, and a virtual byte is a unit of transaction size defined by SegWit: weight divided by four, rounded up. Wallets multiply your transaction's size in vB by the sat/vB rate you choose, so a 141 vB transaction at 18 sat/vB pays 2,538 satoshis.

Why is my Bitcoin fee the same for small and large amounts?

Because Bitcoin fees pay for block space, not value. The fee depends on how many bytes your transaction occupies, which is driven by the number of inputs and outputs and the address types involved. Sending 0.002 BTC and 2 BTC with the same structure produces the same size and therefore the same fee at a given fee rate.

What fee rate should I use for a Bitcoin transaction?

There is no fixed answer, because the rate needed depends on how many other transactions are waiting. A mempool explorer and most wallets show estimates for the next block and for slower targets. If you are not in a hurry, a lower rate with replace-by-fee enabled lets you raise the fee later if the transaction waits too long.

What is the minimum Bitcoin transaction fee?

There is no single protocol minimum; nodes and miners set their own policies. Bitcoin Core 29.1, released in September 2025, lowered its default minimum relay fee rate to 100 satoshis per 1,000 vB, or 0.1 sat/vB. Its release notes warn that transactions paying such low rates are not guaranteed to propagate or confirm unless the lower default is widely adopted.

Why does spending many small deposits cost more?

Each deposit you received is a separate coin, and each coin you spend becomes an input. A native SegWit input adds about 68 vB, so a payment built from 12 small coins is roughly six times the size of one built from a single coin. Some people consolidate small coins when fees are low, accepting that this links them on-chain.

Sources

  1. BIP 141: Segregated Witness (Consensus layer) — Bitcoin Improvement Proposals (GitHub)
  2. Transaction size calculator — Bitcoin Optech
  3. Transactions: Transaction Fees and Change — Bitcoin Developer Guide (developer.bitcoin.org)
  4. Bitcoin Core 29.1 release notes — bitcoincore.org

This content is for education only and is not financial, investment, tax or legal advice. Crypto assets are volatile and you can lose money. Examples use hypothetical numbers. See our disclaimer and editorial policy.