Incident Summary
In the first operation, the initiating wallet received about 4.75 million USDT after the flash loan was repaid, while the voting deposits remained locked. On 24 October 2026, borrowed USDT bought enough X to capture two of X100's three Senate seats. That majority immediately authorized treasury trades through liquidity controlled by the executing contract. Selling the resulting X supplied the loan repayment and payout. Three main transactions paid recipients about 4.848 million USDT. Including two follow-on transactions, the legitimate pool's net USDT outflow reached about 4.849 million USDT. The central failure was the gap between the lasting exposure required to obtain governance control and the treasury value that control could reach.
The core mechanism is supported by historical transaction records. Tracing covers selected proceeds routes through the stated cutoff; the service destination is identified by an explorer label.
Figure 1 — First transaction: financed stake becomes Senate authority, treasury value and recipient payout. Voting deposits remain frozen; payout follows lender repayment.
Addresses and Roles
All addresses below are on Ethereum. Roles describe observed accounts, not human identities.
| Address | Established role |
|---|---|
| 0x100a2c7f45fd48e217fdce72e658dc78fd43a100 | X token; six decimals |
| 0x79f35a33fe2813414851c4ae8daeacd14d822a46 | Freezer: deposits, Senate authority and treasury |
| 0xcd5762ac6013fa762782ac1797ab09152c1028e8 | Treasury DEX module |
| 0x0d85edd90c94053fc5997551b1baa8a77aa02fa0 | Legitimate X/USDT pool |
| 0x7ec2afdf3ec5964899894f8d58afa95cbb8ffd63 | First transaction sender and USDT recipient |
| 0x37541fc4a6f1ec86889ba506f51dc39f2bedd10a | First execution contract; retained X |
Background
X100 users freeze X in the Freezer. The Senate ranks registered accounts by their current frozen balances, and two votes in a three-seat Senate can authorize treasury liquidity and exchange operations. Registration fees are separate from frozen deposits.
The Freezer holds treasury X alongside user deposits. After execution, it checks that enough X remains to cover frozen liabilities. A separate token-quantity cap limits market deployment; withdrawing liquidity positions frees room under that cap. Neither control independently establishes that treasury trades receive fair consideration.
Attack Flow
1. Buy Senate control
At 14:11:47 UTC, the first transaction, in block 26,263,022, borrowed 1,942,457.637245 USDT from Aave and bought about 38,200 X. Two helper accounts each froze 19,000.000001 X and paid a separate 100 X candidacy fee.
The prior second-ranked member held 19,000 X. Each new stake exceeded that balance by 0.000001 X, one raw unit, securing two seats. Voting used current rankings and execution required no waiting period, so the new majority executed in the same transaction.
Figure 2 — Receipt log 37 records Proposal 7 executing with two supporting votes in a three-seat Senate. Historical stake and ranking records establish the seat acquisition.
2. Convert authority into treasury value
The majority authorized an exchange of 400,000 X for about 35.68 USDT through liquidity established and controlled by the executing operation. The execution contract collected about 399,987 X, then sold about 131,703 X into the legitimate market for about 6.693 million USDT.
Figure 3 — Receipt log 36 records the treasury exchange. Both tokens have six decimals. Position minting and collection records establish liquidity ownership.
Aave received about 1.943 million USDT, including a financing premium of about 971.23 USDT. The initiating wallet received about 4.75 million USDT, while the execution contract retained about 268,284 X. The frozen voting deposits remained locked: extraction proceeds repaid the loan without requiring an unfreeze. The settlement records show successive stages of the same funds; adding them would double-count the loss.
3. Replace and reuse the authority
At 14:35:59, the second transaction used a 1.95 million USDT Morpho flash loan to establish two stakes of 19,000.000002 X, displacing the first pair. Five withdrawals of treasury liquidity positions returned about 50,000 X, freeing room under the cap before another self-dealing exchange. The recipient received about 96,382 USDT and 9,895 X after repayment.
At 14:40:47, the third transaction exercised the second operation's helper-held authority without acquiring new frozen stake. It used a 300 USDT flash loan and withdrew the large treasury liquidity position. Its final payout was about 1,909 USDT and 549,916 X. Historical calls show this operation using the helpers to propose and vote with the existing seats. Bitquery attributes that reuse to helper governance entry points lacking caller restrictions; this access-control explanation was not independently verified here. Different initiating wallets do not establish different human operators.
Two additional transactions followed at 14:40:59 and 14:41:23, adding about 168.61 USDT of net pool outflow. Both used one sender and consecutive nonces.
| Core transaction | Recipient USDT payout | Legitimate-pool net USDT outflow |
|---|---|---|
| First | 4,749,726.096973 | 4,750,733.001112 |
| Second | 96,381.883491 | 96,381.884163 |
| Third | 1,909.358758 | 1,873.897121 |
| Three-main total | 4,848,017.339222 | 4,848,988.782396 |
The third payout also consumed earlier treasury USDT, explaining why it exceeds that transaction's pool decrease. Including the two follow-on transactions brings the five-transaction pool outflow to 4,849,157.396718 USDT. Borrowing, payouts, conversions and holdings overlap; unsold X is excluded from dollar valuation.
4. Convert and move the proceeds
The first recipient converted about 4.75 million USDT into 2,022.016 ETH. A consolidator received the ETH plus pre-existing funds and forwarded four 400-ETH lots. At the 26 October, 01:20:23 UTC cutoff, the five reviewed holding addresses contained about 2,022.857 ETH, including small balances beyond the conversion proceeds.
The second recipient converted about 96,382 USDT into 40.908 ETH. Two relays sent about 40.900 ETH to an address Etherscan labels ChangeNOW Dep. The tracing record stops at that deposit; customer identity, downstream settlement and completed cash-out remain unproved.
Figure 4 — Reviewed proceeds routes and pinned holdings. These overlap with payouts and pool outflow. ChangeNOW is a service label, not an attribution of customer identity.
Vulnerability
Governance-control value was badly decoupled from market and stake value. The acquired Senate majority extracted enough liquid value to repay its acquisition financing while voting stakes stayed locked.
For the first transaction, a conservative cash-cost estimate is 1.943 million USDT: the voting-token purchase, loan premium, net liquidity-seeding expense and gas. It credits no recovery value to locked or retained X and prices gas using the later observed ETH conversion. That is about 41% of the transaction's 4.751 million USDT net pool outflow.
Three design choices made this possible:
- New stake became immediate authority. Freezer._stakeOf and Senate._tally used current frozen balances and ranking. The proposal deadline was an expiry window; the reviewed execution path imposed no minimum delay. The two new accounts acquired a majority and executed immediately.
- Valid votes could authorize self-dealing trades. The DEX module checked permitted tokens and pool existence, then accepted the minimum return specified in the proposal. It did not independently enforce fair consideration or exclude executor-controlled liquidity. Formal authorization therefore allowed treasury value to leave on the operation's own terms.
- Quantity checks protected a narrower invariant. Covering totalFrozen preserved recorded X liabilities, while withdrawing liquidity positions freed room under the market-deployment cap. Neither imposed a treasury-value loss ceiling. Separately, helper contracts exposed already-acquired authority to later use.
Figure 5 — Local render of the explorer-verified source : current ranking supplies the tally, and execution has no waiting-period check. Historical runtime identity was checked separately.
X100's voting deposits stayed locked while the authority they secured released enough treasury value to repay the loan.
Response and Recovery
No recovery or effective remediation is independently verified in the collected evidence. At the pinned cutoff, the legitimate pool held about 1.97 USDT, while three reviewed execution/payout locations held about 826,902 X. Those illiquid X balances have no reliable realizable dollar value from the depleted market.
The Freezer still covered recorded frozen liabilities, and the Senate still included the second operation's two contract-held seats. Only 0.000002 X of the observed deployment cap remained. The snapshot does not establish that governance was repaired.
Retrospective: The Price of Control
Other governance attacks put that relationship in perspective: what exposure was needed to gain control, what privileges followed, and how much value could be realized.
| Incident | Date | Reported impact |
|---|---|---|
| BonkDAO | 6 July 2026 | 4.426 trillion BONK transferred, marked at approximately $19.3 million |
| Term Finance | 23 August 2026 | Approximately $8.46 million in ETH and USDC |
| Astroport / Neutron | 22 September 2026 | Approximately 1.96 million liquid |
| Arkadiko | 22 October 2026 | Approximately $1.09 million for the Arkadiko drain |
The cases and valuations are source-reported; their full attack sequences were not independently reconstructed here. The figures use different valuation bases; token marks do not establish realized proceeds.
Exposure. BonkDAO's reported return of voting tokens and Arkadiko's reported DIKO resale differ from X100's locked deposits. Acquisition capital and lasting exposure are distinct measures; complete net control costs were not independently reconstructed here. Term Finance reportedly acquired control through a governance-token wrapper with little minted supply, with execution after the voting period.
Privileges. The reported Astroport / Neutron sequence involved eleven contract-admin reassignments, followed by ten malicious migrations and drains. Arkadiko approved a privileged contract whose public withdrawal and mint functions lacked caller authorization. X100's majority instead authorized self-dealing treasury trades. The cases connect voting power to different asset-control privileges.
Realizable value. Only part of the stolen BONK was reportedly transferred to an exchange; a deposit does not establish a completed sale. X100 retained unsold X without a reliable realizable valuation. Arkadiko's USDA burn reduced unbacked supply without recovering collateral. Treasury token marks, minted supply and realized proceeds measure different things.
To keep up to date on the latest incident alerts and statistics, follow @certikalert on X, explore our incident dashboard, or read our latest analysis on certik.com.



