I am running a node with an unconfirmed transaction. I tried shutting down my btc qt so the transaction would be forgotten. To no avail it keeps rebroadcasting the transaction. I am in the process of upgrading and syncing my btc qt now too. But it's taking forever to sync. What will happen if I import my keys to a software wallet, electrum? Will my electrum wallet be made whole from the unconfirmed transaction? Any suggestions? I'm not in love with running a node anymore or coinbases ability to retrieve my transaction. Coinbase was the supposed recipient. It's been two weeks.
-
2Possible duplicate of How do I get rid of an unconfirmed transaction on Bitcoin Core 0.14.1? – chytrik Oct 19 '19 at 21:16
-
If you once provided "zapwallettxes" parameter to bitcoin-qt, it would start rescan process, this would be more tricky if you had pruning enabled... – Chris Chen Oct 20 '19 at 14:53
-
It's possible to make your own node forget the unconfirmed transaction, but the process would be a little complicated: https://en.bitcoin.it/wiki/Fee_bumping#Bitcoin_Core_GUI You would need to temporarily break connectivity. You also have to be sure that the newer transaction is spending same coins with the older transaction, thus the two transactions would conflict with each other. You are still not able to make every node on the network to forget the unconfirmed transaction transaction, that's why you should do such "double-spend". – Chris Chen Oct 20 '19 at 14:54
-
Should I export my keys to a software wallet, like electrum? How do I actually do the double spend? Can you refer a link or bitchute channel? Or something, lol. It's been two weeks and I'm kind of getting worried about coinbase. That's who the transaction was to. Do you know if they offer any customer service to remedy this? – dave Oct 20 '19 at 16:14
2 Answers
It's not possible to remove your transmitted transaction from the network.
Even if you shut down and clean your own local client, other clients around the world have it in their mempool. That's why your local client reflects the balance minus the amount you sent, even though it's not confirmed. That's how it's supposed to work, Bitcoin TX's are supposed to be irreversible even before being mined.
So, Bitcoin does not have a TX revocation network message available.
Only thing you can do is, before this unwanted TX is confirmed, to use another client, which either didn't see your TX or allows you to craft TX's and broadcast them, to submit a new transaction containing a much higher fee and same UTXO's. (Double spending on purpose.)
This new TX will cost you the fee, but if you set your own address as beneficiary, the funds will return to your wallet and the old transaction will get discarded by the network as a double spend. This higher fee is your cost to revoke the old unwanted TX. All this has to be done before the old TX is confirmed in a block.

