How much will the transaction fee be? Why is the fee so high?

How much will the transaction fee be? / Why is the fee so high?

Bitcoin transactions almost always require a transaction fee for them to get confirmed. The transaction fee is received by the first bitcoin miner who mines a block containing the transaction; this action is also what gives the transaction its first confirmation. The appropriate fee varies depending on how large (in bytes) your transaction is, how fast you want the transaction to be confirmed, and also on current network conditions. As such, paying a fixed fee, or even a fixed fee per kB, is a very bad idea; all good Bitcoin wallets will use several pieces of data to estimate an appropriate fee for you, though some are better at fee estimation than others.

The fee most strongly depends on the transaction's data size. Fees do not depend on the BTC amount of the transaction -- it's entirely possible for a 0.01 BTC transaction to require a higher fee than a 1000 BTC transaction.

Basic intro to how Bitcoin transactions work: If you receive BTC in three separate transactions of (say) 1, 5, and 10 BTC, then you can think of your wallet as containing three gold coins with sizes 1, 5, and 10 BTC. If you then want to send 6 BTC, you can melt the 1 & 5 BTC coins together and recast them as a 6 BTC coin, or melt the 10 BTC coin and recast a 6 BTC coin for the recipient and a 4 BTC coin as change for yourself. In Bitcoin's technical vocabulary, these objects are literally called input and output coins. (In the rest of this section, when we say "coin" we mean these objects, not the amount of BTC value.)

Transaction data sizes, and therefore fees, are proportional to the number (not value) of input and output coins in a transaction. Input coins are about 5x larger / more expensive than output coins.

If your wallet estimates a very high fee, it is most likely because your wallet is full of a whole bunch of tiny coins, so your transaction will need to take very many coins as inputs, increasing the cost. On the bright side, fees will go down once you make a few transactions, since you will end up "melting down" these many small coins into a few larger ones. Sometimes you can significantly reduce the fee by sending less BTC: if you have like 1000 tiny faucet payments totaling 0.5 BTC and then 16.5 BTC from other sources, then you'll find that sending ~16.5 BTC will be massively cheaper than sending a slightly higher value since it avoids including all of those faucet coins.

Fees also fluctuate depending on network conditions. All unconfirmed transactions compete with each other to be picked up by miners. If there are a lot of high-fee transactions being sent right now, then you will need to pay higher fees to out-bid them. On the other hand, if speed is less important to you, you can pay a somewhat smaller fee, and your transaction will float around until there is a period of reduced network usage. Sometimes even transactions with zero fee will be confirmed after a very long period of time, though this requires a perfect set of conditions, beyond what is explained here (ie. it probably won't work if you try it).

Oftentimes wallets will have an "express" fee configuration, but note that confirmation times are naturally random and unreliable. At any given point in time, the probability that no transactions will be confirmed in the next hour is about 0.25% (ie. it happens more than once per week on average). Bitcoin users should avoid getting into situations where their transactions absolutely must get 1 confirmation in the next couple of hours, even if high-fee transactions usually take less than 10 minutes to get 1 confirmation.