If you’re reading this post I assume that like many others, you sent a bitcoin transaction and was kind of confused as to why it’s still listed as “unconfirmed” or “pending” after a few hours or so.
I mean Bitcoin transactions are supposed to be instant right?
In this post I want to try and explain in a very basic way how a Bitcoin transaction works and why the fee that you attach to each transaction has a crucial role in how long it will take the transaction to go through the network.
Here’s what happens when you send Bitcoins to someone
Whenever you send someone Bitcoins, the transaction goes through different computers running the Bitcoin protocol around the world that make sure the transaction is valid. Once the transaction is verified it then “waits” inside the Mempool (i.e. in some sort of a “limbo” state).
It’s basically waiting to be picked up by a Bitcoin miner and entered into a block of transaction on the Blockchain. Until it is picked up it’s considered an “unconfirmed transaction” or a “pending transaction”. A new block of transactions in added to the Blockchain every 10 minutes on average.
However since there are so many transactions lately due to the price increase, and a block can only hold a finite amount of transactions, not all transactions are picked instantly. So you need to wait for a certain amount of time until a miner decided to pick your transaction out of all of those sitting around in the mempool.
Once your transaction is included in the block it receives its first confirmation and it’s no longer pending. After another block of transactions is added it will get another confirmation and so on….here’s a short video explaining this:
How can you make sure your transaction will get included in the next block?
Simple. By adding a big enough mining fee to it. You see one of the ways miners get paid for their work is by collecting the fees on the different transactions. So naturally they would prefer to include the transactions with the highest fees first. If your fee is high enough – your transaction will go through faster.
How can you tell how much is the right fee?
Fees are calculated by the size of the transaction. Every transaction has a size, just like a file size. The size depends on many factors that I won’t go in to at the moment. The fastest and cheapest transaction fee is currently 60 satoshis/byte. So if, for example, your transaction is 257 bytes, you will need to pay 257*60 = 15,420 Satoshis as a transaction fee in order to be included in the next block.
So now you’re probably asking “How can I calculate my transaction size?”
You can’t, at least not without extensive knowledge of how Bitcoin works. Your wallet is supposed to do this for you. Most wallets today will either automatically add the required fee to get the transaction confirmed as soon as possible or will let you choose from a variety of fees according to the requested confirmation time (e.g. fast, medium, slow).
However, since I wouldn’t want to leave you hanging I decided to give you an overview of how the most popular wallets around handle their fees:
Coinbase – Coinbase pays the miner fees (typically 0.0003 BTC) on external transactions in order to ensure these transactions propagate throughout the bitcoin network quickly. For very small transaction amounts you may be prompted to pay the transaction / miner fee. (source)
Blockchain.info – The wallet implemented a dynamic fee structure.Dynamic fees work to detect changes in network volume and will raise or lower transaction fees accordingly. This means that the same transaction may require a higher fee during a period of network congestion, or a lower fee if sent during a period of decreased activity. If you set a custom fee a warning will display if a custom fee is thought to be unnecessarily high or dangerously low. (source)
Electrum – Has the option to set dynamic fees (similar to Blockchain.info) or set your own fee through the tools -> preference tab. (source)
Greenaddress – GreenAddress is the first Bitcoin wallet to include a replace-by-fee option. With it, users can increase fees on their transactions and increase the likelihood a miner will include a transaction in a block.
Clicking on the “bump fee” tab opens a mini-menu. On top of the menu, text displays how fast the transaction is expected to confirm. The menu allowed me to bump the fee: times 1.5, times 2 or times 3.
if a transaction is not expected to be mined in the first available block because the fee is too low, the mini-menu offers users the option to include a fee big enough to have the transaction included in the next two, three or six blocks. (source)
MyCelium – Mycelium does give you some control over the fee. In Settings/Miner Fee, you can select Standard, Economic, or Priority for (I think) 0.1mBTC, 0.01mBTC, or 0.5mBTC, respectively, per mB. (source)
Bitcoin QT -Bitcoin Core will use floating fees. Based on past transaction data, floating fees approximate the fees required to get into the `m`th block from now. Bitcoin Core will cap fees. Bitcoin Core will never create transactions smaller than the current minimum relay fee. Finally, a user can set the minimum fee rate for all transactions. (source)
TREZOR – Fees will be automatically calculated for you by the myTREZOR wallet. (source)
There’s a very helpful resource created by 21.co that shows how many Satoshis/byte you’ll need to pay in order to get included in the upcoming blocks. Here’s an example of the current situation inside the Bitcoin network:
For each Satoshi/byte category you can see the number of unconfirmed transactions as opposed to the transactions that went through. For example, 15405 transactions with a fee of 11-20 Satoshis/byte went through the system in the last 3 hours as opposed to 1533 that are waiting for confirmation.
On the right hand side you can see the estimated number of block confirmation / minutes you’ll have to wait until your transaction gets included.
What happens to transaction that don’t get confirmed ever?
Basically transactions stay in “limbo” (i.e. the mempool) until they are included in a block. However, if a transaction stays inside the mempool for too long the different computers holding it (Bitcoin nodes) may just drop it from their system. In this case the transaction will be canceled.
Some wallets may try to rebroadcast an expired transaction and therefor it will stay inside the mempool for a long time until some miner decides to have pity on your soul and include it 🙂
VIA BTC offers a transaction accelerator service
Just recently VIABTC (one of the largest Bitcoin mining pools) started offering a new transaction accelerator service. With the Transaction Accelerator for delayed transactions, users can submit any TXID (Transaction ID) that includes a minimum 0.0001BTC/KB fee to ViaBTC. The pool will then prioritize to include the TX in the next block when possible at no extra charge. A maximum of 100 TXs submitted can be accelerated every hour.
Important: Transactions are received on a first come first served basis so try to submit yours at the beginning of every hour to get into the queue before it fills up.
So I hope this clears things up a bit. Next time before sending a Bitcoin transaction make sure to add the appropriate fee in accordance to the wallet you are using.
If you have any more questions or insights about Bitcoin fees feel free to leave them in the comment section below.
I have 2 transactions being confirmed and delivered from my account (f4f183a7-8e11-45e0-a00b-8ebdeeff551e,695119aa-f698-43b1-999b-c8dfcfa21d1c). However, the receiver told me they are still pending?Thank you.
I have 2 transactions pending . I have send the requested amount and fee from my blockchain wallet,but i have not received the btc. Already been 5days.
FIRST TRANSACTION
December 23 2018 @ 1:33 PM
To: 18FZ6KDj2JREXC2AejzQ9UsE8d1td6y2TT
From: My Bitcoin Wallet
$12.60
0.00335764 BTC
Description
Add a description
Value When Sent
$13.59
Sent From
1MbVmP6x7EQWRC1SQpQG48k4r8jctaJoLg
Received By
1JSUGuezP2hew7DbgVKASfjZKLxgKdwm3n
(Change Address)
18FZ6KDj2JREXC2AejzQ9UsE8d1td6y2TT
Status
Transaction Confirmed
Transaction Fee:
0.00000764 BTC
(
$0.02
SECOND TRANSACTION
December 22 2018 @ 11:05 AM
To: 3KowETdG9eF2tmw1UFU718Ce4Ac8dH4eaL
From: My Bitcoin Wallet
$18.91
0.0050404 BTC
Description
trade
Value When Sent
$19.62
Sent From
1HDdHKs9GJswRufRYM5b5mjHNUxhcweZXs
1Q5xW8A6gZojg1ymkJirsfksK34kDBDy5Z
Received By
3KowETdG9eF2tmw1UFU718Ce4Ac8dH4eaL
1MbVmP6x7EQWRC1SQpQG48k4r8jctaJoLg
(Change Address)
Status
Transaction Confirmed
Transaction Fee:
0.0000504 BTC
(
$0.18
Any help to claim the promised btc?
Hi Rina,
For future reference, you only need to quote the transaction ID (txid) of a particular transaction in order to link to it. It seems to me that the first transaction (txid: https://www.blockchain.com/btc/tx/d4042b88bdaa5482cd02931bc4a267418c7e03a8fd3fbeb905464000e5ea4323) has been confirmed… and so was the second one (txid: fd5d27951cbd9628fb3fc5352ae8c16d41a6b70ac55224f753664337af03a87a).
Both were confirmed quite some time ago, around 900 to 1100 blocks ago from the time I’m writing this.
So, did you send these coins to a wallet which you yourself own? If so, you should see the amounts in that wallet. If you sent them to a wallet owned by someone else, like an exchange wallet, then they should also see the amounts deposited. Ask them to check if this is the case.
I made my first transaction from coinbase account (BTC) to my Electrum wallet (mBTC). I messed up by putting the receiving amount in mBTC but the sending amount from coinbase was BTC.. Now under my receive tab in my wallet is shows a large amount still pending. Of course transaction is complete and confirmed. How can I get that pending money?? Please help!
Hi Willett,
I assume by now that the pending status has resolved to confirmed. Once you send a transaction (or Coinbase sends one on your behalf) then it enters the mempool. This means that the transaction has propagated across the Bitcoin network of nodes but hasn’t yet been mined into a block. Once it gets mined, it will be confirmed and spendable from your Electrum wallet. Hope that helps, if anything is still unclear or unresolved, please respond with a transaction ID (txid) and I’ll look into it.
Address
3D4xTR6gtDfucLaeLHbm89BWQeMyDQWDi1
Approximate value
~ZAR 216.04
Transaction
2f53505a9d12f0f2484c62f76d7829421abd5e5094d0b0d52d0570db54f3e57e
Description
Sent Bitcoin to 3D4xTR6gtDfucLaeLHbm89BWQeMyDQWDi1
Timestamp
I HAVE SENT MY BITCOINS ONAddress
3D4xTR6gtDfucLaeLHbm89BWQeMyDQWDi1
Transaction:2f53505a9d12f0f2484c62f76d7829421abd5e5094d0b0d52d0570db54f3e57e
Approximate value
~ZAR 216.04 (104,798 ZAR/BTC)
Sent Bitcoin to 3D4xTR6gtDfucLaeLHbm89BWQeMyDQWDi1My account still says pending buy in my blockchain even though money was taken out of my account. Its been 1 week now. Any help to get back my bitcoinsAddress
1DzQSn7SPCGatQkRrfis4Ub7XpepzPoEDj
Approximate value
~ZAR 456.70 (95,252 ZAR/BTC)
Transaction
c0cfaa163427aeaca5eaa857c893325f21cb62727941e9e3715d21281e0297d1
Hi Thabo,
OK so in the first transaction (2f5…) I see that 0.00206149 BTC (about R200) was sent to the 3D4x… address. So no problems there, at least in terms of Bitcoin’s blockchain.
Why your exchange or shop says this transaction is still pending I cannot say. Sounds like an error on their side.
I see the second transaction (c0c…) also went through successfully.
So it seems everything is fine on the Bitcoin blockchain. Who are you trying to pay and are they still claiming not to have received payment?
My account still says pending buy in my blockchain even though money was taken out of my account. Its been 1 week now. Any help?
Hi Sean,
OK, so is this your blockchain.info wallet?
You tried to buy Bitcoin there but it failed?
What currency were you using to buy BTC?
It’s probably best to contact their support too. While I may be able to figure out what went wrong from your answers, there won’t be anything I can do to fix it if the problem is on the Blockchain.info side.
Yes . This is my Blockchain wallet account. I bought bitcoin on the 2nd . The money came out of my account the following day but it stayed saying pending buy in Blockchain. I used dollars to purchase it . The email they have support.blockchain.com does not work either .
Hi Sean,
I see, that’s concerning. When you say the email doesn’t work, does your email bounce back? Or have they just not responded yet?
In either case, I recommend also reporting your issue to their Twitter accounts:
https://twitter.com/blockchain and https://twitter.com/AskBlockchain as well as their Facebook page: https://twitter.com/AskBlockchain
yes. It bounces back saying email is invalid
Hi Sean,
I see. Which email address are you sending to exactly?
I “received” BTC to my Coinbase wallet on 7/7/2018.
Still showing as pending.
It had 92 confirmations at one point.
https://www.blockchain.com/en/btc/address/3GtBJagv4XhKKkmjaEvqoYxkWHwg3ZXAtG?sort=0
Does this also show the BTC going out?
I did not send anything from my account.
Coinbase just said they are working on it, but no further replies.
Hey Mark,
OK, I don’t see any transactions to that 3GtB… address before 2018-07-08 – of course, this could just be a time zone issue.
What I do see is 0.575… BTC sent to the 3GtB… which was then removed to a Bech32 address (bc1qknq) about 45 minutes later…
Are you even using a Bech32 wallet? These are still quite specialized. You’ll know if you are because your addresses will all start with “bc1.”
If you didn’t withdraw the money, then the most likely explanation here is that your Coinbase account is compromised and a hacker has withdrawn your money to their own address, soon after you deposited it.
My advice is to not send any more Bitcoin to Coinbase, or anywhere else, until you figure out exactly what’s happened.
Are you using 2 Factor Authentication with your Coinbase account? Has anyone had access to your emails?
Let’s see what Coinbase have to say… but in the meantime, proceed very cautiously and try to avoid logging in to any sensitive sites, like online banking. Hopefully I’m wrong and there’s an innocent explanation here, but this seems like the most likely scenario to me based on the information you provided. Let me know if you get any more info…
Thanks Steven.
I certainly appreciate you taking the time to look at this for me.
On 7/10/18 I finally heard back from Coinbase after another call.
On that e call the rep told me:
“everything they were doing was to ensure the integrity of my account”,
but he would escalate the issue.
The final result was that I had sent the BTC to my USD Wallet which used to auto-convert for me. A previous conversation with CB support rep assured me the BTC wallet address and the USD Wallet address were the same so I could send funds there.
However, Coinbase support told me this feature had been deprecated on June 15th, 2018.
I would still receive the funds but they would not be released until 7/17/18.
I’m not happy about the wait and am somewhat concerned about price fluctuations,
but this is better than a compromised account.
Hi Mark,
OK great, I’m glad to hear it! Having your funds delayed is a much, much better outcome than having them stolen!
Not so great on Coinbase’s side to not make it more obvious that this feature is no longer in use, and their support can be slow…