Crypto transaction fees explained: what you pay and why
Every on-chain transaction pays for space in a block. Bitcoin charges by size, Ethereum by computation. Here is how each fee is calculated, with worked examples, and what makes fees jump.

Photo: “Toll booths” by LindsayKinkade, CC BY 2.0, via Flickr (edited: cropped and resized).
A transaction fee is what you pay to get a transaction into a block. On Bitcoin it is inputs minus outputs, priced per byte of space [1]. On Ethereum it is gas used × (base fee + tip); the base fee is burned, the tip paid to the validator [2].
Key points
- 1Fees exist because block space is limited and someone has to decide which transactions get in first.
- 2Bitcoin fees depend on the transaction’s size in virtual bytes, not on the amount of bitcoin sent.
- 3Ethereum fees depend on how much computation (gas) a transaction uses and on the current base fee, which the protocol adjusts block by block.
- 4Fees rise when many people want the next block at once; they fall when demand eases.
- 5An exchange or app may add its own charge on top of the network fee. That part is set by the company, not the blockchain.
On this page
Why do crypto transactions have fees at all?#
A block can only hold so much. Bitcoin blocks are capped at 4 million weight units [3], and Ethereum blocks have a gas limit [2]. When more people want to transact than fit, the network needs a way to choose — and fees are that way. They also make spam costly: ethereum.org explains that charging for every computation prevents bad actors from flooding the network [2].
Fees also pay the people who secure the chain. The Bitcoin whitepaper describes fees as part of the incentive paid to whoever creates a block, and expects that once all new coins have been issued, the incentive can come entirely from fees [4]. You can see this reward split in our Bitcoin halving guide.
How is a Bitcoin fee calculated?#
Bitcoin has no “fee” field. The fee is whatever is left over: the value of all inputs minus the value of all outputs, paid to the miner who includes the transaction [5]. Your wallet sets it by deciding how much change to send back to you — see how Bitcoin transactions work for a worked example.
What you are really buying is space. The developer guide says fees are based on the byte size of the signed transaction, that fees per byte rise with demand for block space, and that miners fill blocks with the highest fee-per-byte transactions first [1]. Since the SegWit upgrade, size is measured in virtual bytes (vB): a transaction’s weight is its base size × 3 plus its total size, and its virtual size is that weight ÷ 4, rounded up [6]. Signature data (the “witness”) therefore counts for less than the rest.
Fee (sats) = fee rate (sat/vB) × virtual size (vB)Virtual size = (base size × 3 + total size) ÷ 4, rounded up [6]. Wallets show the fee rate in satoshis per virtual byte.
| Step | Value |
|---|---|
| Weight = 150 × 3 + 250 | 700 weight units |
| Virtual size = 700 ÷ 4 | 175 vB |
| Fee at 5 sat/vB = 175 × 5 | 875 sats |
| Fee at 20 sat/vB = 175 × 20 | 3,500 sats |
| Same 250 bytes with no witness data: weight = 250 × 3 + 250 | 1,000 units = 250 vB |
Notice that the amount being sent never appears. A transaction moving a tiny amount with many inputs can cost more than one moving a large amount with a single input.
How is an Ethereum fee calculated?#
Ethereum charges for computation, measured in gas. Gas is the unit for the computational effort an operation needs, and the fee is the gas used multiplied by the price per unit of gas, paid in ether and usually quoted in gwei, one-billionth of an ETH [2]. Since the EIP-1559 upgrade the price has two parts: a base fee set by the protocol, which is burned, and a priority fee (tip) chosen by you, which goes to the validator [7].
| Step | Value |
|---|---|
| Total fee = 21,000 × (10 + 2) | 252,000 gwei = 0.000252 ETH |
| Burned base fee = 21,000 × 10 | 210,000 gwei = 0.00021 ETH |
| Tip to validator = 21,000 × 2 | 42,000 gwei = 0.000042 ETH |
| Deducted from Jordan’s account | 1.000252 ETH |
| Received by Taylor | 1 ETH |
If Jordan had set a gas limit of 50,000 for this simple transfer, only 21,000 would be used and the unused 29,000 returned [2].
Two Ethereum details catch beginners out. First, the fee is paid whether the transaction succeeds or fails; if a contract call runs out of gas partway, the changes are reverted but the gas is still consumed [2]. Second, complex actions such as token swaps use far more gas than a simple transfer, so the same network conditions can produce very different fees. Our Ethereum gas fees guide goes deeper.
| Bitcoin | Ethereum | |
|---|---|---|
| What you pay for | Block space (virtual bytes) | Computation (gas) |
| How the fee is set | Inputs − outputs; wallet chooses a fee rate | Gas used × (base fee + tip) |
| Who receives it | The miner of the block | Tip to the validator; base fee is burned |
| Paid if it fails? | An invalid transaction is never included, so no fee | Yes, gas used is paid even on failure |
Bitcoin from the bitcoin.org developer guide and BIP 141; Ethereum from ethereum.org and EIP-1559.
Why do fees go up and down?#
Demand. On Bitcoin, wallets compete in an open auction for the next block; when the mempool is crowded, the fee rate needed to get in rises. The Bitcoin Wiki puts it simply: the fee affects the likelihood of inclusion, and higher-fee transactions get priority [8]. Supply can move too. Coin Metrics notes that when many miners switched off during China’s 2021 mining ban, blocks came more slowly until the next difficulty adjustment and the mean fee per byte spiked [9].
Ethereum makes the base fee follow demand automatically. Each block has a target size of half its gas limit; if a block is fuller than the target, the base fee for the next block rises, and if it is emptier, it falls, by up to 12.5% per block [2]. EIP-1559 sets this through a change denominator of 8 and an elasticity multiplier of 2 [7].
Ethereum base fee after consecutive full blocks
After six full blocks in a row, the base fee has roughly doubled. That steep climb is deliberate: ethereum.org notes that it makes long runs of full blocks economically unattractive [2]. On a busy day, the price of the same transfer can therefore change noticeably within minutes on either network.
What happens if you set the fee too low?#
On Bitcoin, the transaction waits in mempools and may take a long time to confirm, or expire. If it signalled Replace-by-Fee, you can broadcast a replacement that pays more; BIP 125 requires the replacement to pay at least the original fee plus the cost of its own size at the node’s minimum relay rate [10]. A second Bitcoin option is Child Pays For Parent (CPFP): spend an output of the stuck transaction in a new child transaction with a high fee rate, which encourages miners to include both [11]. On Ethereum, a transaction that offers only the base fee is technically valid but unlikely to be picked, because it gives validators no reason to choose it [2].
- Check the current rate
Most wallets estimate a fee for you. Fee estimation means working out the fee rate a transaction needs for a high probability of confirming within a chosen number of blocks [12] — it is an estimate, not a promise. Compare a few fee trackers if it matters.
- Decide how urgent it is
Paying for the next block costs more than accepting a wait of a few hours.
- Prefer wallets with fee bumping
RBF or CPFP on Bitcoin, or a speed-up option on Ethereum, lets you fix a fee that turned out too low.
- Avoid many tiny inputs
On Bitcoin, spending lots of small UTXOs makes a transaction bigger and therefore more expensive.
What mistakes do beginners make here?#
- Thinking fees are a percentage of the amount
Network fees depend on size (Bitcoin) or gas (Ethereum), not on how much value moves. Sending 10 times more usually costs the same.
- Confusing an exchange’s withdrawal fee with the network fee
A platform can charge whatever it likes for withdrawals. Only the on-chain part goes to miners or validators.
- Setting the lowest possible fee for an urgent payment
A minimum fee can mean a long wait. Pay for the speed you actually need.
- Forgetting that failed Ethereum transactions still cost gas
If a contract call fails, the gas already used is gone. Check the details before you confirm.
Frequently asked questions#
Who receives transaction fees?
Why did my wallet suggest a different fee from yesterday?
Because demand for block space changed. Bitcoin fee rates follow the queue in the mempool; Ethereum’s base fee adjusts every block.
Is there a minimum fee?
On Bitcoin, each node sets its own minimum relay fee, so there is no single network-wide minimum [5]. Bitcoin Core’s current development code sets the default to 100 [13], read as satoshis per 1,000 virtual bytes [14], which is 0.1 sat/vB. On Ethereum, you must pay at least the current base fee [2].
Can I get a fee refunded?
Not once the transaction is confirmed. On Ethereum, unused gas up to your limit is returned automatically, but gas actually used is not.
What is gwei?
A unit of ether equal to one-billionth of an ETH, used to quote gas prices [2].
The bottom line#
A transaction fee is the price of a place in the next block. Bitcoin sets it by size in virtual bytes; Ethereum by gas used times a base fee that the protocol moves up and down, plus your tip.
Neither depends on the amount you send, and both swing with demand. Pick a fee that matches your urgency, use wallets that can bump a fee, and see how waiting transactions are queued in what is the mempool.
Sources#
Grade A = primary source (regulator, protocol specification, client code, original author). Grade B = expert secondary source used for explanation only.
- Abitcoin.org developer documentation. Developer Guide: Transactions, 2026.
- Aethereum.org. Ethereum gas and fees: technical overview, 2026.
- ABitcoin Core (GitHub). src/consensus/consensus.h (MAX_BLOCK_WEIGHT, COINBASE_MATURITY), 2026.
- ASatoshi Nakamoto. Bitcoin: A Peer-to-Peer Electronic Cash System, 2008.
- Abitcoin.org developer documentation. Bitcoin Developer Glossary, 2026.
- ABitcoin Improvement Proposals (GitHub). BIP 141: Segregated Witness (Consensus layer), 2015.
- AEthereum Improvement Proposals. EIP-1559: Fee market change for ETH 1.0 chain, 2019.
- BBitcoin Wiki. Vocabulary (Memory pool, Confirmation, Hash function, Node), 2026.
- BCoin Metrics Data Knowledge Base. Fees (network data definitions), 2026.
- ABitcoin Improvement Proposals (GitHub). BIP 125: Opt-in Full Replace-by-Fee Signaling, 2015.
- BBitcoin Optech. Child pays for parent (CPFP), 2026.
- BBitcoin Optech. Fee estimation, 2026.
- ABitcoin Core (GitHub). src/policy/policy.h (mempool and relay policy defaults), 2026.
- ABitcoin Core (GitHub). src/policy/feerate.h (CFeeRate units), 2026. master branch, fetched 2026-10-03


