X 100 Incident Analysis

研究与成果 安全事件分析
X 100 Incident Analysis

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. x100 1 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. x100 2 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. x100 3 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. x100 4 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:

  1. 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.
  2. 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.
  3. 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. x100 5 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 9.4milliongrossassetvalue;9.4 million gross asset value;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.

相关博客

Apollo X Incident Analysis

Apollo X Incident Analysis

On June 8, 2022 ApolloX token (APX) dropped by 52.12% resulting from a hack and loss of ~$1.5M

CertiK x Seedify.fund AMA

CertiK x Seedify.fund AMA

On the 22nd of June we invited our community to fire questions to the CertiK team and the great folk at SeedifyFund. The response was amazing, and we had a blast answering your questions!

Boy X Highspeed Incident Analysis

Boy X Highspeed Incident Analysis

Boy X Highspeed (BXH) – a financial services platform for Web3 and metaverse related assets – has suffered a loss of at least $2.4 million across its operations on BSC, Avalanche, and HECO Chain.