Bitcoin transaction fees are base on size in bytes, not the amount of BTC you are spending, so the reason why your fees tend to increase is that each input (UTXO you are spending) takes space . So the more inputs you use the larger your transaction becomes and the more space it will takes, and more bytes equal to more fees (because we are paying sat per byte ) , this is why most time before I make any transaction I will first observe the mempool to see the bytes it does fluctuate depending on network congestion.
You are right but there is more to the way you describe it.
Bitcoin transaction fee is based on Vbyte and not byte. You are going to be paying sat for every vbytes in your transactions. If you have a single input and a single output and your cumulative transaction size is worth 130vbytes for instance, you are going to be paying for every vbytes in that transaction and the fee depends on how much sat you are willing to spend and how congested the mempool is in that moment.
If you are paying an Xsat/vbytes for your transaction, you are going to be having x total sats for your transaction fee.
If you are paying 1 sat/vbytes, you will be paying 130 sats for your transaction fee. If you are spending 2 sats/vbytes, you will be spending total 260 sats as transaction fee.
So let me break it down with some example:
So for instance you want to spend 0.1 BTC ,
And you have one UTXO of 0.1 BTC = 1 input = small transaction fee (because it won’t take much space )
But when you have 10 UTXO of 0.01 each = 10 input = large transaction = higher fee ( though you are sending same amount of 0.1 BTC) but this time you are using much space due to the number of inputs.
So yeah using many small UTXO will definitely increase your fee and I hope you know how your UTXO usually increases.
Spending a single input and output doesn't mean you are going to be paying low transaction fee in some cases. The type of wallet address and the number of inputs and output can change the fees you are going to be spending.
If you are using a single input and output with a legacy address that start with 1Lur..... You are going to be paying less fees than when you are paying for 2 or more inputs and output on the same legacy wallet address. However, this changes when you are using segwit addresses.
If you are using segwit
v1v0 which is bc1q...., a single input output transaction is going to be less fee than when you are sending same input and output on legacy address.
If you are sending Bitcoin on segwit
v2v0 referred to taproot bc1p...., you are going to be paying less fee compared to legacy. But the interesting thing here between
v1v0 and
v2v1 segwit is if you are spending more input and less output, you are going to be saving fees on
v2v1 (bc1p) than if you are doing the transaction on
v1v0(bc1q) and similarly when you are spending less input and more output, you at going to be saving more fees on
v1v0(bc1q) than
v2v1(bc1p).