Here’s a brain dump of my tips and strategies when flash arb’ing on Furucombo. I don’t claim to be an expert at this so read it with a pinch of salt.
My arb combo is failing… why?
A flash arb combo might be failing for a myriad of reasons e.g.
- Someone got to it before you — there are many others trying out combos too. You can check this on the furucombo proxy contract. Once someone has executed a similar arb, the underlying liquidity (e.g. ability to sell x amount of tokens at a higher price) is drained so you would need to wait for some time (at least days) to try it again as arb opportunities are rare.
- Prices have changed — arb opportunities generally come and go within minutes. And if the price changes for the worse, it would make your arb unprofitable to the point where you are unable to repay the flash loan at the end of the combo, which reverts the transaction and results in the common error messages you see in the UI (e.g. “something’s wrong inside the flashloan”, “error in 5th block”, “your tx was rejected”).
- Integration issues — every now and again there might be a price feed issue from one of the protocols. Furucombo admins should be able to tell if this is the case in Discord but not much can be done from their side other than to notify the protocol for resolution.
- You were frontrunned by a bot — e.g. as soon as you submitted your combo a front running bot copied your Tx, simulated it in their local ganache fork to evaluate profitability and if worthwhile, executed it on the mainnet with a higher gas price within seconds and essentially stole your arb. This isn’t really a furucombo specific issue as it’s quite prevalent across the ethereum landscape. There are defense mechanisms like commit/reveal, submarine sends…etc to guard against frontrunning but they add complexity to the transaction which kills the arb.
So how do I maximise my chances of success?
Different strategies work for different types of arbitrageurs. As a general rule of thumb:
- Timing is key and by that I mean timing your attempts in alignment to gas prices. The higher the gas price the more likely bot operators need to toggle off their bots because bot initiated transactions fail just as much as manual ones (front runners get front run’ed too). And if a bot fails too many times when gas prices are high it gets really expensive for the operator. Therefore they are less likely to keep the bots running 24/7 during periods of high gas prices, which gives a larger window of opportunity to normal furucombo users at snapping up arbs. This is also why a lot of people were hitting arbs on furucombo during August/September this year when gas prices skyrocketed.
- You should leave some breathing room in between the combo blocks to mitigate minor price movements. e.g. an output of 1.001457 renBTC on one combo block should not be exactly 1.001457 as input on the next block because if the price moves by a fraction of a percent it will result in an error. I tend to leave about 0.3% breathing room in between blocks depending on how the trading pair is trending.
- Sudden market downturns and upturns are a great time to look for arbs as different DEXs use different sources and approaches for pricing feeds. This would then result in price discrepancies.
- Always select the fastest gas option to execute combos — if it’s too expensive and makes your arb unprofitable then it’s not really a profitable arb to begin with. If you go with anything less than fastest you’re essentially taking a coffee break in a 5 meter sprint.
- Flash loans in general are fairly gas intensive actions. There were times in early Sep where I found more arb ops through supplying the up front capital myself since I didn’t need to pay the flash fee and flash sized gas, not to mention so many people were focused on hitting a zero capital flash arb back then.
- There were also occasions where a flash arb was net profitable but needed me to supply a portion of the initial capital. This is perfectly fine as long as you’re making a net profit at the end of the whole Tx including gas. Just because you see the ‘Initial Funds’ section on the UI doesn’t necessarily mean it’s not profitable. I tend to keep some stablecoins (DAI, USDC…etc) on hand for this purpose.
How do you find arb opportunities?
If you want to see example combos which have worked for others then a simple approach would be to:
1. Monitor the Furucomb Proxy Contract where all combos are executed from
2. Click into any of the ‘confirmed’ transactions (ignore pending or failed)
3. Copy the Transaction Hash and paste into the Decombo tool
4. If the decombo’ed view looks like a profitable arbitrage combo (i.e. the left hand side says ‘You will receive…’, then note it down and try the same combo again in a few days to see if it became profitable again.
- EthereumDev tutorial on trading and arbitrage
- MoneyLegos — an all in one library and dev cheatsheet to help you with DEX price aggregation, flash loan, borrow, repay and trade across common DeFi protocols via JS and Solidity.
- ProofSuite tutorial on triangular arbitrage price reads via Orfeed
Should I just flash loan a gazillion ETH?
Increasing the flash loan size for an arb combo might seem like a way to maximise profit but:
- The bigger the flash loan size the bigger the flash fee payable (e.g. Aave’s 9bps fee on a flash loan of 10,000 ETH is 9 ETH, meaning your arb profit will need to be greater than 9 ETH + gas)
- Also the bigger the amount being traded the bigger the slippage risks across DEXs.
Both of which eats into your arb profit before you even consider gas and whether there is enough liquidity to service your transaction in the first place.
How quickly can I start making big money?
Slow down. The tips above merely help you step into the competitive arb’ing arena itself, which is generally ok if you’re only looking to hit small arb profits here and there by chance.
But if you want to consistently make decent arb money you’re still a long way away from being competitive. If this is where you’re headed then some areas worth looking into include:
* Executing arb detection reads from your own Ethereum node rather than going through the Infura API to improve arb detection speed
* Read up on Miner Extractable Value and befriend one of the smaller mining cartels to work out a mutually beneficial arrangement
* Take an internship with a HFT group or hedge fund
* Hang out with frontrunning/backrunning groups…etc for educational purposes.
There is no set formula to success as it’s always evolving in this space. Case in point — up until September this year the concept of MEV was only… conceptual.
I’ll keep adding stuff to this article as I think of them.