Cancel queued transactions without paying gas (since they were not yet broadcast to mempool)

When multiple transactions are queued in Metamask, they have not yet been broadcast to the mempool. Therefore, the user should have the ability to remove these transactions from the queue without paying a gas fee. Please enable user to cancel queued transactions without paying gas to remove them from the app’s queue.

If its possible that I will upvote hard. It would save me a ton of money!


Unfortunately this is not a feature MetaMask has any control over. The transactions need to be paid for regardless. What you can do if you have stuck transactions, I’d find the first pending transaction and then send yourself or someone $5 worth of eth and edit the nounce Number to the one that is pending. This will clear the transaction and your fee will be minimal.


This is not a problem that metamask can control. The solution is to initiate a new transaction to overwrite the previously stuck transaction. There is a tutorial on overwriting transactions in the official website, and a little knowledge is required. If you are not sure, please use this function with caution.


For clarity, this post is not about stuck transactions. It’s about queued transactions that have not yet been broadcast to the mempool because the latest transaction is still pending.

You can transfer token without gas fee

Hi @Roti ,

It is not possible to send tokens without paying some type of gas, even if it’s on an L2, there are fees for gas to complete the transaction.

1 Like

@KBeeTheCapybara For clarity, we are discussing queued transactions that have not yet been broadcast to the mempool. These should not require gas to remove from the queue, right?

Hi @BTCAlchemist ,

Once you’ve signed a transaction, it’s sent out (broadcasted). To cancel the transaction, whether it’s queued or pending, the transaction signer has to pay gas to cancel (assuming it hasn’t gone through at that point).

If your transaction is queued (not pending, but queued), it’s in a transaction pool/mempool, waiting to become a pending transaction.

Check out this MetaMask Knowledge Base article (link here) which dives deeply into Transaction information. I’ve pulled a helpful quote from it below on this topic -

"Guillaume opens up his MetaMask wallet, enters Dolores’ address, configures the gas parameters that he’s comfortable with paying, and hits ‘send’.

At this point, the transaction enters a local temporary holding status, known as the local memory pool, or local mempool"

For numbered step by step transaction breakdown, here is a reference from Ledger Academy (link here) -

The process of a transaction can be broken down into six steps:

  1. Someone requests a transaction. The transaction could involve cryptocurrency, contracts, records, or other information.

  2. Transaction is broadcast to all P2P participation computers in the specific blockchain network. These are called Nodes. All transactions are published to the Mem-pool or memory pool, where they are considered ‘pending’. Gas fees are paid by users as part of the transaction to compensate for the computing energy required to process and validate transactions on the blockchain.

  3. Miners verify the transaction. Every computer in the network checks the transaction against some validation rules that are set by the creators of the specific blockchain network.

  4. Validated transactions are stored into a block and are sealed with a lock referred to as the Hash.

  5. New block is added to the existing Blockchain. This block becomes part of the blockchain when other computers in the network validate if the lock on the block is correct.

  6. The transaction is complete. Now the transaction is part of the blockchain and cannot be altered in any way.

Hope above helps give some clarify. :fox_face:


Hello @KBeeTheCapybara, I appreciate the detailed reply! The point that doesn’t make sense is that transactions queued in the MetaMask wallet would not yet be broadcast to the mempool. If they were, they could all be included in the same block and confirmed at the same time (assuming the gas price is sufficient). However, this is never the case, as queued transactions never get confirmed together. Therefore, MetaMask queues them locally and then submits only the active transaction to the mempool. Given this, the user should not pay gas to remove the queued transaction since it has not yet been sent to the mempool. Please let me know if this makes sense.