<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://frodan.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://frodan.github.io/" rel="alternate" type="text/html" /><updated>2025-12-12T05:16:12+00:00</updated><id>https://frodan.github.io/feed.xml</id><title type="html">Frodan’s Blog</title><subtitle>Frodan&apos;s Blog
</subtitle><author><name>Daniil Fronts</name></author><entry><title type="html">Writeup for “Rabbithole” Wintermute Alpha 2025</title><link href="https://frodan.github.io/2025/09/01/Wintermute-Alpha-2025-Rabbithole-Writeup.html" rel="alternate" type="text/html" title="Writeup for “Rabbithole” Wintermute Alpha 2025" /><published>2025-09-01T00:00:00+00:00</published><updated>2025-09-01T00:00:00+00:00</updated><id>https://frodan.github.io/2025/09/01/Wintermute-Alpha-2025-Rabbithole-Writeup</id><content type="html" xml:base="https://frodan.github.io/2025/09/01/Wintermute-Alpha-2025-Rabbithole-Writeup.html"><![CDATA[<h1 id="rabbithole">Rabbithole</h1>
<h2 id="task">Task</h2>

<p>It turns out that Vyper has a bug, and some of the Curve pools were vulnerable, so you observed how, despite whitehat efforts, three different pools were drained. A few days later, you found that exploiters returned funds for two of them, but what about the <a href="https://etherscan.io/address/0xb752def3a1fded45d6c4b9f4a8f18e645b41b324">“CRV/ETH one”</a>? You have reasons to believe that this exploiter is responsible for some of the other DeFi exploits that have occurred in the same year.</p>

<p>Please provide at least two examples (with different exploiter EOAs) of the previous exploits with Etherscan links and the reasoning that proves connections (some high-level details about the methodology could be helpful for solidifying proofs as well). You can’t use any data after 5th August, 2023 to prove your points.</p>

<h2 id="solution">Solution</h2>

<h3 id="initial-analysis-of-crveth-exploiter">Initial Analysis of CRV/ETH Exploiter</h3>

<p>To find other attacker wallets, I researched behavior patterns and unique markers that differentiate this exploiter from other hackers.</p>

<p><strong>Key points for hacker activities:</strong></p>
<ul>
  <li>Deposit address (ETH needed for gas fees)</li>
  <li>Exploit execution (the most important indicator)</li>
  <li>Withdrawal address</li>
  <li>Transaction behavior patterns</li>
</ul>

<h4 id="deposit">Deposit</h4>

<p>The initial deposit came from Binance, likely to bypass security monitoring since Binance deposits are typically considered safe. While monitoring systems focus on Tornado Cash, Railgun, FixedFloat, and other mixers, the attacker probably used fake KYC documents to fund through Binance.
<img src="/assets/images/2025/wintermute-alpha/rabbithole/Deposit.png" alt="Deposit" /></p>

<h4 id="withdrawal">Withdrawal</h4>

<p>Stolen funds moved to <a href="https://etherscan.io/address/0xc772bdb4588414d8401ab90aa9da084eb52e7475">“CRV/ETH Exploiter 2”</a>, but only 1,500 ETH went through Tornado Cash. The remaining stolen funds still sit in the wallet for unknown reasons.
<img src="/assets/images/2025/wintermute-alpha/rabbithole/CRV-ETH-Exploiter-2.png" alt="CRV/ETH Exploiter 2" /></p>

<h4 id="activity-before-the-hack">Activity Before the Hack</h4>

<p>This account was initially created to attack the MiningRig contract. The attacker began preparing on July 28 but was too slow. <a href="https://x.com/0xjustadev/status/1685277465483026432">c0ffeebabe.eth</a> exploited it first on July 29 (potentially frontrunning other hackers). This suggests the CRV/ETH exploiter was trying to exploit an already known vulnerability.</p>

<p>The CRV/ETH Exploiter drained what remained, obtaining 32.291419732496523585 ETH (~$60K at that time) - modest profit for a hacking operation.
<a href="https://etherscan.io/tx/0x756cf2da292c3511735ee67e566bbf8209990724949852b2ee582a332e725b27">Transaction example</a></p>

<h4 id="the-hack-itself">The Hack Itself</h4>

<p>The attacker didn’t discover the Vyper vulnerability independently. At least 5 different actors had already exploited it, with Twitter buzzing about the bug. The CRV/ETH Exploiter simply wrote his own exploit for this known vulnerability.</p>

<p><a href="https://docs.google.com/spreadsheets/d/1gUi7Nxs6V4wHKUMfSq85d2ShFW3fsMfggKIEV846ROQ/edit?gid=0#gid=0">Timeline spreadsheet</a>
<img src="/assets/images/2025/wintermute-alpha/rabbithole/Timeline.png" alt="Timeline" /></p>

<p>Once the Vyper reentrancy vulnerability went public, every second counted. The attacker likely reused this wallet for the CRV/ETH attack to save time on anonymous deposits.</p>

<h4 id="exploit-techniques">Exploit Techniques</h4>

<p>Each exploit contract used the same unique obfuscation: double keccak256 hashing with bytes manipulation for owner checks, preventing MEV bots from frontrunning the exploit. 
<img src="/assets/images/2025/wintermute-alpha/rabbithole/Keccak.png" alt="Keccak" /></p>

<h3 id="attacker-markers">Attacker Markers</h3>

<p>After the review, I identified the following attacker markers:</p>

<ul>
  <li><strong>Double keccak256</strong> (most unique identifier)</li>
  <li><strong>Binance deposits</strong> for funding</li>
  <li><strong>Multiple hacks</strong> from the same wallet</li>
  <li><strong>Delayed withdrawals</strong> via separate wallets</li>
  <li><strong>Targets small projects</strong> without audits</li>
  <li><strong>Accepts small profits</strong> (&lt;$100k per hack)</li>
  <li><strong>Drains leftover funds</strong> from other hackers’ exploits</li>
</ul>

<h2 id="hack-research">Hack Research</h2>

<p>I reviewed Ethereum Q1-Q2 2023 hacks using the <a href="https://newsletter.blockthreat.io/archive">BlockThreat newsletter archive</a>. After several hours of research, I discovered that double keccak check is incredibly unique - it appears almost exclusively in wallets with similar attacker markers.</p>

<p>I identified 7 accounts with very similar characteristics.</p>

<p><strong>Note</strong>: I define malicious wallet activity as exploit creation and execution transactions only. Swaps and withdrawals are excluded since attackers often wait extended periods before moving funds.</p>

<h2 id="case-1">Case #1</h2>

<p><strong>Attacker EOA</strong>: <a href="https://etherscan.io/address/0xceed34f03a3e607cc04c2d0441c7386b190d7cf4"><code class="language-plaintext highlighter-rouge">0xceed34f03a3e607cc04c2d0441c7386b190d7cf4</code></a><br />
<strong>Activity Period</strong>: 2022-11-04 to 2023-01-26</p>

<h3 id="shared-characteristics-with-crveth-exploiter">Shared Characteristics with CRV/ETH Exploiter</h3>

<ul>
  <li><strong>Binance funding</strong></li>
  <li><strong>Double keccak checks in exploit</strong> (without bytes manipulation - likely improved in later attacks as this was deployed end of 2022)</li>
  <li><strong>Funds partially remain in exploit contracts</strong></li>
  <li><strong>Multiple hacks from the same address</strong></li>
  <li><strong>Targets low-cap tokens</strong></li>
