Skip to main content

Delay

When using GasHawk, you accept a delay in transaction execution in exchange for lower transaction fees. But how much of a delay can you expect?

Time is Money

This proverb is true for the tradeoff between delay and savings when using GasHawk. A higher deadline setting (currently, values between 5 minutes and 24 hours can be selected) usually results in lower fees.

For the majority of transactions, the delay between transaction creation and finalization will be a fraction of the deadline. Preliminary test results suggest the behavior in the following graph is typical.

Based on the results of simulated transactions, this graph shows how likely a transaction is to be included in a block (y-axis) vs. the delay observed (x-axis). Some extracted datapoints:

delaylikelyhood of tx being finalized
10% of deadline> 50%
20% of deadline> 70%
40% of deadline> 80%
.......
80% of deadline> 90%
100% of deadline< 100%

Notice how the last line contradicts the plot. This is important enough for another section:

Maximum delay

The maximum delay that can occur is infinite. This is an edge case that has never been observed, but it is possible for a transaction to never be finalized. Let's do a thought experiment here:

  • Randy prepares a transaction with max_fee_per_gas = 10 Gwei.
  • GasHawk receives the transaction and decides to wait before sending it.
  • During this waiting time, some event occurs in the ethereum mainnet that raises fees to base_fee_per_gas > 100 Gwei, like a big NFT sale (this has happened before)
  • GasHawk forwards the transaction to the mempool. It does so before the deadline arrives.
  • Because max_fee_per_gas = 10 Gwei, but now all the block's base_fee_per_gas > 100 Gwei, the transaction will not be included in any block
  • If this situation continues for an extended period of time, the transaction might even be dropped from the mempool

Some observations from this experiment:

  • The delay can be longer than the selected deadline.
  • In extreme cases, transactions might even be dropped completely.

This is not exclusive to GasHawk though. The same can happen when simply working with Metamask or any other wallet, if the wallet suggests a base fee that is too low or the change in gas market conditions occurs at just the wrong moment.

What to do with stuck transactions

If your transaction is still waiting in GasHawk, you can use the "Mine transaction now" option to forward it to the mempool, or the "Delete transaction" option to drop (and possibly recreate) it. (If one of the options is missing, this might have to do with nonces.)

If the transaction is already in the mempool, GasHawk can't change anything anymore. But you can manually increase the transaction fee or cancel the transaction following this guide by Metamask. Don't forget to switch the network back to Mainnet in this case.