How to cancel a pending (not confirmed) ethereum transaction

in #ethereum6 years ago (edited)

How to cancel a pending (not confirmed) ethereum transaction

Pending.png

This is what a pending transaction looks like on http://etherscan.io
This method will teach you how to cancel any transaction submitted by a wallet of which you own the private key, no matter what you used, may it be Parity, Metamask, MyEtherWallet or any other tool or command line interface.

All you need to know is your wallet address, that will look something like this: 0x86fdfabd5dedd9ecaac94c1aa9705aee896adee2
And you need to have at hand the private key of your wallet, most tools like Metamask and Parity allow you to export it, if you are in trouble just Google "how to find the private key of my ethereum wallet", maybe adding the tool you used to send the transaction .

We'll gather all the information needed from that single piece of information and we'll follow a simple procedure to cancel the transaction, for a small fee.
Technically, what you are going to do is "overwrite" the pending transaction with a new one. This new transaction will be processed and thus cancel the old pending one. The cost you are going to pay is the gas used to process that transaction, at the current evaluation a few cents of a dollar.

The process

Let's say you have sent a transaction with a very low gas price (you might not be aware of that, some graphic tool hides the price you are paying for gas), but the network is clogged and the transaction it's stuck in pending state (like the picture above).
You have two options, one which most tools will grant you, and one that we'll cover here, although, if you are bright, you will figure out they are the exactly same thing:

  • submit the transaction with a higher gas price
  • cancel the transaction
Let's cancel it
1) First, let's find your transaction.

If you have your wallet address all you need to do is go to http://etherscan.io and enter your wallet address in the search box on the top right of the screen.

search.png

If you already know the transaction hash, which is what we are looking for, you might as well type that and go to the next section.
Hitting GO will display your wallet. The page, by default will show you the list of transaction for that wallet, something like this:

list.png

If you have Pending Transactions in Metamask – All you need to know is its Nonce – that number that is displayed near “…” three dots and Pending word.

Pay attention, the transaction you are searching for should be pending (unless already processed) and keep an eye on the value in ether, it should match the transaction you sent.

2) Gather information

Click on the pending transaction (left column, where it says TxHash), it should open a dedicated view for that transaction, similar to the one on top of the article.
It should still be pending.
We need just one number: the Nonce, an integer, look for the label "Nonce & {Position}, you should write it down somewhere.

nonce.png
In the example used the Nonce was 0 (zero), but yours might differ.

3) Cancel the transaction

In order to cancel the transaction we'll overwrite it with another transaction: we'll send 0 (zero) Ether from your wallet to your wallet.
Yes, that's right, not a typo, it's a perfectly legitimate transaction.

  • Go to https://www.myetherwallet.com/

  • Click on Send Offline
    Send.png

  • Type your wallet address in the "From Address" field
    your.png

  • Type your wallet address in the "To Address" field
    to.png

  • Type 0 (zero) in the "Value / Amount to Send" field
    value.png

  • Leave the "Gas Limit" field as suggested from the interface

  • Leave the "Gas Price field as suggested from the interface or make it a bigger number. (Careful though, this will determine how much you will pay for the transaction. Leaving as suggest is usually enough for a fast transaction)
    gas.png
    You can use a calculator to figure out how much it is going to cost you, for example https://etherconverter.online/

  • Type the Nonce number you wrote down from your pending transaction in the "Nonce" field. (This is the crucial part, this number will make it so the network thinks this transaction is the same as your pending one).
    nonce2.png

  • Leave the "Data" field as it is

  • Scroll down and choose "Private Key" as method to access your wallet
    MyEtherWallet will warn you that this is not a wise choice, and it is not, but unfortunately the other options are not working right now for this kind of transaction. If, in the future, they will, I suggest you pick a safer method.
    private.png

  • Paste your private key and unlock your wallet
    paste.png
    You should get a "Wallet successfully decrypted" message at the bottom of the page.

  • Now, click on "Generate Transaction", it will fill the two empty boxes with data
    generate.png

  • Scroll down and click on "Send Transaction"
    send2.png

And that's it, you are done!

If you now go back to https://etherscan.io and search again for your address, you should see the old pending transaction replaced by this new one. You might need to give it a few seconds, up to a minute in order to see the change, don't worry if you have to wait a bit.

Hope you find this useful, I welcome comments

Repsah

https://twitter.com/repsah