</ul>

<h3 id="attack-examples">Attack Examples</h3>

<p>The attacks included manipulation of different token pairs ($CANDLE, $BCI, $RINU). This account has an extensive history with many hacked protocols:</p>

<ul>
  <li><strong>ElasticSwap</strong>: <a href="https://etherscan.io/tx/0x23bc33d17cb268a7588a9c0dde9127705b464b7c12a44b5ca41fa911bc26d583">0x23bc33d17cb268a7588a9c0dde9127705b464b7c12a44b5ca41fa911bc26d583</a></li>
  <li><strong>$CANDLE, $BCI, $RINU manipulations</strong>: <a href="https://x.com/blocksecteam/status/1618572725643276288">BlockSec analysis</a></li>
  <li><strong>Convex locks stealing</strong>: <a href="https://etherscan.io/tx/0xdb0ec2d6ddef41f599b804e6022a4b6eea6ba6cf3a919dc880a7472be2e1d58c">0xdb0ec2d6ddef41f599b804e6022a4b6eea6ba6cf3a919dc880a7472be2e1d58c</a></li>
  <li><strong>UPS token skim() attack</strong>: <a href="https://etherscan.io/tx/0x4b3df6e9c68ae482c71a02832f7f599ff58ff877ec05fed0abd95b31d2d7d912">0x4b3df6e9c68ae482c71a02832f7f599ff58ff877ec05fed0abd95b31d2d7d912</a></li>
</ul>

<h3 id="additional-behavioral-insights">Additional Behavioral Insights</h3>

<p>This wallet’s activity confirmed my initial markers and revealed new patterns:</p>

<ul>
  <li><strong>Confirmed</strong>: Same account used for multiple hacks over extended periods</li>
  <li><strong>Confirmed</strong>: Targets any vulnerable protocol, regardless of potential profit (some yielded &lt;$100)</li>
  <li><strong>New marker</strong>: Never uses self-destructing contracts, despite their popularity at the time</li>
</ul>

<h2 id="case-2">Case #2</h2>

<p><strong>Attacker EOA</strong>: <a href="https://etherscan.io/address/0xdbdf5f801da11d65fe9b1d449cbed6ebe2f04fd3"><code class="language-plaintext highlighter-rouge">0xdbdf5f801da11d65fe9b1d449cbed6ebe2f04fd3</code></a><br />
<strong>Activity Period</strong>: 2023-04-09 to 2023-04-24</p>

<h3 id="shared-characteristics-with-crveth-exploiter-1">Shared Characteristics with CRV/ETH Exploiter</h3>

<ul>
  <li><strong>Binance funding</strong></li>
  <li><strong>Double keccak checks in exploit</strong></li>
  <li><strong>Multiple hacks from the same address</strong></li>
  <li><strong>Withdrawal via Tornado Cash</strong></li>
  <li><strong>Targets low-cap tokens</strong></li>
</ul>

<h3 id="attack-examples-1">Attack Examples</h3>
<ul>
  <li><strong>Swapos hack</strong>: <a href="https://etherscan.io/tx/0x87a34e9d1d991c6747242fc64f25be05da68522aa14aaffdcbb44dc78b66c50c">0x87a34e9d1d991c6747242fc64f25be05da68522aa14aaffdcbb44dc78b66c50c</a></li>
  <li><strong>DefiGreek hack</strong>: <a href="https://etherscan.io/tx/0xa32c84ad09369880dfbdf01bcacc2de632ab8c49d97c33ef695fd0d344955b3d">0xa32c84ad09369880dfbdf01bcacc2de632ab8c49d97c33ef695fd0d344955b3d</a></li>
</ul>

<h2 id="case-3">Case #3</h2>

<p><strong>Attacker EOA</strong>: <a href="https://etherscan.io/address/0x3bfe2a46f0050c76ea95b65abfa826bbfb27596d"><code class="language-plaintext highlighter-rouge">0x3bfe2a46f0050c76ea95b65abfa826bbfb27596d</code></a><br />
<strong>Activity Period</strong>: 2023-04-27 to 2023-04-28</p>

<h3 id="shared-characteristics-with-crveth-exploiter-2">Shared Characteristics with CRV/ETH Exploiter</h3>

<ul>
  <li><strong>Binance funding</strong></li>
  <li><strong>Double keccak checks in exploit</strong></li>
  <li><strong>Funds partially remain in exploit contracts</strong></li>
  <li><strong>Exploits vulnerabilities after other hackers</strong></li>
  <li><strong>Targets low-cap tokens</strong></li>
</ul>

<h3 id="attack-examples-2">Attack Examples</h3>

<ul>
  <li><strong>Fortube hack</strong>: <a href="https://etherscan.io/tx/0x082144b012cf4cb266569085829a12fa64fb3a4a9931289e930e14ead4a3737d">Transaction</a></li>
</ul>

<h2 id="case-4-start-of-bsc-operations">Case #4: Start of BSC Operations</h2>

<p><strong>Attacker EOA</strong>: <a href="https://bscscan.com/address/0x2d2bcd3caed4b51b7090c78cfd73ea091a4b44de"><code class="language-plaintext highlighter-rouge">0x2d2bcd3caed4b51b7090c78cfd73ea091a4b44de</code></a><br />
<strong>Activity Period</strong>: 2023-04-03 to ~2023-05-06<br />
<strong>Note</strong>: Unlike mainnet operations, the attacker used Tornado Cash deposits on BSC instead of Binance across all identified wallets.</p>

<h3 id="shared-characteristics-with-crveth-exploiter-3">Shared Characteristics with CRV/ETH Exploiter</h3>

<ul>
  <li><strong>Double keccak checks in exploit</strong></li>
  <li><strong>Multiple hacks from the same address</strong></li>
  <li><strong>Withdrawal via Tornado Cash</strong></li>
  <li><strong>Targets low-cap tokens</strong></li>
</ul>

<h3 id="attack-examples-3">Attack Examples</h3>

<ul>
  <li><strong>FryingDutchManSailingBusd</strong>: <a href="https://bscscan.com/tx/0x10f290b3f71a7ad0296d481c9ac0b63815a9609e60f79aa0b84d09ae2eda0118">Transaction</a></li>
  <li><strong>CHATGPT</strong>: <a href="https://bscscan.com/tx/0xc944855bf9060ad4dc261d96ce66ea331b00bcc0ed89169542c1a2156c443e06">Transaction</a></li>
  <li><strong>Andre Anonymous (AA)</strong>: <a href="https://bscscan.com/tx/0x7b41ed2db8606953984bb131ca103444037f82923fa2a8f7b9fc5627dffc5e0e">Transaction</a></li>
</ul>

<h2 id="case-5">Case #5</h2>

<p><strong>Attacker EOA</strong>: <a href="https://bscscan.com/address/0x054a3574d8082112575843dd944ff42c58dda38d"><code class="language-plaintext highlighter-rouge">0x054a3574d8082112575843dd944ff42c58dda38d</code></a><br />
<strong>Activity Period</strong>: 2023-05-21 to 2023-05-24</p>

<h3 id="shared-characteristics-with-crveth-exploiter-4">Shared Characteristics with CRV/ETH Exploiter</h3>