- 646
- 3
- 8
-
Do you recommend a client/wallet that won't rebroadcast the tx? I don't want to be too much of a bother but could you refer a link so I can get back my satoshis. Any help would be appreciated. Thanks. – dave Oct 20 '19 at 17:05
-
You can use Bitcoin Core itself to create a raw transaction. Then you send the funds to yourself using a bigger fee: https://stackoverflow.com/questions/38493893/heres-how-to-send-raw-transaction-btc-using-bitcoin-cli-command – Jose Fonseca Oct 20 '19 at 19:23
-
According to your description (having problems while syncing full node), I wonder if your "unconfirmed transaction" is really unconfirmed? Is it already confirmed, or discarded (due to double-spending etc)?
The first problem: "stuck" 0-confirmation transaction
First of all, replace-by-fee is there to deal with "low-fee stuck transactions" problem, you would be able to bump fee with ease if the transaction had RBF enabled.
If your stuck transaction is not so urgent, you may just wait for the mempool to be cleared naturally, then your transaction will finally be confirmed, since the mempool is not so crowded (like old times in 2017) nowadays.
Just watch the last "Mempool size in MB" chart here: https://core.jochen-hoenicke.de/queue/#24h
If you want to "accelerate" or "revert" this transaction, you have two options.
The first option: you may contact a mining pool which provides "transaction accelerating (prioritising)" service, like Poolin or BTC.COM. However, this option can be expensive, and, there won't be any refund.
The second option: "double-spend" by yourself with Electrum, which is usually much cheaper than transaction prioritising services mentioned above, but a bit complicated.
Find out the previous transaction(s) which the stuck transaction is spending from. You may use the
getrawtransaction STUCK_TXID true
(replaceSTUCK_TXID
with your own stuck transaction ID) command in debug console of Bitcoin Core, or just query it on an online block explorer like https://blockstream.info.Blockstream explorer shows previous outpoints clearly, where the outpoint is represented in
TXID(long alphanumeric text string):INDEX(number)
format. For example: this transaction spent 2 previous transactions, which have TXIDs of00f5854cebdcd318edd325ab07e4157964f225a659302f3f5949ffe07020db4e
and6d4a34592200324f716a92d8d84db8c85bc97189610b1d4bee4fcb7d56713857
Copy raw transaction data of previous transaction(s). You may simply double-click each transaction showed on Bitcoin Core GUI in turn, to find them by transaction ID, and then right-click ->
Copy raw transaction
.You may also use the
getrawtransaction PREVIOUS_TXID
command instead, you need to run this command separately on eachPREVIOUS_TXID
, if multiple previous transactions were spent.Create a new Electrum wallet on an offline device, then choose the
Import Bitcoin addresses or private keys
option.Import your private keys to Electrum. The wallet won't sync, because there's no internet - that's fine, because we don't want Electrum to fetch back the stuck transaction.
Import the previous transaction(s) by clicking
Tools
menu ->Load transaction
->From text
.Click the
View
menu ->Show Coins
to show theCoins
tab. Then switch to theCoins
tab, select all of them, and right-click ->Spend
.Of course, if you are sure about exactly which coins were spent, you won't need to spend all available coins this time, which could reduce the fee cost a bit - but this situation is relatively rare. To keep yourself from off-by-one human errors, you'd better just spend all of them.
Now, you are about to construct a double-spending transaction which will send these coins back to your own wallet, or any other address(es) you want, by clicking
Preview
button. This time you should choose a higher fee rate (sat/Byte), at least higher than the stuck transaction.By the way, it is highly recommended to enable replace-by-fee on this transaction, in case of further fee-bumping.
Electrum is able to show QR code of this double-spending transaction. Use another online device to scan it with Electrum, then it could be sent out. You may also try to send it directly after reconnecting the device to Internet. If the stuck transaction has not yet expired on the Electrum server you are using, broadcasting the double-spending transaction might face some errors. You may try to broadcast it through other methods, eg. block explorers, and
sendrawtransaction
of Bitcoin Core.
The second problem: Bitcoin Core full node is painful to sync
First, the performance bottleneck usually lies at frequent I/O operations on the chainstate
subdirectory, which stores the UTXO database, especially the data directory was placed on an HDD (which is supposed to make the situation worse if the HDD is SMR).
Second, currently, I'm personally not in favor of pruning, because almost all historical transaction history (which is exactly what the gigantic block chain contains) is discarded, thus rescanning becomes limited within recent blocks only. Rescanning happens if you are importing keys/addresses/wallet.dat, or zapwallettxes
. In the future, this problem might be finally relieved by some improvements.
If your computer has plenty of available RAM, you may allocate more than 6GB (depends on historical peak UTXO size) of RAM for the database cache (see the Options
window) of Bitcoin Core. This tweak effectively removes the I/O bottleneck. (well, you may still face this problem if you are catching up from some date before, you may cat
(Linux/Mac) or type
all files (use the *
wildcard) into /dev/null
(Linux/Mac) or nul
(Windows) to force the OS to read them once, then they could be cached into the RAM)
If you have both HDD and SSD, you can configure the blocksdir
parameter to migrate the gigantic block chain to a cheap-but-slow HDD, while keeping the frequently-accessed chainstate
etc on a fast-but-expensive SSD.

