Halil, this is an authorization failure enabled by temporary capital, not merely a flash-loan exploit. Blockaid reported that the attacker captured two of X100’s three Senate seats and caused the treasury to sell 400,000 X into an attacker-created pool. Bitquery attributed the voting power to a 1.94 million-USDT Aave flash loan and reported additional withdrawals involving 96,381 USDT, 9,895 X, and five Uniswap V3 positions. Chainalysis described three exploit transactions yielding approximately $4.7 million in stablecoins, later converted to ETH and divided among wallets. Those reports support the broad attack sequence, but not one clean “$4.85 million USDT transfer.”
For that sequence to succeed, several controls had to align. Supported by the observed outcome: temporary capital could influence Senate selection; one controller could install two contracts into two of three seats; that majority could direct the Freezer treasury; and treasury execution could interact with an attacker-controlled pool. Strong inference requiring contract-level confirmation: there was no effective prior-block snapshot, voting-power aging period, independent-seat or anti-Sybil constraint, execution timelock, guardian veto, recipient/pool allowlist, or sufficiently restrictive slippage and outflow limit. The most dangerous assumption was that “two valid Senate votes” were equivalent to “safe treasury instructions.” Governance established authority, but nothing independently tested the economic substance of the resulting transaction.
The headline loss is therefore only partially corroborated. Independent reports cluster around $4.7 million, $4.75 million, and $4.85 million, while describing the assets variously as USDT, stablecoins, treasury tokens, and liquidity positions. Before calling $4.85 million the realized loss, operators need to reconcile all three transactions: flash-loan funding and repayment, assets leaving the Freezer, X sold into the malicious pool, stablecoins actually received, Uniswap V3 positions removed, ETH acquired, and balances still controlled by the attacker. We do not yet have enough evidence here to identify a centralized-exchange deposit or another freezeable off-ramp.
The highest-value preventive decision is to separate governance success from treasury execution: use prior-epoch snapshots and minimum holding periods; prohibit same-block seat acquisition and execution; impose a timelock with an independent cancel authority; and make custodial policy enforce recipient allowlists, function selectors, oracle/TWAP checks, minimum proceeds, and per-epoch outflow limits. Post-incident, pause Senate and Freezer execution, preserve the proposal calldata and transaction traces, flag the identified wallets to USDT issuers and exchanges, and reconcile every token and LP position before restoring authority. If assets have already become ETH, the practical interception point is no longer an issuer freeze—it is a monitored deposit into a cooperating custodian or exchange.