Being your own Bitcoin bank carries a set of responsibilities. In the event that your coins are lost or any frustrating incident occurs with your wallet, you are solely responsible for resolving the issue.
One particular annoyance with Bitcoin is encountering "stuck" transactions. This situation often arises when an insufficient transaction fee is paid, causing miners to delay confirming the transaction for hours or even days.
Determining the appropriate fee to pay in order to avoid such complications can be quite challenging. Bitcoin's fee estimation is intricate due to numerous variables at play.
However, there are certain data points you can consider to help you choose a fee that is likely to be sufficient.
#1 number of transactions per block
The size of a block in a blockchain can vary, and it is not solely determined by the number of transactions it contains. Some blocks may be larger than 1MB but may contain only 200 transactions, while other blocks can fit 1200 or more transactions.
The number of transactions that can fit in a single block depends on primarily two factors: the number of inputs (signatures) per transaction and the type of transaction.
When transactions have a large number of inputs, they tend to occupy more space in terms of data. Each input requires certain information, such as the previous transaction output being spent and its associated digital signatures. Consequently, transactions with numerous inputs can consume significant block space.
However, certain types of transactions, specifically those spending Segregated Witness (SegWit) outputs, receive a space discount. SegWit is a protocol upgrade implemented in Bitcoin. It separates transaction signature data (witness data) from the transaction itself, reducing its size. When spending SegWit outputs, these transactions require less block space, allowing more of them to fit into a single block.
Now, let's examine a random block that is slightly larger than 1MB in size.
The block in question consists of 1488 transactions, which offer an insightful glimpse into the diversity of transactions found in a typical block. Within this block, we can observe various types of transactions, with each type serving a specific purpose.
Firstly, there are native SegWit transactions which we explained above.
Another type of transaction found in the block is P2SH, which stands for Pay-to-Script-Hash. P2SH transactions involve multi-signature and other smart contracts. Multi-signature transactions require multiple parties to sign off on a transaction, adding an extra layer of security and trust. Smart contracts, on the other hand, allow for the automation and execution of predefined conditions within a transaction.
The block also includes transactions with specific characteristics such as "high input low output" and "low input high output." These terms refer to the relationship between the number of inputs and outputs in a transaction. "High input low output" means that the transaction consolidates many smaller inputs into a smaller number of larger outputs, while "low input high output" indicates the opposite, with fewer inputs creating more outputs. These transaction patterns can have implications for privacy, coin mixing, and other aspects of the blockchain network.
Overall, this diverse mix of transaction types in the block provides a good representation of what a typical block looks like on the blockchain.
#2 number of unconfirmed transactions
Next, we need to examine mempool, which serves as a repository for all transactions that are awaiting inclusion in a block. To acquire this information, you have two options.
The first option entails accessing data from your personal Bitcoin node, should you possess one. Alternatively, you can utilize platforms such as Johoe's Bitcoin Mempool Statistics.
Opting for Johoe's Bitcoin Mempool Statistics offers numerous advantages. Firstly, it allows you to conveniently access mempool data without needing to host your own full Bitcoin node. This saves you the considerable effort and resources required to set up and maintain such a node. Instead, you can rely on Johoe's platform, where you'll find comprehensive statistics and details regarding the pending transactions.
This includes the number of transactions waiting to be confirmed, their transaction fees, and various other metrics that can assist you in understanding the overall transactional load and network congestion.
In the current scenario, mempool is relatively small. However, for this specific example, we are examining data from a week ago rather than the present time. When analyzing mempool, it is typically recommended to observe the 2-hour chart.
The provided chart gives an overview of Johoe's Mempool's present state. The color scheme of the chart represents the volume of transactions at specific fee rates per byte, providing information about the transaction load over time.
To obtain the most recent data, you need to position your cursor all the way to the right on the chart. This allows you to view the up-to-date information regarding current mempool status.
In the given illustration, there are a total of 6001 unconfirmed transactions within mempool. Additionally, among these transactions, 2824 have paid a fee of at least 10 satoshis per byte. These details indicate the level of transaction congestion and the priority given to transactions based on the fee rate per byte.
The number 1488 is mentioned as a rough estimate for the maximum number of transactions that can fit into a typical block. According to the provided chart, if we pay only 10 satoshis per byte, there is a possibility that our transaction may not be included in the next block. This is due to the fact that there could be a pool of 2824 transactions, and only around half or even less of them will likely be confirmed in the next round.
However, there is some reassurance that our transaction will likely be confirmed within the next couple of blocks if we choose the 10 satoshis per byte fee, unless there is a sudden influx of transactions. In this scenario, 10 satoshis per byte could be considered the optimal fee.
On the other hand, if we choose to use the next fee level of 12 satoshis per byte, the chances are higher that our transaction will be confirmed in the next block. This is based on the assumption that the block can accommodate at least 734 transactions.
It is important to keep in mind that transaction confirmation is akin to a lottery, and there is no definitive way to know which specific transaction will be included or how long it will take. Factors such as the fee level, transaction size, and the overall network congestion play a role in determining the confirmation time.
Keep in mind
It is important not to overpay for transactions. In many cases, there is no justification for paying excessively high fees, especially when most transactions are processed quickly with only small fees. It is crucial to be aware of the prevailing transaction fees and adjust your own fees accordingly.
If the recipient of your transaction does not accept zero-confirmation transactions (meaning transactions that have not yet been included in a block), it is advisable to use a feature called Replace-by-Fee (RBF). RBF allows you to increase the fee of a transaction after it has been broadcasted. This way, if your initial fee was too low and your transaction gets stuck due to a sudden surge in transaction volume, you can increase the fee to prioritize its confirmation.
It's worth noting that not all transactions carry the same level of urgency or importance. In certain scenarios, it may be acceptable for a transaction to be confirmed within 24 hours rather than immediately. By evaluating the urgency of your transaction and understanding its relative importance, you can select an appropriate fee level that balances cost-efficiency with timeliness.
Think before you make a transaction in order to save yourself some money.