<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>TraceFast Blog</title><description>Exploit post-mortems, MEV research, and engineering notes from the team behind TraceFast — a real-time blockchain analytics and forensics platform for Ethereum.</description><link>https://blog.tracefast.xyz/</link><language>en-us</language><atom:link href="https://blog.tracefast.xyz/rss.xml" rel="self" type="application/rss+xml"/><lastBuildDate>Sun, 12 Jul 2026 20:57:53 GMT</lastBuildDate><item><title>Hello from the TraceFast blog</title><link>https://blog.tracefast.xyz/posts/hello-tracefast/</link><guid isPermaLink="true">https://blog.tracefast.xyz/posts/hello-tracefast/</guid><description>Why we&apos;re starting a blog: exploit post-mortems, MEV research, and engineering notes from a real-time Ethereum analytics platform.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;TraceFast is a real-time blockchain analytics and forensics platform for
Ethereum. This blog is where we publish the work behind it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Exploit post-mortems&lt;/strong&gt; — trace-level breakdowns of on-chain incidents,
from the first malicious transaction to the final fund movement.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MEV research&lt;/strong&gt; — what we see in the mempool and on-chain, measured.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Engineering notes&lt;/strong&gt; — the infrastructure that keeps a real-time
tracing pipeline alive, and what it costs to run it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Everything here is built on the same tracing engine that powers
&lt;a href=&quot;https://tracefast.xyz&quot;&gt;TraceFast&lt;/a&gt;. When a post includes a trace, you can
follow it yourself.&lt;/p&gt;
&lt;p&gt;A small example of what trace output looks like:&lt;/p&gt;
&lt;pre class=&quot;astro-code astro-code-themes vitesse-light vesper&quot; style=&quot;--shiki-light:#393a34;--shiki-dark:#FFF;--shiki-light-bg:#ffffff;--shiki-dark-bg:#101010; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;CALL  0xdead…beef → Uniswap V3 Pool  swap()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  ├─ STATICCALL  oracle.latestAnswer()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  └─ CALL  0xdead…beef → Vault  withdraw()   ← reentrancy window&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Subscribe via &lt;a href=&quot;https://blog.tracefast.xyz/rss.xml&quot;&gt;RSS&lt;/a&gt; — posts land there first.&lt;/p&gt;</content:encoded><category>announcements</category></item><item><title>Anatomy of a Sandwich: Reconstructing a Single MEV Attack Block-by-Block</title><link>https://blog.tracefast.xyz/posts/anatomy-of-a-sandwich/</link><guid isPermaLink="true">https://blog.tracefast.xyz/posts/anatomy-of-a-sandwich/</guid><description>On October 9, 2023, the Ethereum Foundation sold 1,700 ETH on Uniswap — and got sandwiched. We reconstruct the entire attack, transaction by transaction, using TraceFast.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;On October 9, 2023, the Ethereum Foundation — the organization that stewards the protocol itself — swapped 1,700 ETH for USDC on Uniswap. A sandwich bot was waiting. Three transactions, one block, and about $9,100 quietly moved from the Foundation’s execution price into a searcher’s pocket.&lt;/p&gt;
&lt;p&gt;This post reconstructs that attack end to end using &lt;a href=&quot;https://tracefast.xyz/&quot;&gt;TraceFast&lt;/a&gt;. Every link below opens the actual on-chain data, so you can follow along and check every claim yourself.&lt;/p&gt;
&lt;h2 id=&quot;sandwich-attacks-in-four-sentences&quot;&gt;Sandwich attacks in four sentences&lt;/h2&gt;
&lt;p&gt;A sandwich attack targets a pending swap that the attacker can see coming. The attacker buys the same asset immediately &lt;em&gt;before&lt;/em&gt; the victim’s trade (pushing the price up), lets the victim buy at the worse price, then sells immediately &lt;em&gt;after&lt;/em&gt; (pocketing the difference). The victim’s own slippage tolerance is what makes this possible — the attacker sizes the front-run so the victim’s trade still executes, just at the worst price the victim agreed to accept. That’s the theory; everything from here on is one concrete, real attack.&lt;/p&gt;
&lt;h2 id=&quot;step-1--three-transactions-one-block&quot;&gt;Step 1 — Three transactions, one block&lt;/h2&gt;
&lt;p&gt;Open block &lt;a href=&quot;https://tracefast.xyz/blocks/18311676&quot;&gt;18,311,676&lt;/a&gt; on TraceFast. It looks unremarkable at first: 155 transactions, 73% gas utilization, built by Titan Builder (&lt;code&gt;0x4838…5f97&lt;/code&gt;). One stat stands out on the block page — &lt;strong&gt;1,736 ETH moved, above the recent p95&lt;/strong&gt;. Nearly all of that is one trade.&lt;/p&gt;
&lt;p&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;./images/anatomy/01-block-overview.png&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;TraceFast block 18,311,676 overview: 1,736 ETH moved — above recent p95, built by Titan Builder&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/p&gt;
&lt;p&gt;Now look at the top of the transaction list. The first three slots in the block are:&lt;/p&gt;

































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Position&lt;/th&gt;&lt;th&gt;Tx&lt;/th&gt;&lt;th&gt;From&lt;/th&gt;&lt;th&gt;To&lt;/th&gt;&lt;th&gt;What it is&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://tracefast.xyz/tx/0x0317631ee4621288921614a2a4618d9711fe043991760163e6cf20158a5cd5b5&quot;&gt;&lt;code&gt;0x031763…5cd5b5&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;0xfac9…da00&lt;/code&gt;&lt;/td&gt;&lt;td&gt;MEV bot &lt;code&gt;0x0000…6b40&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Front-run&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://tracefast.xyz/tx/0x198f7f592c202eed8edf6006c715e75078394d02d6a8281f5e47e250377aca3d&quot;&gt;&lt;code&gt;0x198f7f…7aca3d&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Ethereum Foundation &lt;code&gt;0x9ee4…313d&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Uniswap Universal Router&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Victim&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://tracefast.xyz/tx/0xefc2598194d68bc6d04e230a88d6b279b48e2edf6eadb4080fd6f198afe2d93d&quot;&gt;&lt;code&gt;0xefc259…e2d93d&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;0xfac9…da00&lt;/code&gt;&lt;/td&gt;&lt;td&gt;MEV bot &lt;code&gt;0x0000…6b40&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Back-run&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Same sender wrapped around the victim, same bot contract on both sides, positions 0-1-2. This is the canonical sandwich shape, and once you know to look for it, it’s unmistakable.&lt;/p&gt;
&lt;p&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;./images/anatomy/02-sandwich-positions.png&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;Transactions tab of block 18,311,676: the sandwich at positions 0–2 — MEV bot, the Ethereum Foundation&amp;#x27;s 1,700 ETH swap, MEV bot again&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;step-2--the-front-run-position-0&quot;&gt;Step 2 — The front-run (position 0)&lt;/h2&gt;
&lt;p&gt;Open the &lt;a href=&quot;https://tracefast.xyz/tx/0x0317631ee4621288921614a2a4618d9711fe043991760163e6cf20158a5cd5b5&quot;&gt;front-run transaction&lt;/a&gt;. A few things worth reading off the page:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Zero ETH value, 15 token transfers.&lt;/strong&gt; The transaction sends no ETH itself — all the action happens inside the bot contract. TraceFast flags it as &lt;em&gt;storage-heavy&lt;/em&gt;: 1,058,480 gas consumed, over a million gas of state manipulation packed into slot 0 of the block.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The capital was borrowed — and the position was parked.&lt;/strong&gt; Decode the transfer list and an elegant structure appears. The bot contributed just 243.83 WETH of its own inventory, then flash-borrowed 7,300 WETH from Balancer, deposited it into Aave as collateral, borrowed 1,632.42 WETH against it, and swapped that into 2,640,314.64 USDC in the Uniswap v3 USDC/WETH 0.05% pool — the front-run itself. Here’s the clever part: a flash loan must be repaid within the same transaction, but the sandwich position has to survive across the victim’s transaction. So the searcher parked the USDC in Aave as collateral (leaving the WETH debt open), withdrew enough WETH to repay Balancer, and exited the transaction holding the short-ETH position inside a lending protocol. This is why a “simple” front-run needs 15 token transfers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gas tells a story, but not the one it used to.&lt;/strong&gt; The front-run paid 9.1 gwei against a block base fee of 8.1 gwei — a priority fee of just 1 gwei. Pre-Merge, sandwich bots fought for position with gas-price ladders, outbidding each other in the public mempool. In the MEV-Boost era, position is bought privately: the searcher submits the bundle to a builder and pays for ordering out of profits. The gas price is almost vestigial. Keep this in mind for the back-run below, where the real payment shows up.&lt;/p&gt;
&lt;p&gt;The effect of the front-run: the attacker’s buy pushed the ETH/USDC price in the pool up by roughly 46 basis points (per EigenPhi) — small enough to stay inside the victim’s slippage tolerance, large enough to matter on a $3M trade.&lt;/p&gt;
&lt;p&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;./images/anatomy/03-frontrun-transfers.png&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;Front-run transaction, Token Transfers tab: the 7,300 WETH Balancer flash loan and the Aave/Uniswap legs — 15 transfers, zero ETH value&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;step-3--the-victim-position-1&quot;&gt;Step 3 — The victim (position 1)&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://tracefast.xyz/tx/0x198f7f592c202eed8edf6006c715e75078394d02d6a8281f5e47e250377aca3d&quot;&gt;victim transaction&lt;/a&gt; is the Ethereum Foundation’s treasury sale: &lt;strong&gt;1,700 ETH sent to the Uniswap Universal Router&lt;/strong&gt;, executed via the standard &lt;code&gt;execute&lt;/code&gt; method, returning exactly &lt;strong&gt;2,738,345.58 USDC&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The transfer list shows the router split the order across three routes: 1,445 WETH through the &lt;a href=&quot;https://tracefast.xyz/defi/pools/0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640&quot;&gt;USDC/WETH 0.05% pool&lt;/a&gt; (&lt;code&gt;0x88e6…5640&lt;/code&gt;), 170 WETH through the 0.3% pool, and 85 WETH via a WBTC hop. Note which route the attacker chose: the front-run hit only the 0.05% pool — the leg carrying 85% of the order. Sandwich bots don’t attack transactions, they attack pool legs, and they size their capital to the leg that matters.&lt;/p&gt;
&lt;p&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;./images/anatomy/06-usdc-weth-pool.png&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;The USDC/WETH 0.05% pool page on TraceFast: Uniswap v3, factory-event provenance, ~$19M daily volume — the leg that carried 85% of the Foundation&amp;#x27;s order&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/p&gt;
&lt;p&gt;Nothing about this transaction was careless in an obvious way. It paid a normal gas price (8.1 gwei — exactly base fee), used the canonical router, and executed successfully. Its only sin was being visible: the swap sat in the public mempool where every sandwich bot on the network could see a $3M market order coming. For a searcher, a pending seven-figure swap with default-ish slippage settings is not an opportunity — it’s an invoice.&lt;/p&gt;
&lt;p&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;./images/anatomy/04-victim-transfers.png&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;Victim transaction, Token Transfers tab: all nine legs of the split route and the final 2,738,345.58 USDC transfer from the Universal Router to the Foundation&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;step-4--the-back-run-position-2&quot;&gt;Step 4 — The back-run (position 2)&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://tracefast.xyz/tx/0xefc2598194d68bc6d04e230a88d6b279b48e2edf6eadb4080fd6f198afe2d93d&quot;&gt;back-run&lt;/a&gt; closes the loop with the mirror image of the front-run: flash-borrow 7,300 WETH from Balancer again, unlock the parked position in Aave, pull the 2,640,314.64 USDC back out, and swap it into 1,638.04 WETH through the same 0.05% pool — at the better price the victim’s trade just created. Repay the 1,632.42 WETH debt, repay Balancer, and the bot walks away with 249.45 WETH against the 243.83 WETH it started with.&lt;/p&gt;
&lt;p&gt;Gross profit: exactly &lt;strong&gt;5.6159 WETH&lt;/strong&gt; (~$9,100). No estimates — that’s the difference between the WETH that left the bot in transaction 0 and the WETH that returned in transaction 2.&lt;/p&gt;
&lt;p&gt;One more number on this page matters: the transaction carries &lt;strong&gt;3.0944 ETH of value&lt;/strong&gt; into the bot contract — and the bot’s ETH balance is zero both before and after the block, so that ETH left within the same transaction. Reconstruct Titan Builder’s ledger for the block and the destination is clear: Titan collected ≈3.33 ETH in direct payments on top of just 0.036 ETH in priority fees, and this transfer accounts for 93% of it. That’s 3.0944 / 5.6159 = &lt;strong&gt;55.1% of gross revenue paid to the builder&lt;/strong&gt; — the price of positions 0 and 2. This is the modern gas ladder: the bribe doesn’t show up in the gas price; it shows up as a direct transfer to the block builder.&lt;/p&gt;
&lt;p&gt;Net result for the searcher: &lt;strong&gt;~$4,060&lt;/strong&gt; after the builder’s cut and gas. More than half the extracted value went to the builder — a detail that says a lot about where bargaining power sits in today’s MEV supply chain.&lt;/p&gt;
&lt;h2 id=&quot;step-5--who-was-behind-it&quot;&gt;Step 5 — Who was behind it?&lt;/h2&gt;
&lt;p&gt;TraceFast’s address pages turn a one-off observation into a profile.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://tracefast.xyz/address/0x00000000003b3cc22af3ae1eac0440bcee416b40&quot;&gt;bot contract &lt;code&gt;0x0000…6b40&lt;/code&gt;&lt;/a&gt; is auto-labeled &lt;strong&gt;MEV Bot&lt;/strong&gt;, and its stats justify the label: &lt;strong&gt;452,596 transactions&lt;/strong&gt;, delegatecall and factory-pattern risk flags, and — remarkably — it was still active as of July 2026, nearly three years after this attack. The leading-zeros vanity address (&lt;code&gt;0x00000000003b…&lt;/code&gt;) is itself a tell: cheaper calldata when the address appears in payloads, a common micro-optimization among high-volume searchers.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://tracefast.xyz/address/0xfac983fce7ef3cee8ffb2ceb967e1b2362aada00&quot;&gt;operator EOA &lt;code&gt;0xfac9…da00&lt;/code&gt;&lt;/a&gt; has been running since August 2022, has sent &lt;strong&gt;11,977 transactions&lt;/strong&gt;, deployed 35 contracts, and burned &lt;strong&gt;186 ETH in gas fees&lt;/strong&gt; over its lifetime. An account that spends six figures on gas is not a hobbyist — it’s infrastructure. Sandwiching the Ethereum Foundation wasn’t a special operation for this operator; it was Tuesday.&lt;/p&gt;
&lt;p&gt;&lt;img __ASTRO_IMAGE_=&quot;{&amp;#x22;src&amp;#x22;:&amp;#x22;./images/anatomy/05-mev-bot-profile.png&amp;#x22;,&amp;#x22;alt&amp;#x22;:&amp;#x22;Address profile of the MEV bot 0x0000…6b40: auto-labeled MEV Bot, 452,596 transactions&amp;#x22;,&amp;#x22;index&amp;#x22;:0}&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;step-6--the-victims-pl&quot;&gt;Step 6 — The victim’s P&amp;#x26;L&lt;/h2&gt;
&lt;p&gt;Let’s put the Foundation’s side of the ledger together:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sold:&lt;/strong&gt; 1,700 ETH&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Received:&lt;/strong&gt; 2,738,345.58 USDC&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Execution shortfall:&lt;/strong&gt; ~$9,100 — the attacker’s gross revenue is, almost by definition, the victim’s missed price. On a ~$3.08M trade, that’s roughly a &lt;strong&gt;0.3% invisible tax&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The transaction “succeeded.” No error, no revert, nothing on the receipt hints anything went wrong. That’s what makes sandwich MEV insidious: the cost is invisible unless you reconstruct the counterfactual — what the pool would have paid &lt;em&gt;without&lt;/em&gt; the front-run sitting in front of you. That reconstruction is exactly what the block-level view makes possible.&lt;/p&gt;
&lt;h2 id=&quot;could-this-have-been-avoided&quot;&gt;Could this have been avoided?&lt;/h2&gt;
&lt;p&gt;Three practical takeaways, in increasing order of effort:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Use private order flow for size.&lt;/strong&gt; A swap submitted through a private RPC (MEV-protected relays, direct-to-builder flow) never touches the public mempool, so there is nothing to front-run. For a $3M treasury operation, this is table stakes — and the fact that the Foundation’s swap was public is the most surprising detail of the whole story.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cut the trade into tranches.&lt;/strong&gt; Ten swaps of 170 ETH each move the pool far less per trade and shrink the sandwich margin, often below the attacker’s break-even (builder cut + gas + flash-loan fees).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Set slippage deliberately.&lt;/strong&gt; Sandwich profit is bounded by your slippage tolerance. Tight tolerance on large trades means an attack either becomes unprofitable or your transaction reverts — and a revert is annoying, but $9,100 cheaper than this one.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;how-to-spot-a-sandwich-in-any-block&quot;&gt;How to spot a sandwich in any block&lt;/h2&gt;
&lt;p&gt;Once you’ve dissected one attack, the pattern generalizes into a checklist you can run on any block in about a minute:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Same sender at symmetric positions.&lt;/strong&gt; One EOA appearing at positions &lt;em&gt;k&lt;/em&gt; and &lt;em&gt;k+2&lt;/em&gt; (or wrapping a small cluster of swaps) is the strongest single signal.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A large swap in between.&lt;/strong&gt; The victim is almost always the biggest trade in the pool for that block — sandwiching small trades doesn’t clear the builder’s cut.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zero-value, storage-heavy transactions on both sides.&lt;/strong&gt; Bot contracts hold the logic internally; the wrapper transactions carry no ETH and burn six-figure gas.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mirrored token flows.&lt;/strong&gt; The front-run buys exactly what the victim is about to buy; the back-run sells it. Compare the transfer lists on both sides — they’re near-inverses of each other.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A payment to the builder.&lt;/strong&gt; Look for a direct ETH transfer to the block’s fee recipient inside one of the bot transactions. No bribe, no slot 0.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;None of these requires special access — just a block view that shows transaction ordering, token flows, and state changes side by side.&lt;/p&gt;
&lt;h2 id=&quot;reproduce-this-analysis-yourself&quot;&gt;Reproduce this analysis yourself&lt;/h2&gt;
&lt;p&gt;Everything in this post came from public data. Open &lt;a href=&quot;https://tracefast.xyz/blocks/18311676&quot;&gt;block 18,311,676&lt;/a&gt;, find the three transactions at the top, and walk the same path: block → transactions → addresses. Then try it on a block from &lt;em&gt;today&lt;/em&gt; — sandwich structure hasn’t changed, only the pools and the operators have. The &lt;a href=&quot;https://tracefast.xyz/defi/pools&quot;&gt;DeFi pools view&lt;/a&gt; and &lt;a href=&quot;https://tracefast.xyz/analytics/gas&quot;&gt;gas analytics&lt;/a&gt; are good places to spot where the action currently is.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Next in the series: who actually builds Ethereum’s blocks — and why more than half of this attacker’s profit went to the builder.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;sources&quot;&gt;Sources&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eigenphi.substack.com/p/flash-loan-sandwich-attack-on-etherum-foundation&quot;&gt;EigenPhi: The Flash-Loan-Enabled Sandwich Attack Against Ethereum Foundation’s 1.7k ETH Sale&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eigenphi/AwesomeTx/issues/63&quot;&gt;EigenPhi AwesomeTx — Oct 9 sandwich attack (tx hashes)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://thecryptobasic.com/2023/10/10/ethereum-foundation-fell-victim-to-an-mev-bot-losing-9k-upon-selling-off-1-7k-eth/&quot;&gt;The Crypto Basic: Ethereum Foundation Fell Victim to an MEV Bot, Losing $9K&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;On-chain data: &lt;a href=&quot;https://tracefast.xyz/blocks/18311676&quot;&gt;TraceFast block 18311676&lt;/a&gt;, cross-checked via Blockscan&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>mev</category><category>sandwich</category><category>uniswap</category><category>forensics</category></item></channel></rss>