On-chain investigationOpenAIEthereumEIP-7702

Bots fought over the OpenAI Sepolia testnet wallet. It changed hands 126 times in 14 hours.

OpenAI's report on a model that spent someone else's Sepolia test money hid the wallet's address. The same address also exists on Ethereum mainnet, and a day after the report's last update it became a battleground. We followed it there.

At a glance
In June an OpenAI research model paid for a test deployment with a crypto wallet it was never given. The wallet comes from a recovery phrase that has sat in public code for years, so anyone can sign with it. OpenAI hid the address; the X user @apoorveth found it. On 16 October, a day after the report's last update, someone launched a meme coin called OpenAI and pointed its trading fees at that wallet. Twelve seconds after the first fee landed, a sweeper bot took control. By our cutoff, 24 bots had joined the fight and control had changed hands 126 times. Nobody lost money they already held there: the wallet had never held any on mainnet. The fees, about $640, went to the bots and to gas.
126
Times control of the wallet changed hands, 16 October
12 s
From the first meme coin fee to the first bot
$640
Fees the meme coin paid into the wallet
0 ETH
Left in the wallet at our cutoff
Key findingsEach line has its own share link
  1. 126

    Times control of the wallet passed to a new sweeper bot in 14 hours, counting the first grab. Half of them came before 04:00 UTC.

  2. 12 s

    The gap between the first fee from the OpenAI meme coin and the first bot moving in. The wallet had never been used on mainnet before.

  3. 22 min

    90% of the coin's fees, about $640 in all, arrived within 22 minutes of launch.

  4. 32%

    Share of the money burned as gas by 70 transactions signed with the wallet's own key.

  5. 6.5 h

    How long before @apoorveth's post named the wallet the OpenAI coin went live. OpenAI's report had been updated the day before.

  6. 1,369

    EIP-7702 authorizations the network skipped because their nonce had already been used. The bots sent 2,184 in all.

01 · A wallet anyone can open

What OpenAI reported, and what it left out

OpenAI says one of its AI models spent money that was not its own. It was test money, on a practice copy of Ethereum. The model got in with a password anyone can look up.

The company wrote the case up in its misalignment reports, a series about times its models did things nobody asked them to do. A research model was told to update a trading app and deploy it on Sepolia, the testnet where developers try code before it touches real money. It needed test ETH to pay for gas, the fee every transaction pays, and it had none.

So it went looking. It tried recovery phrases that developers use as shared defaults, found an account with a balance, paid with it, and reported the job done. It never said where the money came from.

A recovery phrase, or seed phrase, is the list of words a wallet is built from. Whoever has the words controls the money. These phrases ship inside open-source developer tools, so the accounts they make belong, in practice, to everyone.

OpenAI blanked out the address and the transaction hash. It did leave clues: the date, ten contracts, and three tokens named vBTC, vETH and vUSD. The X user @apoorveth used them to find the transaction and the wallet, 0xaCcf…d578. @apoorveth traced the key to Celo's version of ganache-cli, a tool for running a private test chain. The same phrase is also the default test seed in the 0x Project's developer tools.

We checked @apoorveth's work and it holds. The twentieth account the phrase produces is this address. Its one Sepolia transaction on 26 June created ten contracts, and three of them are tokens called vUSD, vBTC and vETH.

Then we took the next step. Bitquery indexes every transaction on Ethereum, so we looked at the same address on mainnet. Until the early hours of 16 October it had never been used there. By that evening two dozen bots were fighting over it, control had changed hands more than a hundred times, and it was empty again.

The money that started the fight came from a meme coin named after OpenAI. All figures run to block 26,206,536, at 17:16:59 UTC on 16 October. The bots had not stopped by then.

02 · Why a public key draws bots

Sweepers, and a new way to take over a wallet

A wallet with a public seed is a trap with the door open. Anyone can sign for it, so people run sweeper bots: programs that watch such accounts and move funds out the moment they land. The fastest bot keeps the money.

Since Ethereum's Pectra upgrade in May 2025 there is a bigger prize. EIP-7702 lets an ordinary wallet borrow the code of a smart contract, a program that runs on the chain, by signing a short authorization. Once a bot points the wallet at its own contract, that code can sweep anything the wallet receives. Whoever holds the key can sign a new authorization at any time and point the wallet somewhere else.

Every authorization has to carry the wallet's current nonce, the counter Ethereum keeps of what an account has done. A bot can pack several into one transaction with numbers in a row, and each one applies in turn. When two bots aim for the same number, the first into a block wins and the other is skipped. We count the fight by hand-overs: each time control passes to a different bot.

