On-chain investigationArcACTFUN

ACTFUN's exposed key: where 591 million ACT went

ACTFUN disclosed an exposed deployment key. We traced every confirmed balance change from its live contracts across Arc, Base and BNB Chain, then split what the chain proves from what remains unknown.

At a glance
ACTFUN said a private key used in its deployment was exposed. Three contracts named by the live ACTFUN app then sent 590,957,595.96 ACT to the wallet the app calls its launch admin. The chain shows what followed: liquidity changes on Arc, 50,178.32 USDC sent across chains, and part of the value ending as ETH, USDC and USDT. It does not yet prove who controlled the later wallets or that more than $1 million was stolen.
590.96M ACT
Moved from three ACTFUN contracts
$50,178.32
USDC sent off Arc
20.8421 ETH
Paid to the same wallet on Base
$766,867.71
Peak mark for the ACT moved

01 — DisclosureWhat ACTFUN said

ACTFUN posted a security update on Wednesday. It said a private key used during setup had been exposed and let someone access linked wallets and funds. Claims were paused while the team checked code control, admin rights, treasury wallets and payout code.

The notice did not publish incident tx hashes or a loss total. It also said the full scope was still being worked out. That leaves one task for the chain record: find the proved moves without filling the gaps with guesses.

02 — First movesThree ACTFUN contracts emptied

The live ACTFUN app names a fixed claim address, a Genesis NFT claim address and a sale registry. Within thirteen seconds, each sent its full ACT balance to 0x08235e…8009, which the same app names as its launch admin wallet.

Source contractACT sent to 0x08235e…8009
Fixed claim · 0x039ee0…A4aC450,000,000
Genesis NFT claim · 0xFbb9E4…0837100,000,000
Sale registry · 0xb0461a…49e840,957,595.959596
Total590,957,595.959596 ACT

All three source balances became zero. The wallet later sent ten million ACT to 0x83c3d4…45bcb. That address still held the full amount at our cut-off and had sent no ACT onward.

These moves line up in time and scope with ACTFUN's notice. ACTFUN has not named them as the illicit txs, so that link is reasoned from the timing and live app data.

03 — Sale checkWas the ACT sold?

No direct ACT swap has the admin wallet or the ten million ACT receiver as its tx sender in our Arc DEX records. The second wallet did not send its ACT anywhere.

The admin wallet did place ACT and USDC into a market pool. It added funds, let other wallets trade against them, then took funds out in two cycles. The exact in and out sums sit below.

Liquidity resultAmount
ACT added199,932,925.202954 ACT
ACT removed82,942,162.387121 ACT
Net ACT left in the pool116,990,762.815834 ACT
USDC added to the pool20,035.00 USDC
USDC removed49,393.16 USDC
USDC gain over deposits29,358.16 USDC

The pool share shifted toward USDC as other wallets traded. Once ACT entered the pool, it mixed with every trader's funds. The record can measure that shift. It cannot say how much ACT from the key wallet was sold.

04 — Cross-chain exit$50,178 left Arc

Two Relay routes moved USDC from Arc and paid ETH to the same address on Base. The match uses Relay's request log and both chains' send data. The exact sums and input-to-output map are in the flow card and audit file.

Nearly all the ETH reached 0x9eE203…296e, once through 0xB2b10a…1BaB and once by a direct send. Only dust stayed at the first Base wallet.

Confirmed cross-chain pathArc → Base → BNB Chain
ACTFUN fund flow from three Arc contracts to the launch admin wallet, then through Relay to Base and a USDT branch on BNB Chain
Solid arrows show checked transfers or swap outputs. The dashed Arc box lists later facts and is not an allocation of the 590.96 million ACT. Address owners remain unknown.
StepConfirmed amount
Arc · two Relay deposits50,178.316240 USDC
Base · output to 0x08235e…800920.8420973987 ETH
Base · held at 0x9eE203…296e17.4304605200 ETH
Base · held at 0x904e9C…697C3,998.516032 USDC
BNB Chain · held at 0xa457dd…4d674,027.269957 USDT

One branch sold ETH for USDC, crossed through LI.FI and paid USDT on BNB Chain. The target address had no USDT outflow at the cut-off. The flow card gives each exact amount.

