How does a bitcoin transaction work inside a wallet? The familiar “Send” screen hides a chain of steps. The wallet chooses spendable outputs, constructs new outputs for the recipient and often for change, estimates a network fee, asks the keyholder to authorize the spend, and broadcasts the signed transaction. The network then checks its validity; miners may include it in a block. A wallet makes this manageable, but it does not hold coins in a private database or promise that every broadcast will confirm immediately.
What the wallet controls
Bit.Fan’s beginner guide to Bitcoin wallets emphasizes that a wallet manages keys and transaction signing rather than storing the blockchain’s coins like files. A receiving address identifies where a new transaction output can be locked. The wallet tracks outputs it can spend and displays a balance derived from them. In a self-custody wallet, its keys authorize spending; in a custodial account, the platform ordinarily controls the keys and performs the on-chain action on your behalf.
That distinction matters when a screen says “balance.” It is an interface summary, not a single indivisible pile of digital coins. The Bitcoin Developer Guide’s transaction explanation describes unspent transaction outputs, or UTXOs. Each UTXO has a specific value and locking conditions. A new transaction spends one or more old UTXOs as inputs and creates new outputs. An old UTXO cannot be partly spent directly; any remainder generally becomes a new change output.
A simple example: send 0.10 BTC from a 0.30 BTC output
Imagine a wallet controls one spendable UTXO worth 0.30 BTC. You enter a recipient address and ask to send 0.10 BTC. The wallet may use that 0.30 BTC UTXO as the input, make a 0.10 BTC recipient output, and return most of the rest to an address it controls as change. For illustration, if the fee is 0.0001 BTC, the change output is 0.1999 BTC: 0.30 minus 0.10 minus 0.0001. The numbers are an example, not a quoted current fee.
This surprises people who expect the wallet to leave the unused 0.20 BTC untouched in the same original output. Under the UTXO model, consuming the 0.30 BTC input removes it from the set of unspent outputs. The transaction creates fresh outputs instead. In a block explorer, the change output may look like a second payment. If it belongs to the sender’s wallet, it is money returning to the sender, not an extra gift to someone else.
Real wallets may combine several smaller UTXOs to cover a payment or choose among eligible coins. Different choices affect the transaction’s size, fee, privacy, and future spendability. Some transactions need no change output because the selected input value can be assigned to the recipient and fee. Others have more than one recipient. The example is intentionally simple so the accounting is visible.
Review the address, amount, and fee before signing
The recipient supplies an address or QR code. The wallet prepares an output that pays to the script represented by that address. Before approval, verify the address on a trusted display, the amount in BTC or satoshis, and any network or service fee shown. A pasted address can be wrong or altered by malware. A hardware device may offer a separate screen for review, but its benefit depends on checking what the device actually shows.
For an on-chain self-custody send, the wallet signs with the private-key material needed to unlock the chosen inputs. A signature demonstrates authorization under the output’s spending conditions. It is not a password mailed to the recipient, and the private key should never be shared with a payee or support agent. A recovery phrase can regenerate wallet keys in many designs; whoever obtains it may be able to authorize future spends.
The fee is the difference between total input value and total output value. It pays for block inclusion rather than buying a fixed amount of bitcoin from the recipient. Wallets commonly estimate a fee rate based on transaction size and desired confirmation time. Higher fees may help a valid transaction compete for block space, but they do not guarantee a precise inclusion minute. Network demand changes, and wallet software may offer fee adjustment methods.
Broadcast is not the same as confirmation
After signing, the wallet sends the transaction to network peers. Nodes independently check whether its inputs are spendable, the signatures satisfy the locking conditions, and the transaction meets their relay policies. Bitcoin Core’s sendrawtransaction documentation distinguishes submitting a raw transaction to the network from having it mined. A wallet may show “pending” after broadcast because a node has seen it but no block has yet included it.
Once a miner includes the transaction in a valid block, it has one confirmation. Each later block adds depth. A merchant may require a chosen number of confirmations before treating a payment as settled; the appropriate threshold depends on value and risk. A transaction can also fail to propagate, be rejected by some nodes, or remain unconfirmed if its fee is insufficient. The presence of a transaction identifier alone does not prove final settlement.
What to check when a payment looks stuck
First distinguish wallet status labels: “created,” “signed,” “broadcast,” “seen by network,” and “confirmed” describe different milestones. If the transaction was broadcast, inspect its identifier in your wallet or a reliable explorer and compare the destination, amount, and confirmations. If it is unconfirmed, check the wallet’s fee adjustment options and instructions before attempting another send. Sending again carelessly can produce a second payment if the first later confirms.
The wallet builds and signs input-to-output rules; network nodes validate and relay them; a miner can include them in a block. Verify the recipient, know who controls the keys, and wait for appropriate confirmations.