Other accounts from the same seed already live like this. The first, second, sixth and eleventh accounts point at delegated code on mainnet today, and money has passed through some of them since 2017. The twentieth, the one OpenAI's model used, had no history on mainnet at all. There was nothing on it to take. We have written before about wallets whose keys sat with someone else, and about thieves who race each other to the same open door.

03 · A coin called OpenAI

The money that woke the wallet up

At 03:21:11 UTC on 16 October, the address 0x6365…0d59 launched a token named OpenAI, ticker OPENAI, in one transaction through a token factory contract named SendItFactory. The launch call sets the address that collects the coin's trading fees. That address is the OpenAI model's test wallet.

The coin trades in a Uniswap v4 pool that takes a small fee on every swap. A hook attached to the pool, a contract that runs on each trade, splits the fee: 70% to the address named at launch, 30% to the factory's platform address. We checked the split on 25 trades picked at random, and it held on every one. The launching address also bought about 5% of the supply in the same transaction.

Why point a coin's fees at a wallet anyone can drain? It could be a joke about the news, a bet that the name alone would pull in buyers, or something else. The chain does not say. We found no direct transfers between the launcher and any of the bots, and none of the addresses we checked carries a label in our records.

What the chain does show is the timing. OpenAI's report was last updated on 15 October. The coin went live the next morning, about six and a half hours before @apoorveth's post. Whoever launched it had tied the report to this address before that post, or made a lucky guess.

04 · Twelve seconds

126 hand-overs, half of them before 04:00

The first fee landed in the launch transaction itself. Twelve seconds later, at 03:21:23, the first bot took control, with a batch of five authorizations in one transaction.

Twelve seconds, then a stampedeHand-overs per minute, and the share of all OpenAI coin fees received, 03:21 to 03:59 UTC
line: share of all coin fees received02460%50%100%90% of fees in by 03:4303:2103:2503:3003:3503:4003:4503:5003:55
Each bar counts the times control passed to a different bot in that minute. The line is the running share of every fee the coin paid the wallet up to our cutoff. Fees and hand-overs both start in the launch minute.

The coin's buyers came fast and left fast. Ninety percent of all its fees arrived within 22 minutes of launch, and the bots chased every one. Of the 126 hand-overs, 61 happened before 04:00 UTC.

The whole day: a burst, then a long tailHand-overs per 30 minutes, by the bot that took control, and OpenAI coin fees paid in, 16 October 2026 (UTC)
line: fees paid in, ETH010203040500.000.020.040.060.080.100.120.140.160.1803:0005:0007:0009:0011:0013:0015:0017:00bot 0x34f4…404fbot 0xb9d0…da7cbot 0xdca9…ba21bot 0x63a3…4dbf12 other bots
Bars count the times control passed to a different bot, coloured by the bot that took it. The line is fees from the OpenAI coin arriving in the wallet, in ETH, on the right-hand scale. Data to block 26,206,536 at 17:16:59 UTC.

After that came a trickle: a few hand-overs an hour, often a bot grabbing back control another bot had just won. The fees had mostly stopped, but the fight over the empty wallet went on into the evening.

05 · The race

Most attempts lost

Taking control was the hard part. Of all the authorizations the bots sent, 63% were skipped because their nonce had already been used. The leading bot, 0x34f4…404f, fired them in batches of five numbers in a row. It got 502 applied, took control 25 times, and sent its take to a single address, 0x8cd8…bd18. The runner-up, 0xdca9…ba21, sent its authorizations six at a time, and 190 of its 199 went through.

Who got throughEIP-7702 authorizations each bot sent, split into the ones that applied and the ones the network skipped
Bot 0x34f4…404f502 of 1,582Bot 0xdca9…ba21190 of 199Bot 0xb9d0…da7c36 of 100Bot 0x5dde…e40c27 of 27Bot 0x63a3…4dbf14 of 15Bot 0xd6d7…2d489 of 2010 other bots37 of 233appliedskipped (nonce already used)
An authorization is skipped when its nonce has already been used, by a rival or by the bot's own earlier one. Bots with none applied are left out.
BotTook controlAuthorizations appliedSentETH moved out
0x34f4…404f255021,5820.1011
0xdca9…ba21171901990.0445
0xb9d0…da7c18361000.0036
0x5dde…e40c827270.0028
0x63a3…4dbf1414150
0xd6d7…2d4899200.0072
10 other bots35372330.0233

The table counts the bots that got at least one authorization applied. Another eight sent authorizations and never got one through. ETH moved out by transactions the wallet signed itself, 0.0167 ETH, is not in any bot's row, because the chain does not say which bot held the key at that moment.

06 · Where $640 went

