45

I've sent a transaction from blockchain.info, but accidentally included too little fee. What can I do to cancel the transaction or speed up the transaction's confirmation?


This is a complementary question to Why is my transaction not getting confirmed and what can I do about it? which answers the question's broader implications and proposes mitigation mostly focused on Bitcoin Core.

0

10 Answers 10

38

this is a generic answer applying to "light" wallets - I don't know much about the blockchain.info-wallet


There are several approaches that may work, I've tried to list all the methods I know below. I don't know how the blockchain.info-wallet works, but probably I would try things in this order:

  • Wait for the transaction to go through (see 0a below)
  • Do a "CPFP" (see 2 below)
  • Ask the pools for help (see 3 below)
  • Wait for the transaction to be forgotten and retry sending (see 0b below)
  • Try to do a double spend (see 1b below)

0) Wait it out.

0a) Wait for the transaction to go through. Most likely there will be free capacity in the network after some hours, some days or a week. In periods with free capacity, even low-fee transactions will pass. Rarely one has to wait longer than the next Sunday evening.

0b) Wait for the transaction to be forgotten, and then create a new transaction with a higher fee. In some few exceptional cases (notably around new year 2017/2018 and in 2021) several weeks or even months have passed without any free capacity. The original transaction may eventually be forgotten by the network. Some wallets will then offer to create a new transaction, Mycelium will offer to delete the old transaction, and with some luck a "double spend" will be possible - though this is very unreliable as the original transaction may be purposely or accidentally rebroadcast both by the sender, receiver and any third-party.

0c) From some wallets, the most intuitive panic action is to actively rebroadcast the transaction. This probably won't help at all, and it's the exact opposite of 0b, so it's probably not a good idea

1) Double spend with a higher fee (RBF).

1a) Using the "Replace by Fee"-protocol - this probably does not apply to you, but it's arguably the best way to "unstick" transactions. If the original transaction is marked up with "RBF allowed", most of the network will accept a replacement transaction with a higher fee. Not all wallets supports setting this flag, and even fewer has RBF turned on by default - for a good reason, the RBF protocol allows an unconfirmed transaction to be reverted, so using the RBF-flag is a terrible idea if you want someone to trust a zero-conf transaction. (the RBF-feature has been removed from most Bitcoin Cash software, as they deem it both "harmful" and "not needed").

1b) Doing RBF/"Double spend" even if the original transaction was not marked as RBF. Miners (and nodes) are supposed to ignore the double spend transaction - but you may be lucky. You may need to use specialized software to perform such a double spend. It may work, either because the original transaction has ended up in a "ghost-like" state where it's known by some nodes but not others - maybe some miners are unaware that you're doing a double-spend - or it may work because some miners deliberately accepts double-spent transactions as they can earn more fees on it.

2) Child Pays for Parent (CPFP). if a new transaction is made with a high fee, building on top of the old transaction, most of the miners will include the whole chain of transaction in the block they're mining at.

2a) Get the receiver of the funds to spend the funds they received on a new transaction, with high fee. This may of course not always be possible, but ...

2b) If not all the money in the wallet was spent, the transaction will typically include two outputs, one "change UTXO" that goes back to the wallet. If you can spend this one with a higher fee, the transaction may go through faster. Some wallets have a menu option for "accelerating" the transaction through "CPFP". In some wallets one can manually decide what UTXOs to include in the transaction. One can also send all the funds in the wallet i.e. back to an address belonging to the same wallet, but the fee for that may become excessive as the wallet may be filled up with "dust" making such a transaction big and costly. Electrum does support spending some specific UTXO, and Mycelium has the "CPFP" acceleration button. If you can take out a backup seed phrase from your wallet, it can most likely be used in Electrum or Mycelium.

3) Ask the pools for help. viabtc has their "transaction accelerator" at https://pool.viabtc.com/tools/txaccelerator/, antpool.com also has some similar service, there even exists services where one can pay by credit card to get the transaction prioritized.

1
  • 1
    Arrays start at 0. Very good. Commented Dec 18, 2020 at 22:33
4

It looks like your transaction finally went through. I've had a transaction take longer than 24 hours due to not including a large enough miner's fee

And currently there's no way to cancel a transaction after it's already sent, even if it's still unconfirmed. So it's a good idea to triple check the amount you're sending, the transaction fee and that it's going to the correct address.

