How to save on transaction fees in Ethereum and DeFi
Tips and tricks for reducing your gas spendings.⛽
Historically, there have been a few memorable events of network congestion and spiking gas prices, such as the Great Cryptokitties Congestion of December 2017, the Black Thursday market crash of March 2020 and, most recently, the DeFi Summer Farming Season of 2020.
The implications of Black Thursday specifically sort of made it clear that the rapidly growing number of participants in Ethereum and specifically the decentralized finance ecosystem will translate into permanently higher gas prices compared to what we were previously used to. And we quickly learned that Black Thursday was indeed merely the icebreaker for the change that was coming. Later on, the yield farming craze showed us just how bad it can get. Where 200 Gwei was sort of the highest we got to on March 12, having consecutive days of constant 200+ Gwei became the reality during August, and we even saw days with 500+ being needed to get any transactions through.
These days, any major project launch or market activity pretty much instantly causes spikes to 100 Gwei or above. Overall it’s fairly clear that this is not a trend that will reverse — the days of waiting for gas prices to drop below 2 Gwei to make your transactions are likely behind us for good.
Now, before we continue with tips on having a better experience with Ethereum transactions and some tricks on how you could reduce your expenses, we need to briefly cover this one question.
What even is gas?
Gas is a unit of processing time on the Ethereum Virtual Machine (EVM). Each transaction requires a specific amount of gas to be executed (processed, mined) and when paying your transaction fee you are actually paying for the number of gas units that your transaction needed to be processed.
The other important variable in Ethereum transaction fees is the gas price, which is denominated in Gwei (where 1 Gwei = 10-⁹ ETH). Gas price is the amount of Ether that you are willing to pay per unit of gas for your transaction.
Since there is a limited number of transactions that can be processed within a block, your set gas price is basically your bid for getting picked up in the next block, where the highest paying transactions will be executed first.
As we are in the Proof of Work era of Ethereum right now, the paid transaction fees go to Ethereum miners. In Proof of Stake, which is planned to roll out gradually over the next few years, the fees will be going to stakers (with some of it also being permanently burned once EIP1559 is introduced).
With some basic gas concepts cleared up, let’s move on to the actual tips.
#1: Don’t overpay for your transactions
The most basic advice in terms of gas prices is to always check what the current gas prices are and go with that.
Don’t just blindly trust MetaMask or whichever wallet management app you’re using, as their estimate can be quite a bit off at times, either too high or too low.
If you’re using DeFi Saver, you probably noticed the recently added gas price selection screen. Gas prices are checked and refreshed the moment you select the action you want to execute, exactly for this reason — to ensure you always have the correct, current gas price data. And then once you confirm there, the selected gas price is also forwarded to your wallet app, instead of letting it decide for you.
For times when you’re interacting with other apps, I would personally suggest using GAS Now for checking, as it seems they update their shown estimates the quickest of all tools out there right now. And if I’m checking GAS Now, I would usually go with something between Fast and Standard, though the recommendation also depends on the type of transaction you’re running (more on that a few tips below).
#2: Time your transactions
While the yield farming season was in full swing it became very obvious that there are times of day when network congestion is noticeably lower. Roughly speaking, that was most often around midnight EU (UTC or UTC+1).
While we’re currently somewhat regularly enjoying <20 Gwei gas prices, this is still true and planning your transactions for this specific time of day could help you save a noticeable amount in transaction fees.
You can check these trends using our newly added gas widget in DeFi Saver that also conveniently includes a full 7-day history of gas prices (with the time zone automatically localized for you).
Alternatively, you can also find this data packed in a heatmap over at EthereumPrice.org if this format works better for you — just make sure to load the page to see the data in your timezone.
#3 Knowing when you can use cheap gas
There are a number of transactions that aren’t intrinsically time sensitive (more on those in the next tip) and where it simply doesn’t matter if it’s processed within two minutes or within 24 hours (except if it matters to you, of course).
This could be any token transfer transaction, but it could also be a number of different actions. For example, if we’re talking about DeFi, this could be generating DAI from a MakerDAO Vault, or withdrawing some amount of funds you were lending via Aave or Compound — as long as your position allows for these actions, there’s nothing about these specific transactions that would cause them to fail if they were mined 12 hours after being sent out.
One specifically expensive transaction is creating a DSProxy, or Smart Wallet as we also call it in our UI. Deploying one for your account is something that’s needed if it’s your first time creating a MakerDAO Vault or if you want to use Compound or Aave at DeFi Saver.
If it’s not urgent and you just want to be ready to open a Vault at some point in the future, then you can check out gas prices from the past week, pick a safe low based on that data and let it stay pending for a.
Of course, the downside of using cheap gas for transactions is that it could potentially keep your account blocked until it goes through, so please exercise caution.
In case you decide to follow this tip in some cases, make sure you know how to accelerate or cancel a transaction if needed. You can find guides explaining this linked here.
#4 Knowing when you should use fast gas
On the other hand, there are time-sensitive transactions where using fast gas is always recommended.
While using fast gas sounds counterproductive in terms of reducing transaction costs, here’s the important thing about Ethereum that makes this a good tip: failed transactions are also paid for, since they were mined, even though there was effectively no outcome.
Most notably, these would be token swapping transactions. If you’re interacting with a decentralized exchange, it’s always recommended to use fast gas, to ensure the swap goes through smoothly, as the ever-changing DEX conditions could otherwise cause it to fail. Most often this would be due to changing prices and slippage limits hit.
In terms of DeFi Saver, fast gas is recommended for all actions that include token swaps: Boost, Repay, creating leveraged positions, closing leveraged positions and loan shifts.
P.S. Messing with the gas limit provided by the app is also not recommended, as it can cause your transaction to run out of gas before being executed fully, which again results in lost fees.
Overall, sending out one transaction at fast gas will most likely always be cheaper than having 2–3 transactions fail for trying to save a few %%s on gas.
#5 Don’t send out transactions destined to fail
In some cases, the app you are using or your wallet may be able to recognize that there is something wrong with the logic of the transaction that would cause it to fail if executed. If you ever see such warnings, it would probably best to not continue with the transaction.
What’s more, these bugged-out transactions can often use up a lot more gas than that specific transaction should if everything was in order, too.
DeFi Saver has built-in detection of these issues, and so does MetaMask. If you ever see warnings such as these below, don’t continue. You will most certainly lose out on fees.
If you can’t figure out what’s causing the irregularity, definitely try connecting with the developers of the app you’re using. We hate seeing users experience failed transactions and would much rather resolve any unexpected issues before any ETH was wasted on fees.
#6 Use Gas tokens
If anyone hasn’t heard of Gas tokens previously, they almost certainly have during this summer. They are a clever use of an Ethereum feature introduced to incentivize removal of previously stored data on the blockchain, which would otherwise have to be stored there forever.
Gas tokens, somewhat simply put, are tokenized data stored on the Ethereum blockchain that receives a refund when deleted. The refund received is in gas units, which means that burning gas tokens during a transaction effectively reduces the overall gas used by the said transaction.
If you want to read more about how it works, feel free to head on over to the GasToken.io website, though note that a potential removal of this mechanism was also discussed by Ethereum developers recently.
The one tricky part with gas tokens is that you can’t really put them on your MetaMask account and transact away— the option to burn GST needs to be implemented in the smart contract code of the transaction you’re running.
Luckily, this has become pretty promininet throughout the ecosystem recently, and you’ll for example see dex aggregators such as Matcha and 1inch using or allowing you to use gas tokens for your swaps with them.
At DeFi Saver, we’ve been using GST2 for all Automation transactions almost since Day #1, but as of recently you can also use gas tokens for all your manual executed actions (Boosts, Repays, leveraged open and close options, and Loan shifts).
To do this, you just need to send some GST2 to your Smart Wallet (DSProxy) — you can start with 1 or 2 tokens to see how it works, as about a quarter of a token is burned per transaction
The simplest way to get some GST2 on there would probably be by adding a “Send” option to your Uniswap swap, which you’ll see available after enabling advanced settings.
Note that this is currently available for Compound and Aave only, but support should be expanded to Maker features in the future, too.
You’ll recognize the gas token being utilized by the “self destruct” events showing up in your transaction details on Etherscan, like so:
Have you got any additional tips that help you reduce gas spendings? Please do share, we’d love to hear all about them in comments below or in the DeFi Saver Discord server!
💬: Official Discord
📢: Official Twitter