Bitcoin is often touted as a global payment network that includes no transaction fees. Up to a certain extent, that statement is true, but it doesn’t tell the entire story. No transaction fee is involved for the recipient on any bitcoin transaction coming from another user on the network. But sometimes, there is a transaction fee involved, albeit very minimal.
Transaction fees in the bitcoin world are not included in every transaction. In fact, most bitcoin wallets allow the user to optionally include a transaction fee in order to speed up the transaction itself. By speeding up, a transaction including a small fee will be prioritized to be included in the next network block, whereas transactions without fees have a lower priority.
Certain exceptions to including a transaction fee don’t affect the transaction speed. In the Bitcoin Core client, if your transaction is smaller than 1,000 bytes in size, has only outputs of 0.01 BTC or higher, and has a high enough priority, a transaction fee is not required. All of these conditions have to be met in order for this exception to be applicable.
If these conditions are not met, a standard transaction fee of 0.0001 BTC per thousand bytes will be added. Bitcoin Core client users will notice whenever a transaction fee is included, as the client will prompt the user to either accept or reject the fee associated with the transaction. Rejecting that fee lowers the prioritization and affects the speed at which network confirmations are applied, though.
Most bitcoin transactions are around 500–600 bytes in size, and depending on the output, may or may not be subject to a 0.0001 BTC transaction fee. Including a transaction in a network block is completely random, but is affected by the transaction fee (if required). Every block leaves 50,000 bytes of room for high-priority transactions — regardless of transaction (TX) fee — to be included (roughly 100 transactions per block).
After that, transactions subject to the fee of 0.00001 BTC/kilobyte are added to the block, with the highest fee-per-kilobyte transactions being included first. This process is repeated until the block size reaches a size of 750,000 bytes.