Hey everyone. Check out this transaction: 27ef035cbeb7c35424aabde6b62a0517b680f48d99bdbe8b95cb877d094fac08
It has two inputs, both are from the same entity. The problem is that this transaction is stuck because one of the inputs (the one ending in z86t) is an unconfirmed UTXO that has several unconfirmed ancestors. Let’s call this one the "screwed_TXID."
What should the entity do to get the previous transactions confirmed? The oldest ancestor, which I believe is 837513064d77a7afafa7f67ce6f63d1fa3e435539fa72dc11a78ad6f453cca4a, is an unconfirmed coinjoin, so speeding it up isn't really an option since it's a huge transaction (viaBTC wants around $2000 for it).
Also, how about the other input (the one ending in avh5)? It’s confirmed, but since it's tied to a non-confirmed UTXO in the already broadcasted TXID, the entity can't use it in a different transaction (at least not from Electrum; not sure if other wallets allow that).
To add to the mess, the screwed_TXID now has some child transactions because the change address from it was used in another transaction (for some reason, the entity's wallet decided to do that instead of using available UTXOs to create that transaction).
What to do if an entity spent an unconfirmed UTXO with multiple unconfirmed ancestors?
6 replies 138 views
bridge2018Full Member
Posts: 50 · Reputation: 405
#2Jun 9, 2019, 10:11 AM
The effective fee rate of the provided TXid is 21.3sat/vb, and the current required fee for the transaction to get included in the block is around 60sat/vb.
Since the parents has too many inputs CPFP will be too expensive so just be patient for the fee to drop or the TX get purged and ask the sender to send with higher fee if it's dropped from mempool.
what about the other input (the confirmed UTXO used on the transaction, address ends in avh5). Can it be spent on a different transaction?
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#4Jun 9, 2019, 04:13 PM
I saw that you've already did that which replaced the mentioned "screwed_TXID" in the OP, it's now confirmed.
Since you did replaced it, those descendant transactions are now dropped from mempools.
If you do not want the client to spend unconfirmed UTXO in your next transactions (in Electrum as hinted in the OP),
Tick the setting "Spend only confirmed coins" in the settings icon [] of 'New Transaction' window (After clicking "Pay...").
As part of an RBF? Definitely. As long as the nSequence of the transaction input does not indicate that RBF is disabled - and even then this would be irrelevant with mempoolfullrbf - you can create a new transaction with just this input and a higher fee and it would've been placed much higher along the tip of the mempool and hence confirmed faster.
I managed to spend the confirmed UTXO (ending on avh5) that was part of the screwed_transaction. How? Well, on Electrum the status was "Unconfirmed parent" but for some reason it suddenly changed to "Local", so I click "remove" and it "reverted the broadcast of the screwed_TXID" and I could select the confirmed input (avh5) to use it on a different transaction. Now, I went back to Wallet A where the unconfirmed UTXO (ending on 86t) part of screwed_TXID originated, the thing is I can't manage to do the same (convert an "unconfirmed parent" transaction to "Local" to spend only the confirmed inputs). If i dont do this, I cant spend the confirmed inputs. What to do now? How do I convert an "unconfirmed parent" transaction" to Local? I think it has to do with the server I'm connected to, I tried to change it but I couldn't get the same result
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#7Jun 9, 2019, 11:53 PM
Yes, the first incident simply happened because the parents of the parent transaction of your "screwed_TXID"
happened to have a very low transaction fee that got it dropped from your (auto-)selected Electrum server's mempool, that dropped all of its children txns as well.
During that time, the unconfirmed parent should've been dropped as well since it's the reason why the "screwed_TXID" with higher fee rate was dropped.
But now that the average mempool size is low, it's now propagated to the network again that reverted it back to "unconfirmed parent".
If you're talking about 4566c3cfc229a494be03fb2811e4ebdb2052342ddfec0ea720217068d4e546c5:
Manually remove that transaction while offline (you can try it while online using v4.5.4) using the command: wallet.adb.remove_transaction("TXID")
After the transaction is removed, the UTXO list in the 'Coins' tab should be updated to what it was, use 'Coin Control' to select only the confirmed ones then send.