How Do Bitcoin Transactions Work?

From private key signature to confirmed block - a complete walkthrough of what happens when you send Bitcoin.

Quick Answer A Bitcoin transaction is a digitally signed message that tells the network you are authorizing the transfer of Bitcoin from your address to someone else's. You sign it with your private key, broadcast it to the network where it waits in the mempool, and a miner eventually picks it up and includes it in a new block. Once confirmed in a block, the transaction is permanent and cannot be reversed.

Most people think of sending Bitcoin the way they think of a bank transfer - you enter an amount, hit send, and money moves from account to account. But what is actually happening under the hood is quite different, and understanding it unlocks a lot of clarity about why Bitcoin works the way it does. There are no account balances in the traditional sense. Transactions reference previous outputs, fees are competitive, and miners are the ones who ultimately decide when your transaction gets settled. This guide walks through every stage of a Bitcoin transaction's lifecycle.

The Transaction Lifecycle: Step by Step

When you send Bitcoin, the transaction goes through five distinct stages before it is considered fully settled:

Inputs and Outputs: How Bitcoin Value Actually Moves

Bitcoin does not track account balances. Instead, it uses a model called UTXOs - Unspent Transaction Outputs. Every Bitcoin that exists is the output of some previous transaction, and spending Bitcoin means consuming those outputs as inputs to create new ones.

Think of it like physical bills and coins. If you want to pay someone $27 and you only have a $50 bill, you hand over the $50 and receive $23 in change. Bitcoin works the same way: you reference the full value of a previous output as an input, specify the amount going to the recipient, and send the remainder back to yourself as a "change output" assigned to a new address in your own wallet.

Example: You received 0.1 BTC in a previous transaction. You want to send 0.04 BTC to a friend and pay a 0.0001 BTC fee. Your wallet creates a transaction with one input (0.1 BTC) and two outputs: 0.04 BTC to your friend's address, and 0.0599 BTC back to a change address in your own wallet. The remaining 0.0001 BTC is the miner fee - the gap between inputs and outputs.

This structure means every Bitcoin's entire history is traceable back to the coinbase transaction (the reward transaction) in the block where it was originally created. There are no free-floating balances - just an unbroken chain of outputs.

Transaction Fees: Why They Exist and How to Set Them

Bitcoin transaction fees are not charged by a company or payment processor. They are competitive bids to get your transaction included in the next block. Miners are rational economic actors - they fill each block with transactions that maximize the fees they collect, so they naturally prioritize higher-fee transactions when the mempool is congested.

Fees are measured in satoshis per virtual byte (sat/vB) - not as a percentage of the amount sent. A transaction sending $1 worth of Bitcoin costs the same in absolute fee terms as one sending $1 million, assuming identical transaction sizes. This is very different from traditional payment rails where fees scale with transaction size.

When the network is quiet, fees can be as low as 1-5 sat/vB and transactions confirm in the next block (about 10 minutes). During periods of high demand - like a bull market surge or a popular NFT mint on a competing chain clogging activity - fees can spike to 100 sat/vB or higher, and low-fee transactions can wait days.

Practical tip: Most Bitcoin wallets let you choose between slow, standard, and fast fee tiers. For non-urgent transactions, choosing the slower option can save meaningful fees. For time-sensitive payments, pay the higher fee. Services like mempool.space show live mempool conditions and current fee estimates.

Confirmation Time and What "Confirmed" Means

Bitcoin targets a new block approximately every 10 minutes, enforced by the network's difficulty adjustment. So in theory, a transaction should confirm within 10 minutes of being picked up by a miner. In practice, block times vary - sometimes 2 minutes, sometimes 20 - because mining is a probabilistic process.

When your transaction is included in a block, it has 1 confirmation. Every block added after that gives it another confirmation. The significance of confirmations is about security: to reverse a confirmed transaction, an attacker would need to re-mine that block and every block since, faster than the honest network is building new blocks. The deeper in the chain, the more work required to undo it.

Irreversibility: Why Bitcoin Transactions Cannot Be Undone

Bitcoin's irreversibility is a feature, not a flaw, though it requires adjustment for people used to credit cards and PayPal chargebacks. Once a transaction has accumulated sufficient confirmations, reversing it would require an attacker to redo more proof-of-work than the entire honest network has done since then - an astronomically expensive proposition.

This irreversibility is what makes Bitcoin a reliable settlement layer. A merchant accepting Bitcoin does not need to worry about a customer reversing the payment 60 days later. The finality is guaranteed by mathematics and the economics of mining, not by a company's fraud department.

The practical implication for users is simple: double-check the recipient address before you send. Bitcoin addresses are long strings and mistakes do happen. A sent transaction cannot be recalled. Most wallet software lets you verify the first and last few characters of the address and some use QR codes specifically to avoid manual transcription errors.

Learn Bitcoin The Visual Way

Bitcoin From Scratch is the only Bitcoin fundamentals course built entirely with 3D animation. Watch transactions, UTXOs, mining, and the mempool come to life across 34 animated lessons.

Get Bitcoin From Scratch - $97

Frequently Asked Questions

Why does a Bitcoin transaction sometimes take a long time to confirm?

Confirmation time depends on two things: network congestion and the fee you attached. Miners prioritize transactions with higher fees per byte. If the mempool is crowded because many people are transacting at once, a transaction with a low fee may wait hours or even days before being picked up. During calm periods, even low-fee transactions confirm within 10-20 minutes.

What happens to the transaction fee I pay?

Transaction fees go entirely to the miner who includes your transaction in a block. This is separate from the block subsidy (newly created Bitcoin). As the block subsidy decreases through halvings over time, transaction fees become an increasingly important part of miner revenue - which is by design in Bitcoin's economic model.

Can I cancel or reverse a Bitcoin transaction?

Once a transaction is confirmed in a block, it is irreversible. Before confirmation, if the transaction is still in the mempool, you can attempt to replace it using Replace-By-Fee (RBF) - essentially rebroadcasting the same transaction with a higher fee. But once one confirmation exists, reversal is not possible without controlling more than 50% of the network's hash power, which is economically impractical.

How many confirmations do I need before a Bitcoin transaction is considered final?

For small everyday amounts, 1-3 confirmations is generally sufficient. For larger amounts, most businesses and exchanges wait for 6 confirmations, which represents about an hour of mining time at the 10-minute average block interval. For very large transfers, some parties wait for even more confirmations before treating the transaction as fully settled.

Why does Bitcoin use inputs and outputs instead of account balances?

Bitcoin uses a UTXO (Unspent Transaction Output) model rather than an account balance model for important security and privacy reasons. UTXOs allow full verification of every coin's history all the way back to its creation in a coinbase transaction. It also makes parallel transaction validation easier and supports more advanced scripting capabilities than a simple balance system would allow.