<ul>
  <li><strong>Double keccak checks in exploit</strong></li>
  <li><strong>Multiple hacks from the same address</strong></li>
  <li><strong>Targets low-cap tokens</strong></li>
</ul>

<h3 id="attack-examples-4">Attack Examples</h3>

<ul>
  <li><strong>GCCombinedSwap</strong>: <a href="https://bscscan.com/tx/0x913b6313250675ef9fecefe371928bcc4be20ed234fae44e8e6bf409e9208e49">Transaction</a></li>
</ul>

<h2 id="case-6">Case #6</h2>

<p><strong>Attacker EOA</strong>: <a href="https://bscscan.com/address/0x0A3feE894eb8fCB6f84460d5828d71Be50612762"><code class="language-plaintext highlighter-rouge">0x0A3feE894eb8fCB6f84460d5828d71Be50612762</code></a><br />
<strong>Activity Period</strong>: 2023-05-28 to 2023-06-01</p>

<h3 id="shared-characteristics-with-crveth-exploiter-5">Shared Characteristics with CRV/ETH Exploiter</h3>

<ul>
  <li><strong>Double keccak checks in exploit</strong></li>
  <li><strong>Multiple hacks from the same address</strong></li>
  <li><strong>Targets low-cap tokens</strong></li>
</ul>

<h3 id="attack-examples-5">Attack Examples</h3>

<ul>
  <li><strong>Marketplace</strong>: <a href="https://bscscan.com/tx/0xd92bf51b9bf464420e1261cfcd8b291ee05d5fbffbfbb316ec95131779f80809">Transaction</a></li>
</ul>

<h2 id="case-7">Case #7</h2>

<p><strong>Attacker EOA</strong>: <a href="https://bscscan.com/address/0x0060129430df7ea188be3d8818404a2d40896089"><code class="language-plaintext highlighter-rouge">0x0060129430df7ea188be3d8818404a2d40896089</code></a><br />
<strong>Activity Period</strong>: 2023-06-02 to 2023-06-10</p>

<h3 id="shared-characteristics-with-crveth-exploiter-6">Shared Characteristics with CRV/ETH Exploiter</h3>

<ul>
  <li><strong>Double keccak checks in exploit</strong></li>
  <li><strong>Multiple hacks from the same address</strong></li>
  <li><strong>Targets low-cap tokens</strong></li>
</ul>

<h3 id="attack-examples-6">Attack Examples</h3>

<ul>
  <li><strong>SELLC</strong>: <a href="https://bscscan.com/tx/0xd91cf50e8c0d12f521dcfa909c0c139e007eb26cb0868b0a22b36532ececc192">Transaction</a></li>
</ul>

<h2 id="conclusion">Conclusion</h2>

<p>The attacker demonstrated consistent behavior patterns across all cases:</p>

<ul>
  <li><strong>Target selection</strong>: Focus on low-security projects without audits</li>
  <li><strong>Profit tolerance</strong>: Willing to exploit for minimal profits (&lt;$100)</li>
  <li><strong>Attack type</strong>: Primarily liquidity/reward manipulation attacks</li>
  <li><strong>Technical signature</strong>: Unique double keccak256 owner check implementation</li>
  <li><strong>Wallet management</strong>: Rotating hot wallets for multiple consecutive hacks</li>
  <li><strong>Account migration</strong>: Clear chronological progression from one account to another</li>
  <li><strong>Withdrawal pattern</strong>: Delayed withdrawals while continuing attacks from new wallets</li>
  <li><strong>Funding sources</strong>:
    <ul>
      <li>Mainnet: Binance deposits (likely using fake KYC)</li>
      <li>BSC: Tornado Cash deposits</li>
    </ul>
  </li>