I think it would be helpful if bitcoin had this feature in the future: cancelling transactions while they're still unconfirmed

2
  • I've merged the question this answer was posted on originally into this more canonical topic. Please check if you should edit it to adapt it to this topic.
    – Murch
    Commented Jun 7, 2017 at 16:36
  • Replace-By-Fee is this feature, but blockchain.com wallet doesn't have it seems
    – Toolkit
    Commented Feb 9, 2021 at 11:10
4

Basically, you can double spend the input and add transaction fees. Firstly, this sounds crazy but it works! Somebody also made an introduction video on how to do this: https://www.youtube.com/watch?v=ycq7O48aPvQ

2
  • I've merged the question this answer was posted on originally into this more canonical topic. Please check if you should edit your answer to adapt it to this topic.
    – Murch
    Commented Jun 7, 2017 at 16:42
  • u cant as balance already reduced Commented Nov 21, 2017 at 12:53
4

I want to delete my unconfirmed transactions from Blockchain.info?

Unconfirmed transaction means that your transaction is being broadcast through the network until some miner write it down into a block. If the unconfirmed transaction is not confirmed into the blockchain after some days, it is deleted from the network.

Nowadays, there is no easy way to delete your unconfirmed transaction. Unless you broadcast it again with a higher fee. In that case, the one that enters first into the blockchain (probably the one with higher fee) will automatically delete the other one from the unconfirmed pool (after a propagation delay).


Is there any way I can recover my bitcoins?

While your transaction has not being written into the blockchain, it means that you haven't spent your bitcoins yet. Theoretically, you could still write a transaction into the blockchain spending such bitcoins the way you like it.

However, the problem is that not the entire network accept that. Probably, you would have to broadcast it via the console of a bitcoin client.

0
4

If you're one of the recipients of the transaction (i.e. via change output), you can create a child-pays-for-parent transaction by spending the unconfirmed output in a new transaction with a sufficiently high fee.

From what I hear, you can specifically select the inputs for transactions on blockchain.info, so it should be easy enough to craft a transaction to that end.

If you're comfortable doing so, you might want to try to export the private keys corresponding to the unconfirmed transaction and export it into another wallet in order to create a doublespend transaction to recover the funds.

Finally, you'd always have the option wait it out, or to get in touch with blockchain.info's customer support.

Note: I've never used blockchain.info myself, so please provide feedback to improve this answer if you have better insight.

3

I am in the same situation. I contacted my wallet provider and this was the response.

Hello,

The bitcoin mempool is currently backlogged, which is causing a delay with transaction confirmations. You can follow it live on this chart, which shows all pending bitcoin transactions on the bitcoin network - https://blockchain.info/charts/mempool-count. This is impacting the entire bitcoin network, not just Blockchain.info.

An unconfirmed transaction will eventually be accepted into a block by whichever mining pool mines the block, or the transaction will eventually be rejected by the bitcoin network after an estimated one to seven days. If it eventually is rejected, then the funds would remain at the bitcoin address they were sent from. The only thing you can do at this point is to wait and see if the transaction is accepted into a block. Like all wallet providers, Blockchain.info has absolutely no control over this, and cannot expedite transactions. This is always dependent upon the bitcoin network of miners, which we are not a part of.

Blockchain.info wallets utilize dynamic fees. The following link explains how this works - https://blog.blockchain.com/2016/03/16/introducing-dynamic-fees/.

4
  • I appreciate and i think the best thing to do right now is to wait and see what will happen Commented May 11, 2017 at 19:05
  • Mine have now confirmed, took 4 days, so its worth waiting, chances are it will confirm soon. Commented May 13, 2017 at 11:48
  • OK so finally the answer. I've submitted a couple of low fee transactions for a test and curious how this plays out. So in case of blockchain.com which doesn't support Replace-By-Fee, i.e. reissuing a transaction with higher fee, you have to wait "estimated one to seven days" for it to be rejected. I can't find any info on rejected transactions though
    – Toolkit
    Commented Feb 9, 2021 at 11:15
  • Seems like Blockchain.info/Blockchain.com is screwed up and anti bitcoin in general. The proper way of course is not to use it at all and go for RBF wallet. There is no guarantee tx gets rejected old.reddit.com/r/Bitcoin/comments/ldzkpo/…
    – Toolkit
    Commented Feb 9, 2021 at 11:23
1

