I don't make a lot of trades each week so I keep most of my crypto transactions to a minimum, but in a recent Bitcoin beginners class a student asked me what happens when a Bitcoin transaction fails or gets stuck? Most of the time a cryptocurrency transactions goes through just fine, but every once in a while you get a Bitcoin transaction that gets stuck in the system, fails, or seems lost. Of course the first thing you do is panic!
No... don't panic you fool!
While this is no traditional bank, there are still options for a stuck or failed transaction that seems lost in the void. If you keep asking yourself "Why is my transaction stuck?!?", then this is the simple explanation you have been looking for with a few simple tips on how you might fix the situation.
Why Do Bitcoin Transactions Get Stuck?
There are really only a few situations where a Bitcoin or cryptocurrency transaction will get stuck or will fail. If you have a VPN, an aggressive firewall, or a TOR, then it might play a part in disrupting your connection to the network for sending your transaction. Similarly, if you are on a WiFi network that is not very strong or perhaps a weak mobile signal this could also have an affect, but the real culprit is low transaction fees.
Most wallets and software that we use sets transaction fees dynamically, so when you send a transaction they are calculated for you and shown on screen. Some wallets have settings for sending "economy" transactions with lower fees, while others don't let you choose. Either way, if you send a transaction that has fees that are too low it may not get picked up by a miner and processed into a block. This is one of the main causes of a stuck or failed transaction.
Miners will incorporate transactions into their block based on the fee and the size of the data package. This is measured in satoshi per byte or sat/B. The bigger the fee the more likely that a miner will include your transaction. This combined with a clogged mempool (the log of all transactions waiting to go through) can make for a nightmare if your transaction gets stuck.
Here are 6 tips about stuck or failed Bitcoin transactions that I have found to be super useful in figuring out and solving network transaction issue.
1. Increase Your Fees
Since the real problem is that the initial fees sent for the transaction may be low, try increasing the fees before you send. Of course, if you have ALREADY sent your transaction you get to skip this step!
Many wallets have settings for your fees so make sure that they are not set to the lowest setting. If you are sending ETH make sure that you have enough Gas in your account to send and that you are setting a high enough Gas amount. I had some issues with this when I was trying to buy CryptoKitties for the first time ( you can read about that here). If you can't set dynamic fees for your transactions or are having continual problems you might want to try switch wallets or services to see if that is the real issue. To calculate things like Bitcoin fees you can use a site like Estimatefee.com to easily see what the fees are like and calculate your own.
2. Check Your Transaction
First thing to do is to check that you actually made a transaction. If it "failed" in your wallet or software this may mean that the transaction didn't even take place. Each successful transaction you initiate will generate a Transaction ID or (TXID) that looks kinda like this:
While most programs and websites will show you some limited information about your transactions, you can use this TXID on a "blockchain explorer" to find complete info about the transaction. This is essential for investigating why your Ethereum or Bitcoin transaction might be pending or failed. You can use a popular block explorer like Blockchain.info for this. Also, if you have to contact customer support of your wallet or platform, the TXID is one of the pieces of information they will ask you for.
3. Be Patient
I know this sounds funny, but so many people start to panic if their transaction does not go through instantly. We are still in the infancy of this industry and consistency is slowing taking hold every day. Many times you just need to wait it out a bit longer than your initial expectations. If you have checked and made sure your transaction actually did go through using step 2 and it has now been a while maybe your fee was just too low for your transaction. I would wait at least a few hours depending on how backed up the mempool is which you can view on Blockchain.info as well.
4. Replace By Fee Option
This is a newer feature that some wallets have (including Electrum and GreenAddress) that allows you to bend the rules a bit when it comes to transaction protection on the network. Typically if you sent the same transaction to the network, but just with a higher fee it would be rejected as it sees the same Bitcoin is tied up in your original low fee transaction making it look like a "double spend" (which is where the same Bitcoin is spent twice, there are protections in place for this). An RBF or "Replace-By-Fee" transaction tells the network that you may be sending the same transaction later on but with a higher fee. This RBF protocol allows you tell the network in advance that you might make changes. Of course this is not an option on many platforms, but it is a really easy option if you have it already!
5. Try A 3rd Party Service
While not my favorite option, you might look into trying a 3rd party service to help you "accelerate" your transaction. Large mining pools may offer to help out and one of the largest, ViaBTC, even offers a service called Transaction Accelerator, that will put their roughly 7% hashing power in your corner and get your transaction processed sooner than later. They have a free and a paid option for this, but I have never had to use either so I can't attest to how good they actually work. ViaBTC is a well known and long standing pool so you at least know you are dealing with a reputable company.
6. Child Pays For Parent
One of the last tips is an advanced technique called "Child Pays For Parent". I am not going to detail the entire process here as it is long and involved. I found a really great article that walks you through it here, but basically you create a "child" transaction that is tied to the the original with a fee that covers increases the overall bundle of the two's sat/B ratio so it is picked up by a miner. You are packaging two transactions together to make them look more appealing. This should only be used as a last resort in my opinion and only if you are completely comfortable with advanced techniques. I do not recommend this for newbies that are not very tech savvy.
Hopefully by now your transaction is no longer stuck or you realize why it failed in the first place. If your wallet or platform keeps broadcasting the transaction you sometimes just have to wait until they stop to release the funds. No one wants to hear this, but it can be the unfortunate reality in rare occasions.