The Ethereum network requires gas to execute transactions. When you send tokens, interact with a contract, send ETH, or do anything else on the blockchain, you must pay for that computation. That payment is calculated in gas, and gas is always paid in ETH.
Okay, yes, I get that, but why are they so high?
The price of gas is dynamic and is essentially a product of demand: the more people that are trying to get their transactions processed by the network, the higher it will be. Each additional person can—if they have the means—increase their priority fee to raise the chances that their transaction will get processed sooner.
In addition to being under the sway of demand, one of the reasons Ethereum can be costly to transact on is because of its security. In a way, security is what you're paying a premium for, and is a product of its age (it has weathered a lot more challenges and attacks than most blockchains) and its distributed, decentralized nature. Ethereum is, as a rule, far more decentralized than many other blockchains, and although many alternatives have much cheaper transactions, they are likely to have compromised on the 'security' element of the blockchain trilemma (although many claim to have solved this challenge).
Some other contributors to the price of Ethereum's gas fees include:
- The popularity of NFTs on Ethereum. Many spikes in gas prices can be attributed to highly anticipated NFT drops.
- Ethereum is the home of DeFi (decentralized finance). Many of the largest, most established dapps were built on Ethereum, and continue to be the biggest players in DeFi. This DeFiLlama chart, comparing TVL (total value locked) in DeFi across major networks, shows Ethereum comprises ~63% of the DeFi market at the time of writing. All the transactions that accompany this popularity naturally raise computational demands on the network.
Is there anything I can do about it?
You are paying for the computation of your transaction, regardless of whether it succeeds or fails. Even if it fails, the miners (or, post-Merge or for Proof-of-Stake networks, validators) must confirm and execute your transaction, which takes computational power. You must pay for that computation, just like you would pay for a successful transaction. This means there's no way around paying gas fees if you want to use a network.
However, if you have a bit of time and flexibility, you may be able to reduce costs:
- You can try to lower gas fees in your transaction settings. Please keep in mind that overriding MetaMask's suggested gas settings with a much lower total will result in your transaction being processed very slowly, and could even result in you wasting your money if it becomes 'stale' and isn't picked up at all.
- Develop an understanding of peak times. Although crypto is global, peaks will typically be during the waking hours of the North American continent (between UTC-5 and UTC-8), which you could plan to avoid.
- Investigate alternative networks. You can use MetaMask to take advantage of the multi-chain web3 that is emerging. Whether you stay directly within Ethereum's orbit on layer 2s, or emigrate to one of many EVM-compatible chains, there are cheaper alternatives (though you will have to bridge tokens to them first).
For current network gas conditions, see https://etherscan.io/gastracker.
Gas on networks other than Ethereum mainnet
Most EVM-compatible networks—those that you can use with MetaMask—have similar gas mechanisms to Ethereum, so the principles on this page apply more broadly. However, since other chains do not necessarily have ETH as their native token, you need to pay for gas in different ways. Gas on Polygon, for example, is paid in MATIC, the network's native token, and BNB Chain fees are paid in BNB.