When you transfer tokens, send tokens, or interact with the Ethereum blockchain in general, gas is required to pay for the computation needed to process that transaction. If you’re not familiar, you can read more about gas here.
Gas prices have exploded recently. Gas Now is a great resource to check current prices and fees.wtf gives you a depressing look at how much you’ve spent on gas and failed transactions.
In this article, we’ll discuss why gas makes transacting on DeFi clunky, which is limiting the growth of Decentralized Exchanges and DeFi in general.
DeFi transactions are clunky and expensive
Transacting in DeFi isn’t easy. Consider the steps required to successfully make a token transfer on Uniswap. Aside from the basics, like connecting a wallet (likely Metamask), selecting a To and From pair, and researching what slippage means, there are several more steps a user must do that are both confusing and costly.
Approve a token for spending on Uniswap
When users interact with a token for the first time on a new exchange, they have to approve spending on Uniswap. This approval costs gas as it’s an interaction with the Ethereum blockchain. At the time of writing, approving a token on Uniswap costs $4.45. The user then has to wait until the transaction is successful. If it’s not, they still have to pay that fee and submit an entirely new transaction.
Select a gas fee and confirm the transaction
After submitting the transaction on Uniswap, a Metamask popup appears.
The two critical issues are circled in red. At the top of the prompt, you can see a ‘SWAP EXACT TOKENS FOR TOKENS” disclaimer. Directly below it, there’s a large ‘$0.00’, which, to the new user, would seem to indicate that the transaction has no value. Just below that, we see the gas fee, which for this token transfer comes out to a $24.72 gas fee (on 1/4/2020). If you click the Edit button, you can select a different (slow, medium, or fast) gas price altogether. For the new user, this is overwhelming and likely causes a significant dropoff.
Monitoring a transaction
After successfully submitting a transaction, users then have to monitor the transaction to ensure it was completed successfully. This is generally done on Etherscan, which will show when a transaction is pending, completed successfully, or failed. If the transaction remains unfilled, users have to open their Metamask plugin and can attempt to speed up the transaction by paying more gas. If the transaction fails, users still have to pay the gas fees and then submit a new transaction, costing more time and money.
There’s also one other problem with submitting a transaction in DeFi: users need to hold ETH in their wallets. Although this seems like a trivial concern, consider how new DeFi users might get onboarded in the future. Their first fiat -> crypto purchase will likely be a stablecoin like DAI or USDC (by the way, federally chartered banks just received legal authorization to use stablecoins). If a user has a new wallet with only stablecoins, their funds will essentially be stuck. You can currently only pay gas with ETH, and without it, you can’t interact with the blockchain.
Gas makes it confusing to determine the cost of a transaction
Because users end up paying a fee on Uniswap and a gas fee through Metamask, determining accurate pricing for a transaction can be cumbersome. Let’s walk through how a user is presented with the pricing of a 1000 DAI -> 1000 USDC transaction.
The user would first create the transaction on Uniswap, which would indicate that there is a 0.30% fee to incentivize Liquidity Providers. For a 1000 DAI to USDC swap, that comes out to 3 DAI (~$3.00). The interface also shows the minimum amount of USDC you’ll receive, factoring in slippage. If the protocol has to route your order through another token (like ETH), the LP fee doubles and comes out to 0.60%. Uniswap does not mention the cost of gas. This means that when a user prices out a trade on Uniswap, the cost of gas is not factored into the transaction. This makes it difficult to determine if a trade is worth executing from the Uniswap interface alone.
After submitting the transaction in Uniswap, the Metamask popup lists the Ethereum gas fees. Gas does fluctuate, but you can reasonably assume that the average cost to swap a token is between $5-$10.
Conditional orders should be gas-free for users
In our last article, we talked about why conditional orders will fuel the next wave of Decentralized Exchange growth. Conditional orders such as limit and stop-loss orders generally contain a lot of data, and therefore can’t be efficiently stored on-chain. They work best as off-chain orders, signed by users and sent to relayer services to do the heavy lifting of on-chain execution. Relayers can take on the burden of sourcing liquidity, minimizing their gas costs, and maximizing their profit while still meeting the conditions of the order. Users pay a small fee to the relayer, and in exchange, they are provided with a completely gas-free, fully automated order flow. While users ultimately still pay the cost of gas for their order, the benefit of a gas-free process from an end-user perspective is huge.
Brink is the first protocol to facilitate relaying of any conditional order type (not just limit orders), and the first to do so without requiring any direct gas or ETH payment from users.
Gas-free off-chain orders will be the future of transactions on Decentralized Exchanges. Although there are benefits to some power users to manage their own transactions, this use case is limited. Building a more user-friendly DeFi experience will be essential to maintain the industry’s growth. The first step is building a platform that conforms to all the tenets of DeFi (self-custody, permissionless, and community-driven) while making the experience more accessible to the end-user.
At Brink, we are building critical infrastructure for conditional orders on DeFi. Brink is a fully permissionless, decentralized, and community-driven project that allows users to execute conditional orders against any on-chain liquidity source.
Brink Ninja Beta
Our ninja beta app is live at brink.ninja. The beta is currently closed to users that meet certain criteria for early adopters. Talk to us about joining.
Learn more about Brink:
- Follow us on Twitter
- Join our community on Discord
- Subscribe to our Newsletter
- Test out our App
We’ve done our best to deploy secure code, but Brink has not been audited by a 3rd party. Like any Dapp, use caution, and be aware that there is always a risk of fund loss.