Do you know what the impact is on transaction fees if you combine multiple outputs from multiple addresses compared to multiple outputs from a single address? Would there be a difference in transaction size if they originate from multiple addresses or is it only related to the number of incoming transactions that now need to be pooled?
It is only related to the number of inputs that are being "pooled". The number of addresses those UTXOs are spread across is irrelevant. So, everything else being equal, the fee for "Multiple outputs from multiple addresses" == the fee for "Same number of outputs from one address"
For instance:
Case A:
10 addresses, each one received 10x 0.01 BTC deposits... => (10 * 10 * 0.01) => 1 BTC total, over 100 UTXOs
Case B:
1 address, which has received 100x 0.01 BTC deposits => (1 * 100 * 0.01) => 1 BTC total, over 100 UTXOs
In both cases, if I want to send 1 BTC... I need to use 100 UTXOs, which creates 100 inputs... For "legacy" transactions, you're generally looking at around 148 bytes PER INPUT (assuming compressed addresses)... so your transaction is going to be overt 14,800 bytes!!
If fees are 100 sats/byte, you're looking at 1,480,000+ sats (or 0.0148+ BTC) in fees! Now imagine what that would be like if your wallet only had a total of 0.1 BTC in 100 UTXOs... you'd be spending 15% of your balance on fees!
Now imagine what it would be like if the fees were back at 500+ sats/byte!!?!
The trick to reducing transaction size (and therefore transaction fees) is to reduce the number of inputs... so if you had:
Case C:
10 addresses, each received 1x 0.1 BTC deposit => (10 * 1 * 0.1) => 1 BTC total, over only 10 UTXOs
&
Case D:
1 address, which has received 10x 0.1 BTC deposits => (1 * 10 * 0.1) => 1 BTC total, over only 10 UTXOs
In these cases, if you want to send 1 BTC... you only need to use 10 UTXOs, which means only 10 inputs... so your transaction is only going to be around 1480 bytes... and a potential saving of up to 13,200 bytes!
For the same fee rate of 100 sats/byte, you're now only looking at 148,000+ sats. And, as above, if you only had 0.1 BTC over 10 UTXOs, you'd now only be spending about 1.5% of your balance on fees... which is a lot more "acceptable"
TL;DR - Avoid collecting lots of small UTXOs (or try and merge them when fees are low, like they are now) to avoid incurring very large transaction fees later
NOTE: While the use of SegWit addresses will reduce the "size" of your transaction to some extent (thereby reducing the total fee paid), the general theory still holds... the more UTXOs (aka inputs) you "pool" into your transaction, the larger it is going to be... regardless of how many addresses those UTXOs are split across
Yes, it has an impact on the tx size, therefore you'll pay higher fees if you store small amounts through multiple addresses. Each address has an unique private key, those coins are associated to that private key, so each input has to be signed by it.
If you've 1 BTC stored through addresses A to J each with 0.1 BTC, when you send 1 BTC to someone it will have 10 inputs -> 1 output, making a much bigger tx in size than if you've 1 BTC at a single address.
That is only true if the 1 BTC at a single address is stored in 1 output... if that single address has received 10 deposits of 0.1 BTC (1 BTC Total), and you try to send 1 BTC, it will generate a transaction with the same size as using the 1 BTC (10 inputs) from addresses A to J.
The OP specifically asked about "multiple outputs from multiple addresses" versus "
multiple outputs from a single address"