All 8 transactions here - including some from unexpected places - are a part of one sandwich!

A thread on the increasingly complex sandwich bots we're seeing
A normal 🥪 bot looks like this

🥪 frontruns a user, buying the asset they intend to and increasing the price. The user gets less tokens now.

The user's buy is then included, pushing the price up more

🥪 sells after the user's tx at the higher price, thus capturing profit
🥪 bots will watch the mempool for users trading with high slippage that they can frontrun. Until recently 🥪 bots would only do this with one trade, and with the Uniswap v2 or Sushiswap router.

But they've leveled up.
The 🥪 bot here has their address highlighted in yellow, and I annotated the transactions in red. As you can see they included 4 (!) transactions between their buy and sell!

But why?
Each of these four, in part, did the same thing. They bought F9 token with ETH. By stacking these F9 buys together, this 🥪 bot was essentially using other users to drive the price up higher for the last trade.
The last trade has a set amount of slippage. Frontrunning it can only push the price so high. The 🍞 could increase the price without other transactions too.

So why include them? Because by having other users drive the price up it saves the 🥪 on the 0.3% fee v2 charges. Clever!
Note the tradeoff here: they save on the Uniswap LP trading fees, but increase the gas used of the bundle. It won't always make sense to do this.
Also, did you catch the other unique factor there? The 🥪 bot included a trade to the 0x proxy.

0x traded on Uniswap v2 F9/WETH pair on the users' behalf, and the 🥪 bot here was able to figure this out and frontrun just the Uniswap v2 part of that trade cc: @willwarren89
We are not done just yet. Just before the 🥪 buy there are 2 sells of F9 token for ETH. These lower the price of that pair and the 🥪 bot is backrunning them to get a better price for their buy

So the 🥪 buy ends up being part 🥪 AND backrunning arbitrage. Some 🧈 for the 🍞.
Finally, it seems that two of the transactions here came from what appear to be rare mempool 🥪 bots

etherscan.io/address/0x4aee…

etherscan.io/address/0x4930…
The block itself if you want to dig into this more
etherscan.io/txs?block=1275…
Finally I’ll note that we used to only see trades directly to Uniswap v2 and Sushiswap’s router get 🥪d. Now bots watch a range of aggregators and frontrun them conditional on what the aggregators trades too.
h/t: @SiegeRhino2 for raising this block to me

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Robert Miller

Robert Miller Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @bertcmiller

7 Jul
🟥MEV negative externalities🟥
This Polygon bot has been active since June 29th & has sent ~2m transactions, failing *almost* all the time

These failures cost close to nothing but bloat the state, while the few successes pay for the failures many times over Image
Success transaction:
polygonscan.com/tx/0xfc3d1b688…

One of the many failures: polygonscan.com/tx/0x989a72bce…
The tricky thing for this bot is it needs to land right behind another user's tx to succeed

Since it can't express those ordering preferences and because the costs of a transaction are so low, it chooses to spam the network with transactions and hope one lands in the right place
Read 6 tweets
24 Jun
It's a golden age for searchers. Late enough that Flashbots and DeFi exists, but not so late that massive institutions are competing for MEV.
Even still the barrier to entry for the top strategies is getting higher very quickly. It's probably a few months of work to catch up to the best backrunning arb bots now.
It is funny to think about the early days of Flashbots when there was literally 1 market maker, 1 ESD bot, and 2 arb bots sending bundles. Unbelievably good opportunity to make money back then.
Read 4 tweets
22 Jun
Sorry everyone, long overdue, but its time for a new MEV thread

Today we look at the Flashbots auction and the searchers that were able to game it using a super clever exploit in how we priced and merged bundles

Let's go 👇🏻🧵
For our journey today you will need a deep knowledge of Flashbots bundles

Bundles are groups of transactions executed in the order they are provided. Either the entire bundle is executed, or none of it is

That allows users to express transaction preferences very granularly
For some time we could only support a single bundle per block, but recently Flashbots introduced the ability to merge independent bundles!

Here's a thread on that release
Read 17 tweets
9 Jun
A thread of all my MEV related threads in chronologic order 👇🏻
The first Uncle Bandit pulling off a multi-block heist and launching a new category of MEV strategies
Read 8 tweets
1 Jun
Yesterday Flashbots published MEV-SGX, our proposal for using secure enclaves to provide a private mempool and a sealed bid MEV auction.

Thread on how MEV-SGX works and why it matters 👇🏻
ethresear.ch/t/mev-sgx-a-se…
Flashbots' focus is to enable a permissionless, transparent, and fair ecosystem for MEV extraction.

To date we've made progress on this by releasing two products: Flashbots Alpha and MEV-Explore.
Flashbots Alpha is composed of MEV-Geth and MEV Relay

MEV-Geth is a client that allows users to communicate granular transaction order preferences through transaction "bundles"

MEV-Relay is a gateway that Flashbots runs today, for reasons we'll discuss below
Read 18 tweets
24 May
Today Flashbots releases v0.2 and introduces bundle merging. That means that Flashbots miners can now mine multiple bundles per block.

A thread digging into this huge release and what that means 👇🏻
Flashbots gives users a way to communicate their transaction ordering preferences to miners via "bundles."

Bundles are groups of transactions executed in the order they are provided. Either the entire bundle is executed, or none of it is.
Bundles are typically very sensitive to ordering: you don't want other transactions to come before you & make a transaction your bundle fail

How did we deal with that sensitivity? We limited bundles included to 1 per block placed at the top of the block
Read 15 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(