</ul>]]></content><author><name>Daniil Fronts</name></author><category term="Wintermute" /><category term="Alpha" /><category term="Writeup" /><category term="Rabbithole" /><summary type="html"><![CDATA[Rabbithole Task It turns out that Vyper has a bug, and some of the Curve pools were vulnerable, so you observed how, despite whitehat efforts, three different pools were drained. A few days later, you found that exploiters returned funds for two of them, but what about the “CRV/ETH one”? You have reasons to believe that this exploiter is responsible for some of the other DeFi exploits that have occurred in the same year. Please provide at least two examples (with different exploiter EOAs) of the previous exploits with Etherscan links and the reasoning that proves connections (some high-level details about the methodology could be helpful for solidifying proofs as well). You can’t use any data after 5th August, 2023 to prove your points. Solution Initial Analysis of CRV/ETH Exploiter To find other attacker wallets, I researched behavior patterns and unique markers that differentiate this exploiter from other hackers. Key points for hacker activities: Deposit address (ETH needed for gas fees) Exploit execution (the most important indicator) Withdrawal address Transaction behavior patterns Deposit The initial deposit came from Binance, likely to bypass security monitoring since Binance deposits are typically considered safe. While monitoring systems focus on Tornado Cash, Railgun, FixedFloat, and other mixers, the attacker probably used fake KYC documents to fund through Binance. Withdrawal Stolen funds moved to “CRV/ETH Exploiter 2”, but only 1,500 ETH went through Tornado Cash. The remaining stolen funds still sit in the wallet for unknown reasons. Activity Before the Hack This account was initially created to attack the MiningRig contract. The attacker began preparing on July 28 but was too slow. c0ffeebabe.eth exploited it first on July 29 (potentially frontrunning other hackers). This suggests the CRV/ETH exploiter was trying to exploit an already known vulnerability. The CRV/ETH Exploiter drained what remained, obtaining 32.291419732496523585 ETH (~$60K at that time) - modest profit for a hacking operation. Transaction example The Hack Itself The attacker didn’t discover the Vyper vulnerability independently. At least 5 different actors had already exploited it, with Twitter buzzing about the bug. The CRV/ETH Exploiter simply wrote his own exploit for this known vulnerability. Timeline spreadsheet Once the Vyper reentrancy vulnerability went public, every second counted. The attacker likely reused this wallet for the CRV/ETH attack to save time on anonymous deposits. Exploit Techniques Each exploit contract used the same unique obfuscation: double keccak256 hashing with bytes manipulation for owner checks, preventing MEV bots from frontrunning the exploit. Attacker Markers After the review, I identified the following attacker markers: Double keccak256 (most unique identifier) Binance deposits for funding Multiple hacks from the same wallet Delayed withdrawals via separate wallets Targets small projects without audits Accepts small profits (&lt;$100k per hack) Drains leftover funds from other hackers’ exploits Hack Research I reviewed Ethereum Q1-Q2 2023 hacks using the BlockThreat newsletter archive. After several hours of research, I discovered that double keccak check is incredibly unique - it appears almost exclusively in wallets with similar attacker markers. I identified 7 accounts with very similar characteristics. Note: I define malicious wallet activity as exploit creation and execution transactions only. Swaps and withdrawals are excluded since attackers often wait extended periods before moving funds. Case #1 Attacker EOA: 0xceed34f03a3e607cc04c2d0441c7386b190d7cf4 Activity Period: 2022-11-04 to 2023-01-26 Shared Characteristics with CRV/ETH Exploiter Binance funding Double keccak checks in exploit (without bytes manipulation - likely improved in later attacks as this was deployed end of 2022) Funds partially remain in exploit contracts Multiple hacks from the same address Targets low-cap tokens Attack Examples The attacks included manipulation of different token pairs ($CANDLE, $BCI, $RINU). This account has an extensive history with many hacked protocols: ElasticSwap: 0x23bc33d17cb268a7588a9c0dde9127705b464b7c12a44b5ca41fa911bc26d583 $CANDLE, $BCI, $RINU manipulations: BlockSec analysis Convex locks stealing: 0xdb0ec2d6ddef41f599b804e6022a4b6eea6ba6cf3a919dc880a7472be2e1d58c UPS token skim() attack: 0x4b3df6e9c68ae482c71a02832f7f599ff58ff877ec05fed0abd95b31d2d7d912 Additional Behavioral Insights This wallet’s activity confirmed my initial markers and revealed new patterns: Confirmed: Same account used for multiple hacks over extended periods Confirmed: Targets any vulnerable protocol, regardless of potential profit (some yielded &lt;$100) New marker: Never uses self-destructing contracts, despite their popularity at the time Case #2 Attacker EOA: 0xdbdf5f801da11d65fe9b1d449cbed6ebe2f04fd3 Activity Period: 2023-04-09 to 2023-04-24 Shared Characteristics with CRV/ETH Exploiter Binance funding Double keccak checks in exploit Multiple hacks from the same address Withdrawal via Tornado Cash Targets low-cap tokens Attack Examples Swapos hack: 0x87a34e9d1d991c6747242fc64f25be05da68522aa14aaffdcbb44dc78b66c50c DefiGreek hack: 0xa32c84ad09369880dfbdf01bcacc2de632ab8c49d97c33ef695fd0d344955b3d Case #3 Attacker EOA: 0x3bfe2a46f0050c76ea95b65abfa826bbfb27596d Activity Period: 2023-04-27 to 2023-04-28 Shared Characteristics with CRV/ETH Exploiter Binance funding Double keccak checks in exploit Funds partially remain in exploit contracts Exploits vulnerabilities after other hackers Targets low-cap tokens Attack Examples Fortube hack: Transaction Case #4: Start of BSC Operations Attacker EOA: 0x2d2bcd3caed4b51b7090c78cfd73ea091a4b44de Activity Period: 2023-04-03 to ~2023-05-06 Note: Unlike mainnet operations, the attacker used Tornado Cash deposits on BSC instead of Binance across all identified wallets. Shared Characteristics with CRV/ETH Exploiter Double keccak checks in exploit Multiple hacks from the same address Withdrawal via Tornado Cash Targets low-cap tokens Attack Examples FryingDutchManSailingBusd: Transaction CHATGPT: Transaction Andre Anonymous (AA): Transaction Case #5 Attacker EOA: 0x054a3574d8082112575843dd944ff42c58dda38d Activity Period: 2023-05-21 to 2023-05-24 Shared Characteristics with CRV/ETH Exploiter Double keccak checks in exploit Multiple hacks from the same address Targets low-cap tokens Attack Examples GCCombinedSwap: Transaction Case #6 Attacker EOA: 0x0A3feE894eb8fCB6f84460d5828d71Be50612762 Activity Period: 2023-05-28 to 2023-06-01 Shared Characteristics with CRV/ETH Exploiter Double keccak checks in exploit Multiple hacks from the same address Targets low-cap tokens Attack Examples Marketplace: Transaction Case #7 Attacker EOA: 0x0060129430df7ea188be3d8818404a2d40896089 Activity Period: 2023-06-02 to 2023-06-10 Shared Characteristics with CRV/ETH Exploiter Double keccak checks in exploit Multiple hacks from the same address Targets low-cap tokens Attack Examples SELLC: Transaction Conclusion The attacker demonstrated consistent behavior patterns across all cases: Target selection: Focus on low-security projects without audits Profit tolerance: Willing to exploit for minimal profits (&lt;$100) Attack type: Primarily liquidity/reward manipulation attacks Technical signature: Unique double keccak256 owner check implementation Wallet management: Rotating hot wallets for multiple consecutive hacks Account migration: Clear chronological progression from one account to another Withdrawal pattern: Delayed withdrawals while continuing attacks from new wallets Funding sources: Mainnet: Binance deposits (likely using fake KYC) BSC: Tornado Cash deposits]]></summary></entry><entry><title type="html">Writeup for “Red Flags Everywhere” Wintermute Alpha 2025</title><link href="https://frodan.github.io/2025/09/01/Wintermute-Alpha-2025-Red-Flags-Everywhere-Writeup.html" rel="alternate" type="text/html" title="Writeup for “Red Flags Everywhere” Wintermute Alpha 2025" /><published>2025-09-01T00:00:00+00:00</published><updated>2025-09-01T00:00:00+00:00</updated><id>https://frodan.github.io/2025/09/01/Wintermute-Alpha-2025-Red-Flags-Everywhere-Writeup</id><content type="html" xml:base="https://frodan.github.io/2025/09/01/Wintermute-Alpha-2025-Red-Flags-Everywhere-Writeup.html"><![CDATA[<h1 id="red-flags-everywhere">Red Flags Everywhere</h1>

<h2 id="task">Task</h2>

<p>You were responsible for the tech due diligence of a new shiny Ethereum SVM L2, which just launched <a href="https://github.com/Eclipse-Laboratories-Inc/dev-docs/tree/main/developers/rpc-and-block-explorers#eclipse-testnet">testnet</a>. In the end, you passed on investing because of multiple red flags, but now you want to check how’s it going.</p>

<ol>
  <li>Their testnet had no downtime, but was the blob posting on Celestia also consistent? If not, what were the gaps in posting?</li>
  <li>For good or bad, this L2 went live. What were the top-5 activity sources for last month, and what’s their economic sense?</li>
  <li>Amongst whale depositors, you found one of the <a href="https://etherscan.io/address/0x88cf132d5d46c390391344a1ec8bb98340d8a066">market makers</a>. What do they do on the L2? Provide a few examples of DeFi positions they had there. Provide explorer links, if possible.</li>
</ol>

<h2 id="solution">Solution</h2>

<h3 id="1-celestia-blob-posting-consistency">1. Celestia Blob Posting Consistency</h3>

<p>From the task description, I found Eclipse’s <a href="https://mocha-4.celenium.io/namespace/0000000000000000000000000000000000000000000065636c74330a?tab=Blobs">Celestia namespace</a>.</p>

<p><img src="/assets/images/2025/wintermute-alpha/red-flags-everywhere/Namespace.png" alt="Namespace" /></p>

<p>With 105,000 blobs to analyze, I needed to download the entire dataset first. A quick dive into Celenium’s documentation revealed the right API endpoint for bulk data extraction.</p>

<blockquote>
  <p><strong>- Claude code, generate a Python script and download all blob data into a .json file using this API. Download in batches, save progress on each step.</strong></p>

  <p><em>- Here is your 85 MB JSON file!</em></p>

  <p><strong>- Now generate a Python script to calculate average time between blob postings using numpy and give me a report with the list of deviations and proofs. Use matplotlib to draw the gaps histogram. Make it beautiful.</strong></p>
</blockquote>

<p><img src="/assets/images/2025/wintermute-alpha/red-flags-everywhere/blob_gap_histogram.png" alt="Histogram" /></p>

<p><strong>Task #1 is completed.</strong></p>

<h4 id="analysis-results">Analysis Results</h4>

<table>
  <thead>
    <tr>
      <th>Gap Duration</th>
      <th>Time Period</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>42.6 days</strong></td>
      <td>Feb 25 - Apr 8, 2024</td>
      <td>Complete shutdown for 6 weeks</td>
    </tr>
    <tr>
      <td><strong>23.9 days</strong></td>
      <td>Dec 16, 2023 - Jan 9, 2024</td>
      <td>Probably went on holiday break?</td>
    </tr>
    <tr>
      <td><strong>2.5 days</strong></td>
      <td>Feb 17-20, 2024</td>
      <td>Short outage</td>
    </tr>
    <tr>
      <td><strong>8.9 hours</strong></td>
      <td>Dec 13-14, 2023</td>
      <td>Brief interruption</td>
    </tr>
  </tbody>
</table>

<p><strong>Summary</strong>: The blockchain had no posted blobs for <strong>77.9 days</strong> during the testnet period, which represents <strong>59.5%</strong> of the entire testnet duration.</p>

<h3 id="2-blockchain-activity-analysis">2. Blockchain Activity Analysis</h3>

<p>Next, I needed to analyze blockchain data. Dune did not support queries on Eclipse, however there was another great instrument for this task: <a href="https://docs.flipsidecrypto.xyz/welcome-to-flipside/flipside-growth-mcp">Flipside MCP</a></p>

<blockquote>
  <p><strong>- Claude code, using Flipside MCP generate for me a list of the top 6 most active programs in Eclipse for the last month.</strong></p>
</blockquote>

<p>Obtained data:</p>

<table>
  <thead>
    <tr>
      <th>Rank</th>
      <th>Program Address</th>
      <th>Total Events</th>
      <th>Unique TXs</th>
      <th>Unique Users</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td><code class="language-plaintext highlighter-rouge">ComputeBudget111111111111111111111111111111</code></td>
      <td>8,751,908</td>
      <td>5,403,041</td>
      <td>39,504</td>
    </tr>
    <tr>
      <td>2</td>
      <td><code class="language-plaintext highlighter-rouge">FUCHhfHbuxXBWiRBfVdhmiog84sUJw11aAq3ibAUGL6e</code></td>
      <td>4,345,052</td>
      <td>2,172,526</td>
      <td>1</td>
    </tr>
    <tr>
      <td>3</td>
      <td><code class="language-plaintext highlighter-rouge">F1ULBrY2Tjsmb1L4Wt4vX6UtiWRikLoRFWooSpxMM6nR</code></td>
      <td>1,664,168</td>
      <td>1,664,168</td>
      <td>414</td>
    </tr>
    <tr>
      <td>4</td>
      <td><code class="language-plaintext highlighter-rouge">EorefDWqzJK31vLxaqkDGsx3CRKqPVpWfuJL7qBQMZYd</code></td>
      <td>1,198,275</td>
      <td>1,096,219</td>
      <td>399</td>
    </tr>
    <tr>
      <td>5</td>
      <td><code class="language-plaintext highlighter-rouge">pythWSnswVUd12oZpeFP8e9CVaEqJg25g1Vtc2biRsT</code></td>
      <td>553,750</td>
      <td>553,750</td>
      <td>96</td>
    </tr>
    <tr>
      <td>6</td>
      <td><code class="language-plaintext highlighter-rouge">5vuYxBvVVNcdw6Dkea79xDRpBi5Q4253vMMZdvUDoMpX</code></td>
      <td>533,628</td>
      <td>533,628</td>
      <td>20</td>
    </tr>
  </tbody>
</table>

<p>Let’s review the results.</p>

<h4 id="obvious-ones">Obvious ones</h4>
<ul>
  <li><code class="language-plaintext highlighter-rouge">ComputeBudget111111111111111111111111111111</code> - a standard Solana program.</li>
  <li><code class="language-plaintext highlighter-rouge">pythWSnswVUd12oZpeFP8e9CVaEqJg25g1Vtc2biRsT</code> - a Pyth oracle.</li>
</ul>

<h4 id="less-obvious">Less obvious</h4>
<ul>
  <li><code class="language-plaintext highlighter-rouge">EorefDWqzJK31vLxaqkDGsx3CRKqPVpWfuJL7qBQMZYd</code> - BITZ Program</li>
  <li><code class="language-plaintext highlighter-rouge">F1ULBrY2Tjsmb1L4Wt4vX6UtiWRikLoRFWooSpxMM6nR</code> - BITZ Noop Program</li>
  <li><code class="language-plaintext highlighter-rouge">5vuYxBvVVNcdw6Dkea79xDRpBi5Q4253vMMZdvUDoMpX</code> - BITZ Mining Program</li>
</ul>

<p>Google had no info about these programs, but GitHub search revealed the source:
<img src="/assets/images/2025/wintermute-alpha/red-flags-everywhere/Github_Bitz.png" alt="GitHub Search" /></p>

<p><strong>BITZ</strong> is a fork of the <a href="https://github.com/regolith-labs/ore/tree/master">ORE</a> project. BITZ tokens could be mined, generating significant on-chain noise similar to Ordinals tokens.</p>

<h4 id="not-obvious-at-all">Not obvious at all</h4>
<ul>
  <li><code class="language-plaintext highlighter-rouge">FUCHhfHbuxXBWiRBfVdhmiog84sUJw11aAq3ibAUGL6e</code></li>
</ul>

<p>This was the trickiest one. The #1 program on chain by activity. There was no info on GitHub, Google, Twitter, etc.</p>

<p>What the FUCH was this?</p>

<p>I started reviewing transactions on EclipseScan. At first I thought this was a MEV bot, however its transactions did not have any balance changes or token transfers. Only strange instructions:
<img src="/assets/images/2025/wintermute-alpha/red-flags-everywhere/Instructions.png" alt="Instructions" /></p>

<ol>
  <li>
    <p><code class="language-plaintext highlighter-rouge">setComputeUnitLimit</code> — sets how many compute units (resources) the transaction can use. (like gasLimit).</p>
  </li>
  <li><code class="language-plaintext highlighter-rouge">setComputeUnitPrice</code> — sets the price per CU to increase priority. (like gasPrice).</li>
  <li>??</li>
  <li>??</li>
</ol>

<p>Two instructions with unknown data were updating random looking accounts.</p>

<p>I tried to decompile the program and review it using my friend’s <a href="https://github.com/Decurity/solana-ebpf-ida-processor">tool</a>. I quickly understood this was not the right approach.</p>

<p>I tried to review the account updates dynamically and understand what data was changed (I don’t know why I thought this was a good idea)
<img src="/assets/images/2025/wintermute-alpha/red-flags-everywhere/monitoring.png" alt="Monitoring" /></p>

<p>I didn’t understand anything, but it looked like an oracle.</p>

<p>Finally I asked myself the right questions.</p>
<ul>
  <li>“How many accounts were updated by this program?”</li>
  <li>“Who else uses them?”</li>
</ul>

<blockquote>
  <p><strong>- Claude Code, using Flipside MCP give me the list of all accounts that were passed to program <code class="language-plaintext highlighter-rouge">FUCHhfHbuxXBWiRBfVdhmiog84sUJw11aAq3ibAUGL6e</code></strong></p>
</blockquote>

<p><strong>Writable accounts (3 pairs):</strong></p>

<table>
  <thead>
    <tr>
      <th>Pair</th>
      <th>Activity %</th>
      <th>Account 1</th>
      <th>Account 2</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>61.79%</td>
      <td><code class="language-plaintext highlighter-rouge">CYESsyLqZb5qLxmBiRaMfJzWho9uaJtHZ99kGCg7Wf8K</code></td>
      <td><code class="language-plaintext highlighter-rouge">BJYusw5QvkWGLTwsXuVwvkjZJcMDW8SKGengPcdcgJ1m</code></td>
    </tr>
    <tr>
      <td>2</td>
      <td>24.53%</td>
      <td><code class="language-plaintext highlighter-rouge">6Si5jzZCnZYzqU9ap8NGMjdar5z3stZJGoi7PRh7Z4hc</code></td>
      <td><code class="language-plaintext highlighter-rouge">7YAFeKLJF1BQHwdXXMzPgjrHoHZewDK58QwcC7o5YYa</code></td>
    </tr>
    <tr>
      <td>3</td>
      <td>13.68%</td>
      <td><code class="language-plaintext highlighter-rouge">4bbK5m6YSPyALDa5uE9WYMLwnqEATHDzWdYqFZJ6Ezrf</code></td>
      <td><code class="language-plaintext highlighter-rouge">E4wLiGrpMi2RtH7c1WrTzCdVVEi58za1XzPygtr7Kmz1</code></td>
    </tr>
  </tbody>
</table>

<p>Interesting, only 6 accounts in total. More confidence that it is oracle.</p>

<blockquote>
  <p><strong>- Claude code, who else uses these accounts?</strong></p>
</blockquote>

<h4 id="high-volume-signers-1000-transactions">High-Volume Signers (1000+ transactions)</h4>

<table>
  <thead>
    <tr>
      <th>Signer Address</th>
      <th>Transaction Count</th>
      <th>Latest Transaction Hash</th>
      <th>Fee</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">4bEk3CLwmnRHQxUEqDtNcXabz8RSdQyMpsAKJTaM8NUc</code></td>
      <td>1,039,703</td>
      <td><code class="language-plaintext highlighter-rouge">48pazBGykXLppjXRka1gJftr9asQGA4JrfufDsCyFbJ47jv2h8BqDhc7TLpufV6haXLo94P68n3YLqQ1szT6Sz6h</code></td>
      <td>90</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">9rXhiXGzY4Jht77LAPTz2jYVwmsGVcA3e3Ur4U64hkYR</code></td>
      <td>15,083</td>
      <td><code class="language-plaintext highlighter-rouge">3zpYrM2R7GmRHnBBrRNJPeawwC6bcoxH6a9G1L9xBV6h14LzGhSMbpbdTQQ9T3FSv2W8eArC2jzSM1G9ZFnjQRfm</code></td>
      <td>50</td>
    </tr>
  </tbody>
</table>

<h4 id="medium-volume-signers-10-100-transactions">Medium-Volume Signers (10-100 transactions)</h4>

<table>
  <thead>
    <tr>
      <th>Signer Address</th>
      <th>Transaction Count</th>
      <th>Latest Transaction Hash</th>
      <th>Fee</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">CCouRkoUhb3n6BwmSTJBV1AeGsjCoPVEZq2NWX8fEhz5</code></td>
      <td>71</td>
      <td><code class="language-plaintext highlighter-rouge">5ymsZ5wign5yyqhjWaDEFNwF8aL6GyipFBjSehSk3bZjbAbFZPJbH1etRfGUc6A2PMAMfA4KSh61MRL8LoLC6fs1</code></td>
      <td>50</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">64zm1Wcxn4nV2jrCV4B6tFKwH8upBV49pACZAWwN32Bi</code></td>
      <td>57</td>
      <td><code class="language-plaintext highlighter-rouge">ksiFaZ9dBEd14HT3err4PemCx9VMJ1iQTJyRYFG5C4DaJ5rKZAnrGThc3WuEWPSep87GreDiHJmW3JNqtUxScPe</code></td>
      <td>50</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">FhB5zMd8GhAqgvNtjb2F2QnfvYuqWEWSkJRVocuboDMd</code></td>
      <td>45</td>
      <td><code class="language-plaintext highlighter-rouge">5pRzrkT3Cd823WcbBNAJD4J3ytA3VKKzpGsHDSXUJnkpr4BjBdh53wivSQZ332VKC72UjLRoTmu4b2yJJTbKzW8T</code></td>
      <td>50</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">27a2Ax36ALmWJs2coiKLSTHaj5ZDwe3ChGtRqPKMCDV1</code></td>
      <td>42</td>
      <td><code class="language-plaintext highlighter-rouge">4QqFQa88k9u4hjnfckDCTP2qcS3WeCEzwbqAucJH6nLbVgYQkVWQz6yg2bFwmXTFSQhkRfLhWun2RWi24fKXL9NJ</code></td>
      <td>50</td>
    </tr>
  </tbody>
</table>

<p>That’s a lot of signers! I looked at the latest transactions to see what they were doing:</p>

<p><img src="/assets/images/2025/wintermute-alpha/red-flags-everywhere/Swap.png" alt="Swap" /></p>

<p>It was a swap transaction using an unknown program. The program was using those mystery accounts. But what was this program?</p>

<p><img src="/assets/images/2025/wintermute-alpha/red-flags-everywhere/Lifiniti.jpg" alt="Lifiniti" /></p>

<p>Everything pointed to Lifinity. After looking at their docs and how they work on Solana, it became clear - this was a <a href="https://docs.lifinity.io/dex/oracle">Lifinity oracle</a>.</p>

<p>The same oracle they use on Solana: https://solscan.io/account/5uD7Z9p3iBznhR7xidhh91NUPUjak1LCxAMnjB5LsXdL.</p>

<p><strong>Task #2 is completed.</strong></p>

<h3 id="3-market-maker-wallet-activity">3. Market Maker Wallet Activity</h3>

<p>Now for the third task. I had the market maker’s Ethereum address and needed to track down their Eclipse wallet.</p>

<p>The key was finding their bridge transactions:</p>

<h4 id="bridge-deposits-summary">Bridge Deposits Summary</h4>

<table>
  <thead>
    <tr>
      <th>Bridge</th>
      <th>Deposits</th>
      <th>Total Amount</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Eclipse Canonical Bridge</strong></td>
      <td>13</td>
      <td><strong>574.48 ETH</strong></td>
    </tr>
    <tr>
      <td><strong>Hyperlane Bridge</strong></td>
      <td>5</td>
      <td><strong>327.28 weETH</strong></td>
    </tr>
  </tbody>
</table>

<p>Every bridge deposit transaction (<a href="https://etherscan.io/tx/0x53a49ffcbd9244dc738d3157541cbd0d358163c67aa3eabf4b597e7abeed04aa">example</a>), had the same recipient address in the calldata: <code class="language-plaintext highlighter-rouge">0xb5bafe14678cfd682d3b40d01a809b243b7544a3fa6975582ac2a5e3f4c59939</code></p>

<p><img src="/assets/images/2025/wintermute-alpha/red-flags-everywhere/Deposit.png" alt="Deposit" /></p>

<p>Converting it to base58 format gave me the Solana address format.</p>

<p>The MM’s Eclipse account: <a href="https://eclipsescan.xyz/account/DEQAtFnQYmmVgguovNNpk6NCwiumdxxnJ1dmwWT8FgMN"><code class="language-plaintext highlighter-rouge">DEQAtFnQYmmVgguovNNpk6NCwiumdxxnJ1dmwWT8FgMN</code></a></p>

<h4 id="main-activities">Main Activities</h4>

<p>Transaction history showed the wallet’s main activity was providing liquidity across local DEXs:</p>

<ul>
  <li><strong>Umbra.Finance</strong></li>
  <li><strong>Orca Whirlpools</strong></li>
  <li><strong>Solar</strong></li>
</ul>

<p><img src="/assets/images/2025/wintermute-alpha/red-flags-everywhere/History.png" alt="History" /></p>

<p>At first, everything looked normal. The market maker had one position in each DEX. But when I looked closer, the red flags started showing up.</p>

<h4 id="1-umbrafinance">1. Umbra.Finance</h4>
<ul>
  <li><a href="https://eclipsescan.xyz/token/CGB9SzevpWEdTMarmWaTygbrH23WtzZGjGYWGD9rX4jA">ETH/weETH LP position</a></li>
</ul>

<p>MM owned the entire ETH/weETH pool. This single pool made up 2/3 of Umbra’s total value locked.</p>

<p>Hovewer the pool had zero trading volume. No fees. No activity. The protocol looked completely dead after Eclipse launch.</p>

<p>Update September 2025: Even their API stopped working.</p>

<p><img src="/assets/images/2025/wintermute-alpha/red-flags-everywhere/Umbra.png" alt="Umbra" /></p>

<h4 id="2-solar">2. Solar</h4>
<ul>
  <li><a href="https://eclipsescan.xyz/token/ExVXb4F3dZEzM8Ce7FLGWQdLh3oqxU7Fey1hRw3wTMs9">ETH-tETH Position</a></li>
</ul>

<p>Similar red flags. MM’s single $120k position represented 65% of Solar’s $186k total TVL. The position had no volume and no fees.</p>

<p><img src="/assets/images/2025/wintermute-alpha/red-flags-everywhere/Solar.png" alt="Solar" /></p>

<h4 id="3-orca-whirlpools">3. Orca Whirlpools</h4>
<ul>
  <li><a href="https://eclipsescan.xyz/token/3fQgVwgroksgmrbYUGYGe6x5nRBLQTuBQoYNivHGiLLQ">ETH/SOL LP position</a></li>
</ul>

<p>This one looked better at first. The MM owned the entire $2M ETH/SOL pool, but at least Orca had $7M total value and some real trading.</p>

<p>The position made 1.7% returns. However, it did not seem profitable considering the impermanent loss. Even simple ETH staking would have been a better strategy.</p>

<p><img src="/assets/images/2025/wintermute-alpha/red-flags-everywhere/Orca.png" alt="Orca" /></p>

<h4 id="summary">Summary</h4>

<p>While the activity initially appeared as standard LP farming, deeper investigation revealed concerning patterns:</p>

<table>
  <thead>
    <tr>
      <th>Red Flag</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Monopolized Liquidity</strong></td>
      <td>Market maker was the sole liquidity provider in multiple pools</td>
    </tr>
    <tr>
      <td><strong>Zero Volume</strong></td>
      <td>Minimal to zero trading volumes across most positions</td>
    </tr>
    <tr>
      <td><strong>Poor Economics</strong></td>
      <td>Returns didn’t justify capital deployment or impermanent loss risks</td>
    </tr>
    <tr>
      <td><strong>Abandoned Protocols</strong></td>
      <td>Protocols appeared dead post-TGE</td>
    </tr>
  </tbody>
</table>

<p>This didn’t look like genuine market making but rather artificial TVL inflation to make the Eclipse ecosystem appear more active than it actually was.</p>

<hr />

<p><em>Research is done!</em></p>]]></content><author><name>Daniil Fronts</name></author><category term="Wintermute" /><category term="Alpha" /><category term="Writeup" /><category term="Red-Flags-Everywhere" /><summary type="html"><![CDATA[Red Flags Everywhere Task You were responsible for the tech due diligence of a new shiny Ethereum SVM L2, which just launched testnet. In the end, you passed on investing because of multiple red flags, but now you want to check how’s it going. Their testnet had no downtime, but was the blob posting on Celestia also consistent? If not, what were the gaps in posting? For good or bad, this L2 went live. What were the top-5 activity sources for last month, and what’s their economic sense? Amongst whale depositors, you found one of the market makers. What do they do on the L2? Provide a few examples of DeFi positions they had there. Provide explorer links, if possible. Solution 1. Celestia Blob Posting Consistency From the task description, I found Eclipse’s Celestia namespace. With 105,000 blobs to analyze, I needed to download the entire dataset first. A quick dive into Celenium’s documentation revealed the right API endpoint for bulk data extraction. - Claude code, generate a Python script and download all blob data into a .json file using this API. Download in batches, save progress on each step. - Here is your 85 MB JSON file! - Now generate a Python script to calculate average time between blob postings using numpy and give me a report with the list of deviations and proofs. Use matplotlib to draw the gaps histogram. Make it beautiful. Task #1 is completed. Analysis Results Gap Duration Time Period Description 42.6 days Feb 25 - Apr 8, 2024 Complete shutdown for 6 weeks 23.9 days Dec 16, 2023 - Jan 9, 2024 Probably went on holiday break? 2.5 days Feb 17-20, 2024 Short outage 8.9 hours Dec 13-14, 2023 Brief interruption Summary: The blockchain had no posted blobs for 77.9 days during the testnet period, which represents 59.5% of the entire testnet duration. 2. Blockchain Activity Analysis Next, I needed to analyze blockchain data. Dune did not support queries on Eclipse, however there was another great instrument for this task: Flipside MCP - Claude code, using Flipside MCP generate for me a list of the top 6 most active programs in Eclipse for the last month. Obtained data: Rank Program Address Total Events Unique TXs Unique Users 1 ComputeBudget111111111111111111111111111111 8,751,908 5,403,041 39,504 2 FUCHhfHbuxXBWiRBfVdhmiog84sUJw11aAq3ibAUGL6e 4,345,052 2,172,526 1 3 F1ULBrY2Tjsmb1L4Wt4vX6UtiWRikLoRFWooSpxMM6nR 1,664,168 1,664,168 414 4 EorefDWqzJK31vLxaqkDGsx3CRKqPVpWfuJL7qBQMZYd 1,198,275 1,096,219 399 5 pythWSnswVUd12oZpeFP8e9CVaEqJg25g1Vtc2biRsT 553,750 553,750 96 6 5vuYxBvVVNcdw6Dkea79xDRpBi5Q4253vMMZdvUDoMpX 533,628 533,628 20 Let’s review the results. Obvious ones ComputeBudget111111111111111111111111111111 - a standard Solana program. pythWSnswVUd12oZpeFP8e9CVaEqJg25g1Vtc2biRsT - a Pyth oracle. Less obvious EorefDWqzJK31vLxaqkDGsx3CRKqPVpWfuJL7qBQMZYd - BITZ Program F1ULBrY2Tjsmb1L4Wt4vX6UtiWRikLoRFWooSpxMM6nR - BITZ Noop Program 5vuYxBvVVNcdw6Dkea79xDRpBi5Q4253vMMZdvUDoMpX - BITZ Mining Program Google had no info about these programs, but GitHub search revealed the source: BITZ is a fork of the ORE project. BITZ tokens could be mined, generating significant on-chain noise similar to Ordinals tokens. Not obvious at all FUCHhfHbuxXBWiRBfVdhmiog84sUJw11aAq3ibAUGL6e This was the trickiest one. The #1 program on chain by activity. There was no info on GitHub, Google, Twitter, etc. What the FUCH was this? I started reviewing transactions on EclipseScan. At first I thought this was a MEV bot, however its transactions did not have any balance changes or token transfers. Only strange instructions: setComputeUnitLimit — sets how many compute units (resources) the transaction can use. (like gasLimit). setComputeUnitPrice — sets the price per CU to increase priority. (like gasPrice). ?? ?? Two instructions with unknown data were updating random looking accounts. I tried to decompile the program and review it using my friend’s tool. I quickly understood this was not the right approach. I tried to review the account updates dynamically and understand what data was changed (I don’t know why I thought this was a good idea) I didn’t understand anything, but it looked like an oracle. Finally I asked myself the right questions. “How many accounts were updated by this program?” “Who else uses them?” - Claude Code, using Flipside MCP give me the list of all accounts that were passed to program FUCHhfHbuxXBWiRBfVdhmiog84sUJw11aAq3ibAUGL6e Writable accounts (3 pairs): Pair Activity % Account 1 Account 2 1 61.79% CYESsyLqZb5qLxmBiRaMfJzWho9uaJtHZ99kGCg7Wf8K BJYusw5QvkWGLTwsXuVwvkjZJcMDW8SKGengPcdcgJ1m 2 24.53% 6Si5jzZCnZYzqU9ap8NGMjdar5z3stZJGoi7PRh7Z4hc 7YAFeKLJF1BQHwdXXMzPgjrHoHZewDK58QwcC7o5YYa 3 13.68% 4bbK5m6YSPyALDa5uE9WYMLwnqEATHDzWdYqFZJ6Ezrf E4wLiGrpMi2RtH7c1WrTzCdVVEi58za1XzPygtr7Kmz1 Interesting, only 6 accounts in total. More confidence that it is oracle. - Claude code, who else uses these accounts? High-Volume Signers (1000+ transactions) Signer Address Transaction Count Latest Transaction Hash Fee 4bEk3CLwmnRHQxUEqDtNcXabz8RSdQyMpsAKJTaM8NUc 1,039,703 48pazBGykXLppjXRka1gJftr9asQGA4JrfufDsCyFbJ47jv2h8BqDhc7TLpufV6haXLo94P68n3YLqQ1szT6Sz6h 90 9rXhiXGzY4Jht77LAPTz2jYVwmsGVcA3e3Ur4U64hkYR 15,083 3zpYrM2R7GmRHnBBrRNJPeawwC6bcoxH6a9G1L9xBV6h14LzGhSMbpbdTQQ9T3FSv2W8eArC2jzSM1G9ZFnjQRfm 50 Medium-Volume Signers (10-100 transactions) Signer Address Transaction Count Latest Transaction Hash Fee CCouRkoUhb3n6BwmSTJBV1AeGsjCoPVEZq2NWX8fEhz5 71 5ymsZ5wign5yyqhjWaDEFNwF8aL6GyipFBjSehSk3bZjbAbFZPJbH1etRfGUc6A2PMAMfA4KSh61MRL8LoLC6fs1 50 64zm1Wcxn4nV2jrCV4B6tFKwH8upBV49pACZAWwN32Bi 57 ksiFaZ9dBEd14HT3err4PemCx9VMJ1iQTJyRYFG5C4DaJ5rKZAnrGThc3WuEWPSep87GreDiHJmW3JNqtUxScPe 50 FhB5zMd8GhAqgvNtjb2F2QnfvYuqWEWSkJRVocuboDMd 45 5pRzrkT3Cd823WcbBNAJD4J3ytA3VKKzpGsHDSXUJnkpr4BjBdh53wivSQZ332VKC72UjLRoTmu4b2yJJTbKzW8T 50 27a2Ax36ALmWJs2coiKLSTHaj5ZDwe3ChGtRqPKMCDV1 42 4QqFQa88k9u4hjnfckDCTP2qcS3WeCEzwbqAucJH6nLbVgYQkVWQz6yg2bFwmXTFSQhkRfLhWun2RWi24fKXL9NJ 50 That’s a lot of signers! I looked at the latest transactions to see what they were doing: It was a swap transaction using an unknown program. The program was using those mystery accounts. But what was this program? Everything pointed to Lifinity. After looking at their docs and how they work on Solana, it became clear - this was a Lifinity oracle. The same oracle they use on Solana: https://solscan.io/account/5uD7Z9p3iBznhR7xidhh91NUPUjak1LCxAMnjB5LsXdL. Task #2 is completed. 3. Market Maker Wallet Activity Now for the third task. I had the market maker’s Ethereum address and needed to track down their Eclipse wallet. The key was finding their bridge transactions: Bridge Deposits Summary Bridge Deposits Total Amount Eclipse Canonical Bridge 13 574.48 ETH Hyperlane Bridge 5 327.28 weETH Every bridge deposit transaction (example), had the same recipient address in the calldata: 0xb5bafe14678cfd682d3b40d01a809b243b7544a3fa6975582ac2a5e3f4c59939 Converting it to base58 format gave me the Solana address format. The MM’s Eclipse account: DEQAtFnQYmmVgguovNNpk6NCwiumdxxnJ1dmwWT8FgMN Main Activities Transaction history showed the wallet’s main activity was providing liquidity across local DEXs: Umbra.Finance Orca Whirlpools Solar At first, everything looked normal. The market maker had one position in each DEX. But when I looked closer, the red flags started showing up. 1. Umbra.Finance ETH/weETH LP position MM owned the entire ETH/weETH pool. This single pool made up 2/3 of Umbra’s total value locked. Hovewer the pool had zero trading volume. No fees. No activity. The protocol looked completely dead after Eclipse launch. Update September 2025: Even their API stopped working. 2. Solar ETH-tETH Position Similar red flags. MM’s single $120k position represented 65% of Solar’s $186k total TVL. The position had no volume and no fees. 3. Orca Whirlpools ETH/SOL LP position This one looked better at first. The MM owned the entire $2M ETH/SOL pool, but at least Orca had $7M total value and some real trading. The position made 1.7% returns. However, it did not seem profitable considering the impermanent loss. Even simple ETH staking would have been a better strategy. Summary While the activity initially appeared as standard LP farming, deeper investigation revealed concerning patterns: Red Flag Description Monopolized Liquidity Market maker was the sole liquidity provider in multiple pools Zero Volume Minimal to zero trading volumes across most positions Poor Economics Returns didn’t justify capital deployment or impermanent loss risks Abandoned Protocols Protocols appeared dead post-TGE This didn’t look like genuine market making but rather artificial TVL inflation to make the Eclipse ecosystem appear more active than it actually was. Research is done!]]></summary></entry></feed>