Transactions made using Bitcoin require a fee which is paid to the network, which are denominated in the native unit (usually displayed in satoshis per byte). Fees are intended to incentivise miners to pick up your transaction as they earn fee revenue along with the block subisidies. As the block subsidy falls over time, fees should rise in order to compensate miners for securing the network and confirming transactions.
Transaction fees also prevent spam attacks on the Bitcoin network. If there were no fees, someone could create a high number fo transactions and bring the network to a hault as miners try to confirm these transactions are valid. Since each transaction requires a fee to be paid, it provides a protection against these types of attacks.
As miners confirm the transactions first picked up by other miners, the number of confirmations rises. Interdax requires at least two confirmations before a BTC deposit is credited to the platform. Bitcoin transactions are considered irreversible (or in other words immutable) once it has six confirmations.
The transaction fee you'll pay to the Bitcoin network depends on three main factors:
1. The Size of the Transaction:
The larger the transaction is in terms of bytes/kilobytes, the higher the fee that is required. If someone uses just one unspent output to create a transaction input, the size of the transaction is smaller than a transaction that collects multiple unspent outputs together to create an input.
Therefore, the transactions with smaller number of inputs are cheaper since they take up less space on the blockchain. Since miners can fit more transactions into a block if they are smaller in size, they are incentivised to include transactions with larger sizes if they are sent with a higher fee.
2. Bitcoin Network Congestion:
As the law of supply and demand dictates, if there are a fixed number of miners confirming transactions and the demand for making bitcoin transactions rises substantially, then the cost of a transaction rises to reflect the greater demand.
Since miners have more transactions to choose from to produce a block, they will confirm those with the highest fees first and gradually work their way down to those who attach lower fees to their transactions.
Therefore, if the bitcoin network is congested, you'll need to pay higher fees. If the fee is too low, the transaction is low priority to miners and may only confirm the transaction once the transactions with higher fees have been confirmed.
3. Urgency of Your Transaction:
Depending on the urgency of your transaction, you may have to pay a higher fee if you want it to be confirmed quicker. As detailed above, when there's congestion on the network, the fee paid is relatively higher to get a transaction confirmed with the same number of confirmation as compared to when the network is not as busy.
Similarly, if you are not prepared to wait too long to have your transaction confirmed (e.g., you want to deposit to Interdax and catch an unravelling move in the market), you may want to pay higher fees to get your funds onto the exchange quicker. On the other hand, if you are not bothered by how long the transcation takes (e.g., you might be transferring funds into cold storage and are prepared to wait), then the lowest fees will suffice.
Estimating Bitcoin Transaction Fees
There are several ways to estimate bitcoin transaction fees and ensure that you pay the lowest fee possible, or pay the right fee to get a transaction confirmed in a timely manner.
For convenience, you can let your wallet decide what transaction fee should be used. Most wallets will show fees for various use cases: e.g., economical for cheap transactions, priority for faster transactions or normal for a balance between cost and speed.
Alternatively, some wallets enable you to set the transaction fee yourself. To set the transaction fee yourself, you can use the following tools:
1. Core Fee Helper: @CoreFeeHelper
This account tweets out the recommended fee rate from a Bitcoin Core node rougly every 30 minutes. The fees shown by the account refer to a transaction size of 250 bytes. As shown below, it recommends a fee rate for getting into the next block, getting into a block in the next hour, six hours and so on, all the way up to one week.
2. WhatTheFee: https://whatthefee.io/
WhatTheFee is a website created by Felix Weiss that provides an estimation of how long your transaction will take to be confirmed.
The likelihood for each fee size is shown along with the expected wait time. For instance, in the screenshot below we see that a fee rate of 81.5 satoshis per byte has a 95% chance of being confirmed within half an hour:
However, this method only shows the fee rate estimations for the next 24 hours.
3. Mempool.space: https://mempool.space/
Mempool.space provides an overview of the mempool status, displaying the reccommended fees for low, medium and high priority for the current block.
The top left hand side of the page shows you the estimated fee to get includes in the next block, in the next 20 minutes, the next 30 minutes and the next 24 blocks. For example, in the screenshot above we see that for a transaction to be confirmed in the next block (the next 10 minutes), a fee rate of around 60 satoshis per byte is recommended.
4. Jochen-hoenicke.de: https://jochen-hoenicke.de/queue/#0,24h
Jochen-hoenicke.de provides a visualisation of three key metrics derived from a Bitcoin node run by the website's creator (Jochen Hoenicke):
i) the unconfirmed transaction count (also known as the mempool) which is how many transactions that have yet to be confirmed by miners,
ii) the pending transaction fee in BTC, and
iii) the mempool size in MB.
The transaction fees are shown by a layered chart illustrating the distribution of fee rates for all unconfirmed transactions.
The mempool statistics can be shown over a period of two hours all the way up to the entire history of the blockchain. The different coloured layers represent different fee rates in term of satoshi per byte, with the lowest layers representing the lowest fee rates, while transactions with higher fee rates are stacked above it. The topmost layer represents the transactions with the highest fees.
The graphic below shows the 24 hour view. Between 02:00 and 07:00, we see that the unconfirmed transaction count fell; during this period it would have been cheaper to send a BTC transaction as there were fewer transactions with higher fee rates.
Between 18:00 and 01:00 on the chart above, a higher fee rate would have been neccessary to get your transaction confirmed quicker. For instance, the highest fee rate during this time was 2000+ satoshis per byte. Since miners will select transactions with higher fees to include in the blocks they produce, you'd want to set your transaction fee higher than most other transaction to ensure it is confirmed quicker than other pending transactions.
Taking a look at the three month view, it is clear that there tends to be a smaller number of unconfirmed transactions on the weekends. Therefore, any time when the number of unconfirmed transactions is relatively low, you will be able to send BTC with a cheaper fee.
The visualisations also allows you to click on a certain fee level to hide all transactions with fees below that level. For example, if you click on 120-140 satvB category on the left-hand side, the graph only shows transactions with that fee rate or higher and illustrates the number of transactions competing with that fee level more clearly:
Other Transaction Fee Estimations:
Transaction fee estimates can also be found on the following websites:
- https://bitcoiner.live/: for a certain fee rate, the table shows the max delay and the typical fee in USD (if using SegWit). The max delay is a useful feature since it gives you an upper bound on how long your transaction will take with 80% certainty.
- https://fee.cryp.ee/#/btc: similar to bitcoiner.live, fee rates are shown for inclusion in the next block, 6 blocks, 9 blocks and so on.
- https://coinb.in/#fees: here you can estimate the fees depending on the size of transactions. You can manually adjust the number of inputs and outputs to get an idea of the optimal fee rate.
- https://statoshi.info/dashboard/db/fee-estimates: as with other websites, you can see the transation fee required to get into the next block, the next 10 blocks and so on. There is also a visualisation for the average transaction fee per byte paid over time.
With these tools, bitcoin users can ensure that they set the right fee to get their transaction confirmed in a timely manner. Also, these visualisations are useful if you want to send a BTC transaction with the lowest fee possible