If transaction is unconfirmed you may just double spend it. It would probably require creating a transaction manually (I have used node.js with BitcoinJS for it), and then submitting it via the console of the bitcoin client. I would suggest also paying a bit higher fee (for the new transaction being confirmed before the old one) and not reusing any of source addresses used by either the old or new transaction, as double spend is easy to detect and people may not trust you.

If the point is to just make the original transaction confirmed you may just try to resend it (using console). It sometime helps as unconfirmed transactions are broadcasted by the network only for limited time.

4
  • no, is not double spent - You can see the transaction at blockchain.info/tx/… only unconfirmed after around 30 hours + the money is deducted from my balance - i cant re-send it, i cant send it again my question was how do I cancel the unconfirmed transaction and get back my coins?
    – enockofori
    Commented Jul 17, 2015 at 21:24
  • @enockofori that link doesn't work. It looks like your Tx may have dropped out Commented Jul 18, 2015 at 2:52
  • Yeah, submit a higher fee double-spend transaction. Commented Jan 15, 2016 at 18:36
  • I've merged the question this answer was posted on originally into this more canonical topic. Please check if you should edit it to adapt it to this topic.
    – Murch
    Commented Jun 7, 2017 at 16:36
1

If you have access to the core API and there is 'change' from the txn, spend the change with a high fee:

you will need

  • the stuck txn id
  • the change private key

vout is the output for the change address. Lookup the txn, the change address is the zero based output from the spend. ( if you don't know, ask - people will help)

1 Get the private key of the change address bitcoin-cli dumpprivkey <Change Addr>

2 Spend the change

this spends 1.0 BTC adjust as reqd. For your own amount - figure the change amount minus a large fee. Make sure you understand the fee will be the change from original txn minus the spend to the address. Normally protections are in place to prevent fee bloat - this method ignores them. calculate the amount carefully

bitcoin-cli createrawtransaction '[{ "txid": "the stuck txn", "vout": 1 }]' '{ "<address to send to>": 1.000 }'

you will get a result like this:

0200000001fae ... 088ac00000000

3 Sign the spend with the priv key of the change address

using the ouput from step 2 and the priv key from step 1 ...

the [] below indictaes we don't want to add any new txns into the spend (keep it simple)

bitcoin-cli signrawtransaction "0200000001fae ... 088ac00000000" "[]" '[ "<my change address PK>"]'

result will be ...

{ "hex": "020000000 ..... 8ac00000000", "complete": true }

4 Submit the txn to the network

in Step 3 we got a raw data transaction .... let's send it

bitcoin-cli sendrawtransaction "020000000 ..... 8ac00000000"

0

up until a transaction has been mined into a block it is not set in stone. therefore you can just issue a new transaction which spends the same txout as your original but which sends the funds to a different address.

would this be classed as doublespending? not technically because nothing at all has been spent until the transaction appears in a block.

this may be tricky (impossible?) to do in the standard client as it knows about the transaction you just created and so has deducted the funds in anticipation of them being mined into a block. but you can create your second transaction by:

  • downloading your private key from your wallet and loading it into a bitcoin client that knows nothing about your first transaction (note: never paste your private key into a website), or
  • manually creating a transaction using bitcoin-cli, and broadcasting it to the network
4
  • This is technically exactly the definition of a double spending.
    – tobixen
    Commented Oct 10, 2015 at 14:57
  • 1
    no. doublespending would be if the same txout went to 2 or more txins in the blockchain itself. no txouts should ever be considered spent until there is a txin corresponding to them in the blockchain. Commented Oct 11, 2015 at 7:18
  • The qt client has an option now (-zapwallettxes=2) that will reload your transactions from the blockchain and give your balance back so that you can re-attempt the transactions that didn't confirm.
    – Rag
    Commented Jan 20, 2016 at 5:57
  • I've merged the question this answer was posted on originally into this more canonical topic. Please check if you should edit it to adapt it to this topic.
    – Murch
    Commented Jun 7, 2017 at 16:36
0

The only thing you can do is to wait for the transaction confirmation, like me now. This link show that more than 120.000 transaction unconfirmed including ours https://blockchain.info/unconfirmed-transactions

1
  • I've merged the question this answer was posted on originally into this more canonical topic. Please check if you can edit it to adapt it to this topic.
    – Murch
    Commented Jun 7, 2017 at 16:31

Not the answer you're looking for? Browse other questions tagged or ask your own question.