Failed transactions in Uniswap and what to do about them
Published in ·
--
Markets were fun over the weekend. Bitcoin reached its all-time high and ETH broke 700.
Unfortunately, if you think that you were going to mitigate your losses by being proactive and selling at the top in a falling market, you’ve got another thing coming.
Let’s say that you bought in as the price was rising, maybe you even set a limit order buy for ETH at $630. You were trying to make a quick profit underneath around that ~$706 line of resistance after the first peak.
So we’re looking at the aftermath of that 2nd peak as prices are falling about 3–4% in an hour.
You’re trying to sell, but your Uniswap transactions aren’t going through.
So this happens. For instance, I got the error UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT 3 times in a row and wasted money on failed transactions, all of which adds up.
In short Uniswap transactions fail because of:
- Experienced too much slippage (AKA insufficient output amount)
- Transaction gas price too low (leading to timeout)
- A deadline hardcoded into Uniswap transactions has been exceeded
So what to do about it:
- Manually increase slippage tolerance
- Speed up the transaction from the wallet (AKA increase the transaction’s gas price while it’s pending)
- Change Uniswap deadline in Settings
- Wrap ETH (get WETH)
- Evaluate liquidity in the pool
On top of this, transactions with insufficient ETH balance or that are attempting a swap between a pool with insufficient liquidity would never submit.
When Uniswap transactions fail, they still eat up gas fees. But fortunately, the assets you were swapping get reverted back to your wallet.
In this video, CryptoSlo gives an overview of slippage and how it causes failures. As he puts it, “Uniswap essentially works in tiers. There’s only so much you can buy or sell of a certain tier.” He also suggests “limiting the size of your orders to reduce slippage.”
Let’s say I wanted to minimize slippage, automatically change my gas strategy, and get reliable execution, even in a downwards market, while tapping into Uniswap’s liquidity.
So what I should’ve done was use a stop loss. I should’ve listened to my own advice and set up a conditional price trigger that waits for a price to hit then guarantees me a fill, instead of wait 90 minutes for 3 failed transactions and waste lots of money on high gas fees.
The only place you can do that right now is by using Dexible.
You’re going to want to set up some stop-loss orders as these markets rocket up.
Every time you set a stop loss there, you’re not actually committing the order yet, instead, it’s pushed to a private router whereby, upon conditions, the infrastructure interprets the state of the markets and tells the contracts to fire.
It’s really simple to start setting these up as you enter new positions, read on how to set them up.
Volatile markets are costly, you can easily make the wrong bets just as you can make the right ones. But play smart, mitigate your risk, and start setting some of these resting stop-loss orders out there.
Use Dexible today.
👉 Join our Telegram
👉 Join our Discord
👉 Follow our Twitter
👉 Subscribe to our new Newsletter
👉 Give us your feedback! Contact us at team@dexible.io