MASTERING-BITCOIN · Interactive Practice | Unit 10 · Video 1
| Formula | Name | Description |
|---|---|---|
| Implicit fee | No fee field exists; the leftover is the fee | |
| Fee rate | The bid that miners actually compare | |
| Unit conversion | sat/vB to sat/WU | |
| Unit conversion | sat/vB BTC/kB |
Miners pull transactions from the mempool that maximize their revenue per virtual byte. Block space is limited (~1,000,000 vB), so not every transaction fits. Adjust the minimum fee rate miners are willing to include and the block capacity to see who makes it into the next block.
Conceptual question: Why does a transaction paying a higher total fee sometimes lose to one paying a lower total fee?
⚙ interactive visualization — coming to this page format soon
Notice: Transactions are picked by fee rate, not total fee. Try lowering the miner threshold — low-fee-rate transactions only get in when the block has spare capacity. Raise the threshold and even fat transactions paying large totals get rejected if their rate is too low.
Two transactions can pay very different totals but compete on the same metric: sat/vB. Use the sliders to construct two transactions and see which one a miner would prefer.
Conceptual question: Which transaction wins — the one with the larger total fee, or the one with the higher fee per virtual byte?
⚙ interactive visualization — coming to this page format soon
Reflect: Try making Tx B pay 10,000 sats with size 1000 vB, and Tx A pay 2,000 sats with size 100 vB. Tx B pays five times more in total — but Tx A wins, because miners care about revenue per byte of scarce block space.
A Bitcoin transaction has no "fee" field. The fee is whatever you fail to assign to an output. Adjust the inputs and outputs below to see what happens — including what occurs if you forget the change output entirely.
Conceptual question: What protects you from accidentally sending 19 BTC to a miner as a fee?
⚙ interactive visualization — coming to this page format soon
Notice: When you uncheck "Include change output," the entire leftover input becomes the fee. The protocol does not check whether your fee looks sane — it just enforces . The only protection is well-written wallet software constructing the change output for you, every single time.
Question 1 · Computing the Fee Rate
A Bitcoin transaction pays a total fee of sats and occupies virtual bytes.
What is its fee rate in sat/vB?
✅ Correct! Fee rate = total fee ÷ size = 4,500 ÷ 300 = 15 sat/vB.
❌ Not quite. Fee rate is fee divided by size, measured in sat/vB.
Solution:
Fee rate is total fee divided by transaction size:
The answer is 15 sat/vB.
Note: would be the result of subtracting size from fee — a meaningless operation. would come from dividing the wrong way (size/fee).
Question 2 · Which Transaction Wins?
A miner is choosing between two pending transactions:
Assuming both fit in the block, which transaction will a profit-maximizing miner prefer to include first?
✅ Correct! Tx X = 20 sat/vB, Tx Y = 30 sat/vB. Higher rate wins.
❌ Not quite. Miners maximize revenue per virtual byte, since block space is the scarce resource. Compute the fee rates first.
Solution:
Compare fee rates, not total fees:
Even though Tx X pays nearly three times more in absolute sats, Tx Y pays a higher rate per virtual byte. Block space is the scarce resource — miners optimize revenue per byte, so Tx Y wins.
This is the rice-bag analogy: Bag B might cost more total, but Bag A costs less per pound. The "per unit" price is what matters.
Question 3 · The Forgotten Change Output
A user constructs a transaction with:
How much will the miner receive as a fee?
✅ Correct! Fee = 5 − 0.2 = 4.8 BTC, handed to the miner.
❌ Not quite. Remember: there is no fee field, and no auto-refund. Fee = inputs − outputs, no matter how absurd that value looks.
Solution:
The fee is implicit — it equals whatever you fail to assign to an output:
The protocol does not auto-refund or sanity-check fees. There is no fee field. Whatever you leave unassigned goes to the miner. This is exactly the kind of disaster from the opening of the video — and the only protection is correct wallet software that constructs the change output for you.
Question 4 · True or False — The Coinbase Transaction
Statement: "The coinbase transaction in each block is a fee paid by users to the miner."
Is this statement true or false?
✅ Correct! The coinbase mints new bitcoin as the block reward — it is not a fee from any user.
❌ Not quite. The coinbase is the protocol's block reward (newly minted BTC), not a user-paid fee. Fees and the coinbase are separate components of miner revenue.
Solution:
False.
The coinbase transaction is a special transaction at the start of every block that mints new bitcoin as the block reward — it is the miner's "salary" from the protocol itself, not a fee paid by any user. It has no real inputs; it creates bitcoin out of thin air according to the issuance schedule.
User-paid fees are entirely separate: they come from the implicit difference between inputs and outputs of ordinary transactions in the block. A miner's total revenue per block is therefore:
Solved: 0 / 4