If you are a daily Bitcoin user who sends and receives coins frequently chances are that you have run into a transaction that didn’t confirm immediately the next block. There are two main reasons why a Bitcoin transaction may be pending, the first is that the transaction is invalid and was created fraudulently, since the signature doesn’t match with the corresponding key the network rejects the transaction all together. The other most common reason that a transaction isn’t confirming is because the sender sent too low of a miners fee.
While the fraudulent bitcoin transaction will not confirm, a transaction with a low fee might confirm or be dropped from the network if a long enough time has passed. However, the transaction must meet the minimum relay fee (MIN_RELAY_TX_FEE) which is currently set to 0.0001 BTC. The minimum relay tx fee is the minimum amount that the transaction fee has to be in order for the particular node to relay the transaction. Before a transaction can be confirmed by the miners it needs to be seen by them, as a result tranasctions that never relay will never get confirmed.
So lets say that you sent a transaction with a fee smaller than the MIN_RELAY_TX_FEE, you can still get that transaction to get relayed by a node if the node has overridden the MIN_RELAY_TX_FEE value to be less than 0.0001. According to David Schwartz from the Bitcoin Stack Exchange, one of the core developers Luke Dash Jr. runs one such node, with IP address
188.8.131.52. You can check if your transaction was relayed or not by visiting blockchain.info and searching for either the sending or receiving address or the txid.
Simply relaying the transaction isn’t enough to get it confirmed, the transaction might need to be relayed over and over until a miner will pick it up and confirm it. Conversely, if you need the transaction to be confirmed urgently and the transaction hasn’t been relayed you can try signing the transaction again but this time adding a higher fee. Coinb.in offers great tools to help you sign, broadcast, verify, and create new transactions.
This issue of transactions not getting confirmed due to low mining fees set by the sender caused a heated debate when Peter Todd proposed a solution called Full RBF. RBF stands for replace by fee and means exactly what you think, one can replace a transaction with a higher fee which would confirm before the initial transaction. The issue with RBF is the fact that 0 confirmation transactions would not be reliable anymore, since the sender can simply rebroadcast a new transaction to a different address with a higher fee.
The importance of 0 fee transactions is tremendous as gambling sites, faucets, and various other bitcoin services rely on such transactions in order to process payments fast and smooth. If 0 confirmation transactions stopped being reliable then users would have to wait on average 10 minutes every time they made a Bitcoin payment. As a result, most major mining pools don’t run Full RBF, however, a new solution has been implemented in the newly released Bitcoin Core 0.12 called Opt-In RBF.
Opt-In RBF allows senders to “opt in” being able to resend the transaction with a higher fee, in other words the sender you add a flag to the transaction signaling that he may want to replace it with a higher fee later. In response, the nodes or the merchant can choose to either accept the transaction or not. In this case, sites that do value 0 fee transactions can simply wait for the transaction with RBF flags to confirm before crediting them.
If you are an Electrum wallet user, since electrum 2.7.1 you have an option to opt in your transactions to use RBF. Go to Tools > Preferences > Fees > Enable Replace-by-Fee. This will open up a new option on the send tab which will have a tickbox saying “Replaceable”, tick that when sending coins. The transactions you sent this way will be marked as replaceable, you can increase the fee by right-clicking and choose “Increase fee”. You can mark a transaction as final when increasing the fee, doing this will make you unable to increase the fee again.
If your transaction isn’t confirming it is most likely because the miner’s fee is set too low. First check that the miner’s fee specified is higher than the minimum relay tx fee which is 0.0001. If it is, then make sure that the transaction properly propagated through the network by checking block explorers like blockchain.info or blockr.io. If the transaction doesn’t displays on the block explorers and shows as having 0 confirmations on your wallet or local node, then use Coinb.in to rebroadcast a transaction that will get picked up by another node and relayed. If the transaction has already been relayed then unless you set the opt-in rbf flag you will have to wait it out.
The transaction will either get picked up by a mining pool and confirm, or it will simply drop out of existence and the coins would effectively return to you. To date, there hasn’t been one transaction which simply disappeared into oblivion where the coins haven’t either confirmed or returned back to the sender.
If you liked this article follow us on Twitter @themerklenews and make sure to subscribe to our newsletter to receive the latest bitcoin and altcoin price analysis and the latest cryptocurrency news.