A second branch also sold ETH for USDC. Its full USDC output stayed at the Base address. A much smaller branch split again: most stayed parked, some entered a busy wallet where funds mixed, and a small part returned to Arc. We stop at the busy wallet because no later send can be tied to this flow without a rule for which funds left first.

05 — The $1M claimDoes the evidence show more than $1 million stolen?

The traced flow does not support that number yet. Even at the highest ACT/USDC price in our window, the marked value of all ACT moved from the three source wallets stayed below one million dollars.

The later USDC route cannot simply be added. Some of that value came from the same pool share, so the sum would count part of the flow twice. ACTFUN may find other affected assets, but they are outside the proof mapped here.

⬢ Finding
“Over $1 million stolen” remains unconfirmed.
$766,867.71
Peak mark for 590.96M ACT in the measured window
$50,178.32
Cross-chain USDC route, not safe to add to the ACT mark
Unknown
Any assets outside the addresses found here

06 — Current stateWhere the funds sat at the snapshot

At the cut-off, most of the ACT still sat in the admin wallet. The second ACT wallet had not moved its share. On Base, the main later wallet still held most of its ETH. The two sale paths ended in USDC on Base and USDT on BNB Chain.

Wallet state at 18:30 UTCBalance
Arc admin wallet486,565,832.794901 ACT
Arc second wallet10,000,000 ACT
Base main later wallet17.4304605200 ETH
Base USDC wallet3,998.516032 USDC
BNB Chain USDT wallet4,027.269957 USDT

No identity claim is made for any later wallet. A transaction proves control of a key at that moment. It does not prove a person's name, intent or link to ACTFUN.

07 — AuditHow we checked the trace

We queried Bitquery's own live clusters for Arc data, Base and BNB Chain. We checked sends against state balances, matched inputs to outputs across chains, and searched DEX trades by tx sender. Frozen rows and exact sums are kept with the article.

The audit found one event log trap. Six ACT events from the pool to the wallet did not change the wallet's state balance. Final holdings use state balances. Flow sums use sends whose state changes matched.

This trace follows fund tracing rules: value is tracked in order, a pool is treated as a mixing point, and a busy wallet ends naming. Address labels help name services. They do not turn an unknown wallet into a named person.

Readers can repeat the method with Bitquery's chain data lake or query the same chains through the Bitquery MCP server.

08 — EvidenceKey transaction hashes

EventTransaction hash
450M ACT · fixed claim → admin0xc47eed52a320269b1eac3200781f0820036d406e1dcdeb81b5b3692771c39b79
100M ACT · Genesis claim → admin0x608e1aae86fb8ea20f3cc9110302f76aaecb8df635a89eb5aa57034849d7a051
40.96M ACT · sale registry → admin0xc294e2ab4e70149fc367a1e83808bef5c38a312005db59a02b64f73d0af6391e
Base output · 20.8213 ETH0xd75eed7e…eeb1fc
Base output · 0.02078 ETH0x6f24f3e4…c41eb3
BNB Chain output · 4,027.27 USDT0xac1764b5…69903a

Trace cross-chain fund flows with your own data

Query transfers, swaps and balances across Arc, Base and BNB Chain from one indexed data set.

Scope, limits and attribution

This analysis measures confirmed transfers, DEX trades and state balances through 18:30 UTC on 16 September 2026. It infers that the three source transfers may relate to ACTFUN's disclosed key exposure because the live ACTFUN app names those contracts and the receiving admin wallet. ACTFUN has not confirmed those transaction hashes. The record does not establish who controls the later wallets or their intent, and the loss total may change if ACTFUN names more affected assets.

This article is provided for informational and educational purposes only. It reflects analysis of publicly available on-chain data as of the dates given, and does not constitute legal, financial, compliance, tax or investment advice, nor a recommendation or offer to buy, sell or hold any asset. Blockchain addresses are pseudonymous: a transaction between two addresses does not by itself establish the identity, intent or knowledge of any party, and every entity attribution here is an inference that may be incomplete or wrong. Readers should verify independently before acting on anything above, and Bitquery accepts no liability for loss arising from reliance on this material. All trademarks and company names are the property of their respective owners. Corrections and right-of-reply requests go to support@bitquery.io.