By backrunning MEV-Share's Order Flow, this bot raked $175K on $FCKIT
You never know how smart these searchers are.
Key Takeaways
Taking advantage of MEV-Share’s refund mechanism, the searcher bought low when the FCKIT token was issued and sold high 8 minutes after, earning a profit of $175K.
The searcher’s smart strategy was hard to recognize with so many transfers in one transaction and other spread-selling trades.
EigenTx’s multiple transactions token flow combining feature is helpful to reveal the tactics of the searcher.
On May 31, a Twitter post about MEV-Share gained wide attention. According to the description in the post, a transaction repaid 10.8 ETH to the user who provided the order flow.
From the bundle data of Flashbots, the origin of this order was marked as "mempool" instead of "flashbots.” Therefore, we are unsure if this transaction was processed through a private channel.
In this article, we analyze the transaction details and find that the searcher earned $175K by buying new tokens at the first possible time and selling them at a high price in 8 minutes.
Unpack the Transaction Details: Buy, Buy, Buy!
This video shows you how we check out the details of the transaction.
Firstly, we can take a rough look at this transaction on Etherscan.io, focusing on its transaction behavior and the payment of gas fees and builder tips. From the information on the website, we can roughly speculate that this address swapped ETH for FCKIT on Uniswap V2 and repeated this process many times, with each ETH investment slightly higher than 1 ETH. Finally, the searcher paid a gas fee of 0.1269 ETH and a tip of 12.024 ETH to Flashbots: Builder.
With over 400 logs, we cannot obtain much more information, and we cannot directly merge and calculate these swap operations on Etherscan to determine how much ETH was spent in total to buy how much FCKIT in one transaction.
Next, after loading the pre-installed EigenTx Chrome plug-in, we can automatically load this transaction and render its Token Flow Chart on the EigenTx website. Of course, on the Etherscan website, we can also directly load and preview the visualized token flow chart by clicking on the button on the right side of the transaction hash and jumping to the EigenTx website when more in-depth exploration is needed.
After jumping to the EigenTx website, we can see the actual flow of tokens between different addresses in this transaction.
The chart shows that the same address made 39 swaps of ETH for FCKIT on UNI-V2 and sent FCKIT to different EOA addresses.
We can also use the Simplified Token Flow Chart feature to simplify the flow of funds further, showing that this address spent 60 WETH on buying FCKIT.
This is consistent with the results calculated by the Account Balance Changes statistics below the token flow chart.
Understand Its Interconnected Transactions: Get Refund from MEV-Share
This video below examines the transactions connected with the one above.
Next, let's take a look at the transactions associated with this transaction through the EigenTx's Related Txs function. Click "Transactions for Block 17358588" to enter the related transaction page.
On this page, it can be seen that the current transaction is the second transaction in the block, and EigenTx's Flashbots Bundle Exhibition feature shows that it belongs to the first bundle. Flashbots' bundle service provides atomicity for multiple transactions for the searcher, allowing transactions to be completed without reordering or sanction.
Comparing the two transactions before and after the current transaction, we can see that the “from” address of the first transaction is the to address of the third transaction, and the “from” address of the third transaction, 0xDAF...988c5, can be verified as the builder of the current block.
Clicking on these two transactions to enter the details page, we can further discover that the first transaction is related to the function of launching the FCKIT token contract to be tradable, and in the third transaction, the builder transferred 10.8259 ETH to the user who provided the first order flow. In other words, these three transactions completed a process of MEV-Share. There were five remaining transactions in this bundle that were reverted, which will not be further analyzed here.
Calculate the Profit: $175K in 8 Minutes
Now, we have understood the three transaction behaviors in the MEV-Share case. We know that the Searcher paid a high fee (12.024 ETH plus a tiny priority fee) to the builder, and the builder returned 90% of MEV (10.8259 ETH) to the user. However, how did the searcher profit in this case? Currently, we only know that it used 60 ETH to buy a large amount of the newly launched token FCKIT. We need to further analyze the destination of these tokens.
To begin with, we observe what actions were taken by the receiving address in the first swap after receiving 70.609 million FCKIT.
At this point, we first navigate to the Etherscan.io interface, find and click on the recipient address of the first swap, and then filter the transfer records related to FCKIT according to that address.
We can see that the search results display two transfer records, one corresponding to the buy transaction initiated by the searcher during the MEV-Share process and the other occurring after this transaction.
By clicking on the hash of the second transaction, we can learn that in this transaction, the searcher swapped FCKIT back to WETH and received approximately 4 times the amount of WETH invested at the time! We can once again use EigenTx's Chrome Extension to visualize this transaction and copy and paste its transaction hash into the corresponding webpage of EigenTx for multi-transaction querying.
EigenTx will first return an independent graph for each transaction and then, by clicking on the Multi-Txs In One Chart feature, we will obtain a merged token flow chart. It is easier to identify the two swap processes related to FCKIT token for this address from the merged chart.
During this particular swap, the searcher swapped 1.114174 WETH for 70.609178 million FCKIT, before swapping the FCKIT tokens for 4.3757 WETH just a few minutes later. As a result of this swap, the searcher made a revenue of 3.261526 WETH.
By finding the subsequent transactions for the remaining 38 swap transactions in the same way, we will be able to calculate how much money the searcher made in this trade.
By using a third-party data source, we first queried the address list that received 39 FCKIT deposits through transfer records of the current transaction. We then traversed this list to search for transaction records where FCKIT was transferred out, resulting in 39 transactions.
import pandas as pd
from datetime import datetime, timezone, timedelta
from google.cloud import bigquery
client = bigquery.Client()
query = """
SELECT
to_address
FROM
`bigquery-public-data.crypto_ethereum.token_transfers` as t
WHERE
DATE(t.block_timestamp) = "2023-05-28" and t.transaction_hash = '0xc3a37580a96b52a718a5b516dfef209f150e87a75032c725536821ea0d6cc875' and t.from_address = '0xbdbf380517c3ccd80143f22d2c5332ccb3b16ee1'
order by block_number, log_index
"""
df_receivers = client.query(query).to_dataframe() # Make an API request.
query = """
SELECT
transaction_hash
FROM
`bigquery-public-data.crypto_ethereum.token_transfers` as t
WHERE
DATE(t.block_timestamp) >= "2023-05-28" and t.from_address IN {} and token_address = '0x6c361a982fdc316e8ff5ac98d525e5ba366f3e63'
order by block_number, log_index
""".format(tuple(df_receivers['to_address'].to_list()))
df_txhash = client.query(query).to_dataframe() # Make an API request.
','.join(df_txhash['transaction_hash'].to_list())
# result 0xe666ebd09ba7331113c7d3feaf6376a3150a42f442b0c33361c37d8f51fc6bc7,0x2fb7b8e5b33604681e3d59b866f6d88247bb43578bce23e9e00795d4bb7fb01b,0x289c00edbd00de472b85ce51aad9793b055d76be6d1af0528f3b71942e8040a3,0xa07b91f5004faf0b3ae3aa9531ae183606f1506f4c11263718e64976d5be7f21,0x0cf0964eaacc7eb8093e3700a96b8f5a8cf73d5f6d0e34b7d365b5b1f5d1aea9,0x4f63e3d23e0e3d287cc7abd4bcbed1c89e0ff5a10c36fd735bf154db3d02caa7,0xd91a09dede27742fb34984e2f3196f91a0b39e8fbb549d199259c0e37c2b7ec3,0xca86dfd3bdda225fb4ca84324fbbfa92b61d79160b825b5af828f026d6e0028d,0xcc462cf36e606f1dd132c6be535c82c2f2ccb84d0581e4ffd2710297090aced7,0x1403eaae4c0c6dbf63f611853abb1e13c9f3b9850f0411c8d8dd4e5768f797d4,0xeeb9f2e83ecb4f9f1058b7ce64af4f2624ab1f0226fc1806675f30e2fb572ef3,0x8ac52df83c394b022d3a5b27eb0bc4e5663b6617ff7725c6d6e6acc2476759bc,0x3e2bf8807a41c32321598150822aebb959f739ad67f4b97aa779d271e3703e7d,0x8f03be99531ff66fba423962bb20a94d5e2e99dcad4376ee42ff0ff36da2c71d,0x873b5ad5ac228e2716c5d5d46e88cf9b8ef5c664f42b74acfe823310d4851e84,0x3d19cff09edacbc7498c96fe45ee56a7e07523ae8f6d5590185f330d1374361a,0xfa08efdc2c1e15557b666226935de3e12b05ef518ba71de38162768d069cc67a,0xde87f09e8014b92d082afcb5ac12f1ac090f90d58a8815a7ef571c08142c84d6,0x4c903b4579f66fbb44424ea7ea53c87fc892b0eff3865461d93883168242ddc3,0xcda38c88b9bf70ad9aa9adbf0be6ca86d6c540cd1695615e60264e8ed3a9a7d5,0xa633fba646c66f934fb6e48813cb3f27822a627b6b9c229c88214fdede8ef536,0xa9f9923377fc934a2d7d4dd4dc66b219f78c127d0481bff631881116329ae711,0xef3c3f139bc89af9d7a4a523d50b1dea44476c1bbc99586700026f5c402744f1,0xce6a2935e759c063d945c970997dc8dfb578d6d34c36e61db815e354fc2f5de2,0x24029aa141f6748a58813240bf2cc2815f60ea12c0287e1ef055b4f3f2f60678,0x5547823b87baace8300368f86a4e755edde9dee8de02a238f0855e15ff26d66c,0xc36ec84fe7504f531bf1c552d78f80fedce6233353706492c0b992a41c0a5652,0xd020b856eaead930b9e2b135c2b8d5031c1d09988dcf5a409828b2335f714983,0x0006761fb8d7f8e8afd45c0840928185cdb29dc5d2d5bbe2c59cfebc224950f1,0x82d70b3f7fb7d5a71bdcb7b4b18ae37ea9dfb909b963ded9ec0b5bdac76d9edf,0x807d9acec318f25361526ae3f6b921045722393aa77c48ed1b38c988f8c97e79,0xdc298431640fe33cf40dada36b7f98de1c2451abc380c507fab6c8eb636a07eb,0xbabe4d70e9aceadcce481380f32fa6df57c7448252fcd857359536f9d6bf2cfc,0xc4f6c25ac1e04dc51be893c9b883c0722d2d914e70a1beeebe968071d93505a8,0x984bd2d96d817c2fedc04d18fddd29f85ff97abd31e164a3197f6f07c230d7aa,0xa134ea8528572ecb2ec1b36349af0709c111048e86a3750ba19283328064c89f,0xaa38e9f762505431476a7ad4ba022d1a89bb2e73497633dba3058e3f0c42bfa5,0x10ba82081487844337c7427f2fa9528806223b576948112415d481cfb9c50547,0xf400348285b93412224d69bfc6baf6267f436b014f8bcb198090d42f0d3f5e2a
We separated these 39 hash values by commas and added them to the search box for the current transaction on EigenTx. By clicking the search button and using the Multi-Txs In One Chart function, we obtained the final token flow chart and total balance changes.
From the chart, it can be seen that the searcher gradually cashed out the FCKIT received from the first transaction and eventually withdrew 97.436443 WETH from Uniswap V2's pool. This represents their total revenue, and after deducting the cost paid to the builder, a net profit of around 85.41 WETH was earned, equivalent to approximately $157K.
The scatter plots of buying and selling prices at different times reflect the interval between the searcher's entry and exit times and the price difference between buying and selling. The profit comes from buying low and selling high.
Summary
Now that we have a full understanding of the entire strategy.
On May 28th, the searcher back-runned FCKIT token's initial offering transaction and spent a cost of 60 ETH to purchase large quantities of FCKIT, which were stored in 39 EOA addresses. The reason for purchasing in batches may be due to limitations on the contract's purchase volume for each address.
Within the following 8 minutes, this searcher sold FCKIT in batches at prices that were 2-3 times the cost price, ultimately cashing in more WETH.
The key factor to the success of this strategy was to buy at a low price before others and take on the risk of the new coin's price dropping. We discovered that the recently popular sandwich bot, jaredfromsubway.eth, mainly targets trading users of Meme coins that have recently been listed and are experiencing hype. Additionally, while carrying out sandwich attacks, it also strategically holds some meme tokens to profit from fluctuations in token prices.
Follow us via these to dig more hidden wisdom of DeFi:
Website | Discord | Twitter | YouTube | Substack | Medium | Telegram