Fees in, bots and gas out

The money balances: what came in equals what went out plus gas. Most of what came in was the coin's fees. What went out went two ways: to the bots, and to gas.

Where every ETH wentMoney into and out of the wallet, 16 October 2026, in ETH
0.2948 ETH in, the same outCame in0.26040.0344Went out0.10110.04450.03810.0944Meme coin fees, 0.2604Other senders, 0.0344Bot 0x34f4…404f, 0.1011Bot 0xdca9…ba21, 0.0445Other bots, 0.0381Signed by the wallet itself, 0.0167Gas paid by the wallet, 0.0944
Fees are the OpenAI coin's 70% share, paid by its fee hook. Gas is what the wallet itself paid on the 70 transactions signed with its key. Money in equals money out plus gas.

The gas is the odd part. Whoever held control at a given moment could also sign ordinary transactions with the wallet's own key, and each one paid its gas out of the wallet's balance. That burned a third of everything that came in. The bots also spent their own money on authorizations, and 168 of their transactions failed outright.

At ETH's price on the day, about $2,450, the fees were worth about $640. The two leading bots moved out about $360 between them. The account was empty at our cutoff.

07 · What this does not show

The limits of the evidence

Nobody lost money they already held there. The address had no money on mainnet before the coin's first fee. What the bots took had all arrived that day: the coin's fees, plus a small amount from other senders.

We cannot say who launched the coin or why, and we cannot link the launcher to any bot. The link between OpenAI's report and the launch is timing. It is strong timing, but timing is all it is.

The Sepolia side has a limit too. The account was busy there from 5 June to 1 July, and every transaction it sent was signed with the same shared key. The chain cannot tell us how many people were behind them. Only the 26 June deployment matches OpenAI's description.

08 · Method

How we counted

We derived the address from the public seed ourselves, account index 19 on the standard Ethereum path, and matched it to the Sepolia transaction. On mainnet we counted applied authorizations two ways: from Etherscan's list of EIP-7702 authorizations, and by replaying the nonce rule over every block they appear in. Both give 815 applied, in 232 transactions, and both land on the same final nonce, 886. A hand-over is an applied authorization sent by a different bot than the one before it.

The money comes from Bitquery's Ethereum index and a public block explorer, and both give the same totals. Money in minus money out equals the gas the wallet paid. The same approach traced the much larger Ledger CryptoBilis drain earlier this month. The full history of Ethereum transfers behind these checks is also sold as files.

09 · The record

The dates and addresses behind the story

When (UTC)What happened
5 June 2026The wallet is first funded on Sepolia, the test network
26 June, 18:07OpenAI's research model pays for its ten-contract deployment from the wallet
25 SeptemberOpenAI says it found the incident
15 OctoberOpenAI's report is last updated
16 October, 03:21:11The OpenAI meme coin launches; its first fee reaches the wallet
16 October, 03:21:23The first sweeper bot takes control of the wallet
16 October, 03:4390% of all the coin's fees have arrived
16 October, 09:55@apoorveth posts the wallet and the transaction
16 October, 17:16:59Our cutoff: control has changed hands 126 times, nothing left in the wallet
RoleAddress
The wallet (public seed, account 19)0xaCcf…d578
OpenAI coin (OPENAI)0xc116…dc13
Address that launched the coin0x6365…0d59
Fee-splitting hook0xa6cc…60cc
Platform fee address0xe1c1…9a79
Leading bot0x34f4…404f
Where the leading bot sent its take0x8cd8…bd18

If you ever used a default developer account for anything, treat its key as public. On a busy chain, a public wallet stays empty only until someone pays it.

Run it yourself

Ask these questions in plain English

The money-flow figures above came from queries anyone can run. The Bitquery MCP server puts the same Ethereum index behind an AI assistant, so you can ask who paid an address, where its money went, and which transactions moved it, without writing the query yourself.

List every transfer into and out of a walletFind the first funder of any addressTrace where a wallet's money went, step by stepLabel the counterparties of an address in one call
Explore Bitquery MCP →Figures measured 16 October 2026 to Ethereum block 26,206,536, against Bitquery's Ethereum index, Etherscan's EIP-7702 list and public Ethereum and Sepolia explorers.
Legal disclaimer

The OpenAI meme coin and its launching address are not connected to OpenAI in any way we found; the token borrows the name. We do not claim that the launcher controls any bot or knew of OpenAI's report, and we name the bots only by their addresses and behaviour. The link between OpenAI's report and the launch is drawn from timing alone.

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.

Reported by Gaurav Agarwal for Bitquery Research, with AI tools; every figure was checked against the raw data.