How Bitcoin Fees Work
Bitcoin fees can be quite high (up to hundreds of dollars) but they are usually only a few dollars and many people do not understand how these fees are calculated. This short post should help people understand.
Its a common misconception that the more Bitcoin you want to transfer, the more money it costs in fees. In actual fact:
Bitcoin fees do not depend on the amount of Bitcoin being transferred.
Instead, they are dependent on two things:
- The size of the transaction in raw bytes (i.e. how much space the transaction takes up on the blockchain).
- The number of blocks you are prepared to wait for before your transaction is added to the blockchain (each block is 10 minutes apart)
Factor 1: The size of the transaction in bytes
So what affects the size of the transaction in bytes?
Well, it depends on how many inputs and outputs the transaction has. The output is usually just one address (the address of the person you are sending Bitcoins to), so that's no problem. However, the inputs can be many depending on your transaction history.
It goes like this:
Imagine User A has been sent 0.1 Bitcoins on 5 occasions, she now has 0.5 Bitcoins total, but these are spread out over 5 different transactions on the blockchain.
User B has been sent 0.5 Bitcoins but just in one single transaction, so all her money can be traced to one single transaction on the blockchain.
Imagine that now they both want to send the same amount of money (0.5 Bitcoins) to User C.
It will cost User A much more in fees to send her 0.5 bitcoins because she has 5 inputs to claim and add to the transaction and User B has only 1 input. This is because User A's transaction will take up much more space (nearly 5 times) on the blockchain, and blockchain space is at a premium, so User A gets charged more.
Each input is 148 bytes so User A's inputs will take up 740 bytes and User B's will take up just 148 bytes.
Factor 2: The number of blocks before confirmation
The second factor in determining Bitcoin fees is the number of blocks you are willing to wait until your transaction gets added. So say you had a really urgent payment which needs to be made, you can elect to pay higher fees to get a higher chance that your transaction will be in the next block.
Conversely, you can elect to pay lower fees for a lower priority payment - however, it will generally take much longer for your transaction to be written into the blockchain.
Fees in Wallets
Most wallets tend to choose the fees for themselves. However, some wallets (e.g. Electrum) will let you select what you want to bid for your fees in Satoshi's per byte or sat/byte. A small fee would be 1 Satoshi per byte - a large fee would be 40-50 Satoshi's per byte.
Wow I had no idea Bitcoin fees were based on how many different transactions your Bitcoins were acquired in.
Weird, but I guess it does make sense.
@lucky777 It makes sense based on the space usage but it does seem unfair that small amounts of Bitcoin effectively are worth less due to having to pay large fees on them.
@joes Yeah that does kind of suck for those who tend to stick to smaller transactions like myself.