Being your own Bitcoin bank comes with certain responsibilities.
If your coins get lost or something annoying happens with your wallet, you're on your own.
One of the annoyances with Bitcoin is "stuck" transactions.
Often enough an insufficient transaction fee is paid and miners don't bother confirming the transaction for hours or days (or worse).
Let's have a look at one of many ways how to determine the "right" fee to pay.
It's very difficult to predict the optimal fee in Bitcoin as many variables come into play. However, there is certain data that you may look into to help you choose a good enough fee.
#1 number of transactions per block
Some blocks may be more than 1MB in size but only contain 200 transactions, other blocks fit 1200 or more.
The number of transactions that fit in a single block depends mostly on 2 things:
- number of inputs (signatures) per transaction
- a transaction type
If transactions have too many inputs they will typically take lots of space (in terms of data).
However, if SegWit outputs are being spent, such transactions receive space discount and more of them will make it into a block.
Let's look at a random block with little over 1MB in size.
The number of transactions is 1488 and block is comprised of a variety of different transactions such as:
- native SegWit
- P2SH (multi-signature and other smart contracts)
- high input low output
- low input high output
- and others
It's a good representation of what a typical block looks like.
#2 number of unconfirmed transactions
Next, we'll have to look at Mempool which is a list of all transactions that have yet to make it into a block.
I prefer the latter.
Please note that Mempool is quite small these days so in this particular example we're looking at the past period from a week ago. Normally you will want to look at the 2h chart.
The chart displays the current state of Johoe's mempool. The color represents the number of transactions at certain fee rate per byte at any given time.
To get the latest data, you will have to move your cursor all the way to the right.
In this particular example, there are 6001 unconfirmed transactions and 2824 transactions that paid a fee of at least 10 satoshis per byte.
Remember the number 1488? We know that's a very rough estimate of how many transactions can fit into a typical block.
Based on the chart above, we know that if we only pay 10 satoshis per byte we may not make it into a next block because we'd be in a pool with another 2824 transactions. Chances are only around half (or less) will make it in the next round.
Our transaction will likely confirm within next couple of blocks though. Therefore 10 sat/byte could be our optimal fee unless there's a sudden spike in transactions.
However, if we use the next fee level which is 12 sat/byte, the chances are the transaction will confirm in the next block as long as the block can fit at least 734 txs.
Don't forget that tx confirmation is like a lottery. There's no way to tell whether a particular transaction will make it and how long it will take.
Keep in mind
Don't overpay transactions. There's no reason to pay +100 satoshis per byte in fees when most transactions pay tiny fees and confirm almost immediately.
If the receiver doesn't accept 0-conf transactions, you should always use Replace-by-Fee (RBF) to bump the fee if needed. As mentioned earlier a sudden spike in tx volume may happen and your transaction may be stuck for days or even months.
Not all transactions are equal in terms of importance. There may be instances where being confirmed within 24 hours is acceptable enough.
Think before you make a transaction to save yourself some money.