- 944
- 4
- 15
-
Thank you for your answer. You offer way more than coinbase customer support (who my stuck transaction is to). Is there anything they can do? They barely return my emails. I told them the could debit my account the fee to get the block confirmed. I don't think they even understand what's going on. I'm worried they are going to change my btc coinbase receiving address. It's going on 2 weeks now. At this point I wouldn't recommend coinbase to anyone. – dave Oct 21 '19 at 00:04
-
I've done transactions with coinbase before but never had a problem. I'm just so disappointed with there understanding of everything. They are basically turning me into a programmer for one transaction. They should have to give me a job as head of engineering after this. People respond to me on this platform more than coinbase does about my stuck transaction. And they are supposed to be a billion dollar company. Than stack exchange is a trillion dollars company. I've lost faith in even getting this transaction back and am starting to think fiat has its benefits. Coinbase is awful. – dave Oct 21 '19 at 00:12
-
I have checked the mempool and block size status just now, it seems that even the transactions which paid the lowest 1sat/Byte fee could already have been confirmed. Is your "unconfirmed transaction" really unconfirmed? If you still have problems with your full node, you may check that "unconfirmed transaction" on an online block explorer. – Chris Chen Oct 21 '19 at 02:57
-
Pointing fingers at Coinbase or someone else cannot solve the problem. Theoritically, Coinbase could do the "child-pay-for-parent" (Electrum provides this feature directly to both sender and receiver, but it's more expensive than RBF however) trick to bump the fee, thus prioritising the stuck transaction. However, they might have their own wallet management policies which may sacrifice convenience and flexibility in exchange for security. – Chris Chen Oct 21 '19 at 03:00
-
If coinbase provides a new depositing address to you, this should be totally fine, Coinbase guaranteed that "all addresses that have been generated for your account will remain associated with your account forever" here: https://support.coinbase.com/customer/en/portal/articles/2276500-why-did-my-wallet-address-change- – Chris Chen Oct 21 '19 at 03:13
-
Blockchain.info doesn't recognize my hash. But my btc qt wallet is still debited. I'm upgrading now. And it's taking forever to sync. I know people don't like me criticizing coinbase but the day before there was no problem. I'm on my 15th day now. No result. No email or correspondence from them to eliviate my concerns or remedy they can offer. So I just want to make it aware to the crypto community about coinbase. – dave Oct 21 '19 at 11:56
-
I will provide a bounty for anyone who can remedy this situation for me. I made the same offer to coinbase. No response though. Thank you. – dave Oct 21 '19 at 12:18
-
You may lookup your address balance (and related transaction history) on an online block explorer. It sounds harsh, but, I don't think it's impossible - maybe your bitcoin wallet had already been compromised, thus your depositing transaction became an invalid double-spend which was discarded by the network, and, you didn't notice that because your full node had problem to sync. – Chris Chen Oct 21 '19 at 18:35
-
Once you have confirmed your bitcoins are still on your own addresses, you can simply import the private key to other wallet (like Electrum) to send these coins to anywhere you want. – Chris Chen Oct 21 '19 at 18:42
-
The day before this fiasco I made a transaction with coinbase. No problem. The next one, nothing. I can't even find the hash on blockchain.info. I am upgrading my node now and is taking forever to sync. It's been more than two weeks. What's the longest time a block sat in the mempool? I still want the transaction to go through. On the dread forum there is already complaints about coinbase. Now the cleaner can know. – dave Oct 21 '19 at 22:15
-
-
Although most nodes (especially the ones used by mining pools) have a expiration time, there's no guarantee that an unconfirmed (0-conf) transaction will be forgot by every node. As long as the transaction is still valid, it's still possible for someone who didn't discard this transaction to rebroadcast it (or to directly include it in the block, for miners/mining pools). – Chris Chen Oct 21 '19 at 23:17
-
Recently the mempool usually clears within one day. So, it's quite unusual for me that a transaction could wait for such a long period to confirm. You may copy the raw transaction from Bitcoin Core, then you can rebroadcast it with a block explorer like blockchain.info (or with the sendrawtransaction command). However, to ensure your wallet has not been compromised, you'd better check the balance and transaction history of your previous address on a block explorer. (you may do this with Tor browser to protect your privacy) – Chris Chen Oct 21 '19 at 23:35