- Do transaction fees depend on the amount of bitcoin sent?
- On what factors do fees depends?
Fees depend on the size of the transaction (measured in bytes), and can start at 1 satoshi per byte. So. if your transaction weighs 400 bytes, at 1 sat / byte you’ll pay 400 sats.
The size of the transaction depends on its type (P2PK, P2PKH, P2SH, …) and the number of inputs and outputs in it.
Bitcoin transactions can have one or more inputs, and one or more outputs. This will be the major factor determining the size of your transaction.
A Bitcoin transaction is a combination of one or more inputs and one or more outputs. Each input is itself an out put of a previous transaction. So it is not liquid. I think it is good to think of them as paper banks. If you buy something that costs 27 dollar, you probably don't have a 27-dollar bill. you have some other coins and banknotes which sum of them is equal or more than 27. So you may pay 2 20-dollar and one 10-dollar bill and get 3 dollar as change. In this transaction beside amount of the deal, at least 4 banknotes were involved. So this is the factor to calculate the fee.
It's completely possible to have a very small transaction which has high fee, because it is made up of very tiny inputs or it has many outputs. On the other hand, if you try to move only one input to another output (without any change) it would be very cheap beside the amount of the input.
The cost of transactions is independent of the amount transferred. Rather it depends on the weight of the transaction, the current blockspace demand, and the urgency the sender wants to see it confirmed.
A transaction's weight is calculated from the byte count of its serialization. Non-witness data counts at a factor of 4, witness data counts at a factor of 1. Each transaction must have at least one input and one output, transactions with more inputs and outputs will weigh more. (See e.g. this overview of the weights of different output types.)
Transactions compete for the block weight they occupy in a block. Rational miners will prefer transactions with the highest feerate (fee per block weight) to maximize their mining revenue. A transaction's fee can thus be interpreted as a bid for a specific amount of block weight. If there are a lot of transactions waiting for confirmation, a sender might need to offer a higher feerate to see their transaction confirmed quickly.
Nodes generally do not relay transactions that pay feerates lower than 250 sat/kwu (or 1 s/vB), and miners usually do not include transactions in their blocks that pay less than this "minimum feerate".