1

I have a Metamask account A which has a days-old pending transaction which will not succeed:

What happened, more or less:

  • A has balance of 11 ETH
  • Tx1: A tries to send 10 ETH to B (pending)
  • Tx2: A tries to send 10 ETH to C (pending)
  • Tx1 succeeds, A has balance of 1 ETH
  • Tx2 will not succeed. It's still pending.

I now want to send 4 ETH to account A, then send 5 ETH from A to D. It seems like this should be possible.

I want Tx2 to fail or be ignored. There is a cancellation button but it comes with a fee. Also I do not want to send ANY eth to C.

How can I add 4 ETH to A, then send 5 ETH A->D without sending any ETH A->C and without paying a fee to cancel it?

It seems like it should be theoretically possible to publish a new transaction Tx3 which has the same nonce as Tx2 and since Tx3 can complete whereas Tx2 can't, Tx2 will become irrelevant since it's nonce will now be too small. Can I, for example, construct Tx3 in geth CLI and have metamask sign it? Or is there another way to send a new transaction directly from Metamask with the same nonce as the last pending transaction? Or is there another way out of this?

1 Answer 1

1

You should be aware of two thing to consider when replacing a pending transaction:

  • Gas price has to be 10% higher.
  • Even with a 10% higher gas price a miner can still use the old transaction (network congestion can affect reception and broadcasting of new transactions).

In your case TX2 will not be processed because you don't have enough balance to cover 10 ethers plus transactions fees.

You can enable "Customize transaction nonce" in Metamask Advanced settings. Then use the same nonce than the pending transaction.

Alternatively you can use MyEtherWallet or MyCrypto with Metamask, both allow customizing the transaction nonce ('Send offline' for the first and 'Advanced setting' in the second).

2
  • Thanks. Got a source for gas having to be 10% higher? I would naturally expect that if two transactions had the same nonce but one had funds and one did not then any sane miner would consider there to be only one candidate for inclusion, regardless of which was broadcast first.
    – spraff
    Sep 20, 2020 at 8:06
  • In geth configuration options --txpool.pricebump is used to configure the minimum price increase, default is 10%. Most miner will follow those options.
    – Ismael
    Sep 20, 2020 at 14:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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