Bitcoin Forum

Other => Beginners & Help => Topic started by: gentleman2019 on January 17, 2020, 01:20:29 PM



Title: What is the actual fee % on a transaction? (or let's calculate this!)
Post by: gentleman2019 on January 17, 2020, 01:20:29 PM
I think the per Byte calculation is confusing for beginners (it is to me), and also unhelpful in understanding/estimating transaction costs. To answer the question 'how much BTC will it cost me to send 0.15 BTC to my friend?'.

Some explorers usefully provide the total fee. For example in https://www.blockchain.com/btc/block/000000000000000000092072d35d34e3cf35c26c18bb468e99ad6babcff07b4d

Quote
Fee Reward 0.12328166 BTC
Transaction Volume 4846.03749344 BTC

This means the fee paid is (100*0.12/4846.04) = 0.002544% of the transaction amount for this block. (Assuming that the volume does not include the fee - please correct me if there are any other wrong assumptions in the calculation).

Has someone calculated the total of this for all blocks? If not, can the techies here run the calculation or show me how to get the raw data (I only know Excel :))

Would also love to see these important data points from this analysis:

1. How the transaction fee % is changing over the years.

2. The transaction fee % for smaller transaction amounts which are the majority of transactions (as transaction size does not impact the fee, so larger transactions skew the % down).


Title: Re: What is the actual fee % on a transaction? (or let's calculate this!)
Post by: hosseinimr93 on January 17, 2020, 01:32:45 PM
The transaction fee does not depend on the amount you send. It depends on the size of your transaction. So, it depends on number of inputs and outputs.
Also, transaction fee depends on the network condition. When the network is busy you have to pay more so your transaction is confirmed. (Or you have to wait more)

I recommend you to use the link below to calculate the transaction fee.
https://www.buybitcoinworldwide.com/fee-calculator/

Transaction type:
If your bitcoin address starts with 1, transaction type should be "Legacy"
If your bitcoin address starts with bc1 or 3, the transaction type should be "Segwit"

At the time I am writing this post, if you want your transaction to be confirmed within the next two blocks (in about 20 minutes), you should pay 22 satoshi for each byte.
If you use a legacy address in a standard transaction with 1 input and 2 outputs, the transaction size would be 225 byte. In this case the fee you should pay will be 4972 satoshi.



Title: Re: What is the actual fee % on a transaction? (or let's calculate this!)
Post by: AdolfinWolf on January 17, 2020, 01:51:36 PM
1. How the transaction fee % is changing over the years.

2. The transaction fee % for smaller transaction amounts which are the majority of transactions (as transaction size does not impact the fee, so larger transactions skew the % down).
1. -> you can see the average fee in USD$ that a transaction had (note! this is not the average sat/b!) here. https://bitinfocharts.com/comparison/bitcoin-transactionfees.html
Which is, as you can see, heavily correlated with changes to the bitcoin price.


Quote
2. The transaction fee % for smaller transaction amounts which are the majority of transactions (as transaction size does not impact the fee, so larger transactions skew the % down).
Actually, smaller transactions pay a relatively higher fee than big transactions transacting bigger amounts. (that is if we're comparing 1 input  v 1 input.)

There's also not a %, but rather, a sat/b where the amount of bytes really determines your fee, not the amount you're trying to send.
As hossein already said; the amount of bytes a transaction contains is heavily influenced by 2 factors: A. the kind of adress you use (1xxxx legacy (worst) 3xxxx nested segwit (better) bc1.... native segwit (best))
and B. the amount of inputs you're either using or creating.

To calculate the amount of bytes you can check some of the documentation below:
https://bitcoin.stackexchange.com/questions/1195/how-to-calculate-transaction-size-before-sending-legacy-non-segwit-p2pkh-p2sh

Edit: I believe that those formula's given above are quite old now, and with the introduction of segwit it might not be *completely* accurate anymore (only for the transactions using segwit).
(For segwit, see https://bitcoin.stackexchange.com/questions/87275/how-to-calculate-segwit-transaction-fee-in-bytes/87276#87276 , but i think might be getting too difficult to understand at first glance.. However,  if you're interested, further explanation of the weight units and vbytes can be found here; https://en.bitcoin.it/wiki/Weight_units ... )