blockintAI · Research blog

Initia Exploit: A MoveVM Bug, About $2.7M Bridged Out, and 1,135.5 ETH Unmoved as of Oct 26

BlockintAI · 2026-10-26T22:33:17.634Z

On October 23, 2026, one account on Initia, a layer 1 blockchain built to connect many app-specific rollups, credited itself with tokens that nothing backed. It sent copies of USDC, AUSD and ether back over the bridges that serve Initia, and real coins came out on Ethereum. Initia halted its L1 and all of its rollups at 10:41:30 AM CT (15:41:30 UTC), 42 minutes after the exploit began.

Initia says the attacker bridged out roughly $2.7M before the halt: 105 WETH and about 1.4M AUSD0 through LayerZero, and about 1.08M USDC through Noble and Circle's CCTP. The tokens were swapped for 1,135.52 ETH, which sits in one Ethereum wallet. When we checked that wallet at 7:42 AM CT on October 26, it had never sent a transaction.

Times are in US Central Time (CT), with UTC in brackets where it matters.

Key facts

Date Oct 23, 2026; exploit began 9:59 AM CT (14:59 UTC), chain halted 10:41:30 AM CT (15:41:30 UTC)
Root cause (Initia) A bug in MoveVM's script caching let malicious code bypass security checks and spoof MoveVM state, crediting unbacked WETH, iUSD and USDC
Credited on Initia 3,000,000 iUSD, 2,000,000 USDC, 2,000,000 AUSD0 and 200 WETH, about $7.48M at face value, in four transactions over 13 seconds (Initia's public indexer)
Taken out About $2.7M (Initia): 105 WETH and ~1.4M AUSD0 via LayerZero, ~1.08M USDC via Noble and CCTP. Cointelegraph, citing D2 Finance, put the consolidated 1,135.5 ETH at $2.73M
Where it is 1,135.52 ETH in 0x358ef0130f7a5aa516dcd81bdc80b18cde41cac8, unmoved as of 7:42 AM CT Oct 26
Attacker (Ethereum) 0xdd922c841d85e12dac2dc2eef5a5e29cfff6edfa, same key as Initia account init1mkfzepqashsjmtpdcth0tf0znnlldm06a5m89u
Gas money 0.098 ETH from the Etherscan-labeled Tornado.Cash: 0.1 ETH pool, about 6.5 hours before the attack
Status (Initia, Oct 24) Chain still halted; a fix is being written and audited; asset recovery under way with security partners
BlockintAI reports Initia L1 unbacked-mint exploit and follow-up on the attacker's Initia account

What happened

The alarm and the halt

An early public alarm came from researcher Spreek, who posted at 10:27 AM CT that Initia was being "infiniminted" and that the hacker had already cashed out about $2.6M. A minute later he posted the attacker's Ethereum address.

Initia announced the halt at 11:00 AM CT, saying the L1 and rollups had been stopped at 10:41:30 AM CT because of a security incident. Agora, which issues the AUSD stablecoin, said later that day that AUSD and Agora were unaffected, that AUSD is fully backed and that AUSD does not exist on Initia. Initia's own account names the token that moved on Initia as AUSD0.

Initia's explanation

On the morning of October 24, Initia published its account. At 14:59 UTC on October 23, it said, an attacker exploited a bug in Initia MoveVM's script caching that allowed malicious code to bypass security checks. The attacker spoofed the MoveVM state and credited itself with unbacked WETH, iUSD and USDC without changing the tokens' total supply. No native INIT was minted.

That detail matters. The chain's own supply counts did not show the new tokens, so nothing on the surface looked like a mint.

Who paid

A bridge cannot really move a coin. It locks the real coin in a reserve on its home chain and issues a copy on the other chain. When someone sends the copy back, the copy is destroyed and the reserve pays out the real coin. A reserve cannot tell a copy that was printed from nothing from a real one.

Initia's public indexer shows what the attacker's account was credited with. In four transactions between 9:59:17 and 9:59:30 AM CT, 13 seconds in all (Initia blocks 23,364,843 to 23,364,849), it received 3,000,000 iUSD, 2,000,000 USDC, 2,000,000 AUSD0 and 200 WETH, with no matching withdrawal from any other account. That is about $7.48M at face value, counting iUSD, USDC and AUSD0 at $1 each and WETH at about $2,407. The largest piece was iUSD, a token listed in Initia's asset registry; as shown below, none of it left Initia. Between 10:00 and 10:33 AM CT the account made 11 attempts to move tokens off Initia, and four got through.

Two of those reserves sit on Ethereum, and their balances can be read at any past block. The LayerZero ETH bridge contract that paid the attacker 105 ETH, 0x66a503…1bde, held 109.84 ETH at 9:55 AM CT and 4.85 ETH at 11:30 AM CT, a drop of about 96%. The AUSD adapter 0x38b8b7…c844 held 1,976,141.04 AUSD at 9:55 AM CT and 576,141.04 AUSD at 11:30 AM CT, about 71% less (Ethereum blocks 26,256,056 and 26,256,529).

On the Initia side, Initia's public indexer shows the attacker's account making three LayerZero withdrawals (1,400,000 AUSD0, 105 WETH and 200,000 AUSD0) and five USDC transfers to Noble between 10:00 and 10:33 AM CT. The first two LayerZero withdrawals arrived on Ethereum; the 200,000 AUSD0 did not. Two of the USDC transfers went through: 1,000,000 USDC at 10:01 AM CT and 80,000 USDC at 10:24 AM CT, which arrived on Ethereum through CCTP. Noble returned the other three (1,000,000, 200,000 and 920,000 USDC) with errors. The other three attempts never left Initia: a fourth LayerZero withdrawal, of 400,000 AUSD0 at 10:12 AM CT, failed on Initia itself, and two attempts at 10:16 and 10:31 AM CT to route 500,000 and then 200,000 iUSD off the chain through a swap came straight back to the account.

The 200,000 AUSD0 message never cleared on Ethereum. As of 8:30 AM CT October 26, LayerZero Scan shows four of its five required verifiers signing it, while the fifth, the address Etherscan labels LayerZero: DVN, never did. At 12:51 PM CT a transaction through the AUSD adapter's owner contract nilified the message on LayerZero's Ethereum endpoint, which blocks it from being executed unless it is verified again.

The USDC reserve that backs USDC on Initia is Noble's IBC escrow account for its Initia channel. Noble's public archive node shows it holding 1,087,382.84 USDC at 10:00 AM CT and 63.16 USDC at 10:37:49 AM CT, 36 minutes after the attacker's first USDC transfer left Initia. Besides the attacker's 1,080,000 USDC, 13 smaller withdrawals from four other Initia accounts cleared in that window, about 32,368 USDC in all. From 10:28 AM CT the reserve could no longer cover every request: between 10:28 and 10:41 AM CT, 57 USDC withdrawals from three other Initia accounts, 55 of them from a single account, bounced because the escrow held less than the amount requested.

The Ethereum side, step by step

Everything below can be checked on Etherscan. The attacker's Ethereum address is 0xdd922c841d85e12dac2dc2eef5a5e29cfff6edfa. Its Initia account, init1mkfzepqashsjmtpdcth0tf0znnlldm06a5m89u, uses an Ethereum-style key, and decoding it gives the same 20 bytes as the Ethereum address, so the two are one key on two chains. That Initia account sent the sample fake-mint transaction Spreek linked (Initia block 23,364,847, 9:59:26 AM CT).

Preparation

  • 3:26 AM CT (08:26 UTC): the address received its first funds, 0.0979 ETH from the contract Etherscan labels Tornado.Cash: 0.1 ETH (transaction). Tornado Cash is a mixer, so who deposited that ETH is not visible on-chain.
  • 8:14 to 9:24 AM CT: three small payments (0.008, 0.00009 and 0.00045 ETH) to a proxy contract, each followed by a small refund from the contract Etherscan labels Axelar: Gas Service. Axelarscan shows all three as executed cross-chain calls from Ethereum to Osmosis.
  • 9:37 AM CT: 0.006 ETH sent through the LayerZero ETH bridge contract 0x66a503…1bde. At 9:42 AM CT, Initia's indexer shows 141.07 INIT arriving in the attacker's Initia account from an Osmosis address over IBC.

Cash-out, 10:01 to 10:26 AM CT

Time (CT) What arrived Then
10:01:59 1,400,000 AUSD from 0x38b8b7…c844, an AUSD LayerZero OFT adapter per its verified source (tx) Swapped on the Etherscan-labeled 1inch: Aggregation Router V6 for 581.56 ETH at 10:03 (tx)
10:02:35 999,999.89 USDC minted through CCTP (tx) Swapped on 1inch for 415.70 ETH at 10:04 (tx)
10:06:47 105 ETH from the ETH bridge contract 0x66a503…1bde (tx) Kept as ETH
10:25:11 79,999.85 USDC minted through CCTP (tx) Swapped through a 0x MainnetSettler contract for 33.18 ETH at 10:26 (tx)

The AUSD and the first USDC batch were both sold within three minutes of landing, at about $2,407 per ETH. When Agora said at 11:57 AM CT that it would freeze funds related to hacker addresses that hold AUSD on chains where its contracts are deployed, the attacker's Ethereum address had held no AUSD since 10:03 AM CT.

Five seconds after the halt

At 10:41:35 AM CT (15:41:35 UTC), five seconds after Initia stopped, the attacker sent 1,135.5246 ETH to a fresh address, 0x358ef0130f7a5aa516dcd81bdc80b18cde41cac8 (transaction). Initia named the same wallet as the one holding the proceeds.

When we re-checked at 7:42 AM CT on October 26 (Ethereum block 26,276,932), the wallet held 1,135.5247 ETH and its nonce was still 0: it has never sent a transaction. The only things that have arrived since are three dust payments from other addresses and one fake token transfer, described next.

The poisoners moved in

Within two minutes of the move, lookalike addresses appeared around the attacker's wallet. As of 7:42 AM CT October 26, Etherscan shows 67 transfers of fake tokens named "ETH" (or a Unicode lookalike of it), from 26 different token contracts, made to look as if they came from the attacker's address, between 10:43 AM CT October 23 and 3:48 PM CT October 25:

  • one to the real holding wallet, and
  • 66 to five lookalike addresses that start 0x358e or 0x3587 and end in cac8, the same first four and last four characters as the real holding wallet.

Two lookalike addresses also sent the attacker's address tiny amounts of real ETH (0.000000001 ETH or less) so they would show up in its history. This is address poisoning: the scammer hopes someone copies the wrong address from a list of recent transfers. The fake transfers were made by the scammers' token contracts; the attacker's address did not sign them.

For anyone watching this wallet, the lesson is simple: the real holding address is 0x358ef0130f7a5aa516dcd81bdc80b18cde41cac8. Check every character, not just the start and end.

What Initia says now

In its October 24 update, Initia said it is writing a fix for the vulnerability and expects it to be completed and audited "in a few days", that asset recovery efforts are ongoing with security partners, and that the L1 and rollups remain halted until it can resume safely. It promised a full post-mortem. As of 8:00 AM CT on October 26 it had not posted a newer update on X.

Initia also warned users to be wary of unofficial links, messages or claims. After a hack, fake "refund" and "recovery" offers follow quickly. Do not pay anyone who offers to get coins back.

What this means

  • A bridge is only as good as the chain that tells it what to release. The reserves did what they were built to do. They paid out against copies the Initia chain said were real.
  • Supply counters are not a safety net. Initia says the fake balances did not change the tokens' total supply, so a monitor watching supply alone would have seen nothing.
  • Minutes mattered. About 42 minutes passed between the start of the exploit and the halt. In that window the ETH reserve on Ethereum lost about 96% of its coins and the AUSD reserve about 71%, and Noble's USDC reserve ran out before the attacker's unbacked USDC did.
  • The money is still there. Everything that reached Ethereum became ETH in one wallet that, as of 7:42 AM CT October 26, had not moved. That gives exchanges and services a single address to watch.

If you lost money in a hack or any crypto theft, report it to ic3.gov and the FTC, and file a report at blockint.ai so others can see the addresses involved.

Sources