Confirmed transactions are irreversible. This is the nature of all blockchains.


If your transaction is unconfirmed, we cannot cancel it. It will eventually be confirmed by the miners of the network or rejected and the funds will automatically be returned to your address.


The following workarounds currently exist, and Coinomi is hard at work implementing them for a future release:


  • Child-Pays-For-Parent - The Child-Pays-For-Parent approach allows the fees of a transaction's child (the transaction that spends the outputs of the stuck transaction) to also pay for the parent transaction. This allows a merchant to spend the "broken" transaction they received like any other transaction, and the system should return to a consistent state. The benefit of Child-Pays-For-Parent is that it solves the problem in a way that doesn't fundamentally change the mechanics for how a transaction is selected and kept (most notably, the first-seen memory pool behavior). In my opinion, this makes this solution the most intuitive. However, the difficulty with Child-Pays-For-Parent is in the implementation. There are some required changes to the propagation of transactions that are required to make this work properly (since just broadcasting a valid child will cause other nodes to consider the transaction as orphaned, without the context of the parent).


  • Replace-By-Fee - Replace-by-fee attempts to address the problem by changing the fundamental rule for accepting and keeping transactions, the "first-seen" rule. In this system, a transaction with higher fees can spend already spent inputs (that have not yet been confirmed in a block), and will replace that transaction in the memory pool. The benefit of this system is that it changes the fundamental transaction selection rule but does not require changes to the way fees are calculated. The downside is that this represents a significant shift in terms of expected memory pool behavior. In my opinion, this makes transactions less predictable; the first-seen rule is straightforward, predictable, and easy to understand and implement. Additionally, it breaks any functionality that relies on the predictability of unconfirmed transactions by making it trivial to issue double spends. (Double spending a first seen transaction requires a combination of moderate network and computing resources, some decent know-how, and some luck. Double spending in a replace-by-fee world requires none of the above.)


  • First-Seen-Safe Replace-By-Fee - FSS RBF attempts to make RBF compatible with first-seen memory pool implementations by requiring that the outputs from the original transaction be maintained by subsequent respends. The benefits are that in some situations, first-seen behavior can be relied upon. A transaction sending x BTC to a merchant cannot revoke that. In practice, however, this protection is pretty weak. It trivially breaks transactions that spend other unconfirmed transactions by allowing the first transaction in the chain to be replaced, invalidating future outputs. This means that the burden for double spending an unconfirmed transaction becomes only slightly higher than in standard replace-by-fee. It does, theoretically, allow one to accept an unconfirmed transaction that spends a confirmed output with similar protections as the typical first-seen behavior.


Those are not new, as they have been part of the public debate for some time now. None of them are without their issues and disadvantages, and none of them can by definition, be free.





If you have waited weeks for a transaction to confirm and it has not, our servers may be rebroadcasting the transaction with low fees. You should not worry because your funds will eventually be returned to the sending address or confirmed, however it is important to know that you can do the following.


You can replace an unconfirmed Ethereum transaction that you sent from Coinomi. To do so,


1. Find the ether transaction or transactions that are stuck by entering your sending address into etherscan.io
2. Find the nonce of the transaction that is still pending. If you have multiple pending transactions, find the lowest nonce (it will be associated with the first pending transaction you sent).
3. Go to https://www.myetherwallet.com/#offline-transaction and fill out all your information, making sure to set a high enough transaction fee. Enter the nonce that you found in the previous step. It needs to equal that of your first pending transaction because the ether network will confirm the lowest nonce that is associated with your sending address.
4. Enter your address' private key. You can find that here:
What is the Recovery Tool and how do I export my private keys?
5. Send the transaction. This will replace your pending transaction.


You can accelerate an unconfirmed Bitcoin transaction that you sent from Coinomi. To do so,


1. Go to 

a. https://viabtc.com/tools/txaccelerator/ or https://pushtx.btc.com/

2. Enter your Transaction ID and the Captcha

    Note: To be eligible for the free acceleration on viabtc, your transaction must have been sent with a minimum fee of 0.0001BTC/KB (you can check in .../settings/transaction fees/Bitcoin).