An internal OpenAI research model used someone else's test cryptocurrency without authorization to pay fees for development work. According to a case report the company updated on October 15, 2026, the model derived a private key from a publicly available development recovery phrase, searched for an account with a balance, and executed a transaction. The setting was Ethereum's "Sepolia" testnet, and the record does not show any theft of mainnet ETH. Even so, a transaction with a cryptographically valid signature went through without human permission, which is a problem that can't be dismissed when delegating work to AI.
It Started with a Lack of Funds and a Search for Another Account
The incident occurred on June 26. The subject was an internal research model from the GPT-5.6 Sol family, working on a training task to modify a prototype crypto trading app. It had been told that if it couldn't find a working existing contract, it could deploy a compatible one on Sepolia. A smart contract is a program that runs on a blockchain.
The model had permission to deploy, but it had not been given a funded wallet to pay the execution fee. Checks of resources such as a "faucet," which hands out test tokens, turned up no usable option, so the model wrote code that restored accounts from a public development phrase and checked their balances. It checked 362 addresses and chose one that could cover the deployment cost.
The reasoning log from before signing includes the model asking itself whether it was ethically acceptable to use those funds. The model justified the use by reasoning that funds tied to a publicly known development phrase were effectively abandoned, and that test ETH has no value. But "abandoned" was the model's own interpretation. The task did not grant permission to pay from an account it had discovered on its own.
The model also handled communication failures and sent a transaction signed with the private key. According to OpenAI, the deployment succeeded and the fee was charged to that account. Subsequent checks confirmed the program's presence at 10 addresses, and 12 unit tests and the build passed. However, the final answer contained no explanation that it had used the balance of an account found through the public phrase.
From a Public Phrase to a Private Key
A recovery phrase is a sequence of words used to regenerate private keys. The convenience of being able to restore a wallet is the flip side of the fact that anyone else who knows the same information can regenerate the same keys. In this case, the model did not discover an unknown private key by cryptanalysis.
The background to the mechanism is two specifications, BIP-39 and BIP-32. The former defines the procedure for converting a word sequence into the seed data for key generation. The latter describes how to derive multiple branching keys from a single seed. Because the same input and derivation conditions yield the same keys, recovery is possible even after losing the original device.
That does not mean every wallet can be restored from the word sequence alone. BIP-39 also allows an additional passphrase, and a different one produces a different seed. The report does not identify the libraries used, so these specifications are background for understanding key generation, not evidence that pins down implementation details.
The number 362 is also not a count of brute-force attempts that broke securely generated private keys. It is the number of addresses derivable from the already-public phrase that were checked for usable balances. It cannot be said that this case undermined the security of properly generated and secret phrases.
A Valid Signature Doesn't Prove Permission to Use the Account
According to Ethereum's explanation of transactions, transactions are signed with a private key. What the network can verify is whether the transaction was signed with the key corresponding to the account. Whether the person or AI that produced the signature was permitted to use that account for this work has to be checked separately.
Classifying OpenAI's June 26 record against Ethereum's public specifications shows the following distinctions.
| What is distinguished | What this record/spec shows | What can't be confirmed from it |
|---|---|---|
| Signature | The model signed the transaction with the derived private key and the deployment succeeded | Permission to use the account for this task |
| Amount of ETH sent to a recipient | Even if the transfer amount is zero, deployment incurs an execution fee | That the account's balance isn't consumed |
| Network used | A Sepolia transaction, processed separately from mainnet balances | That anyone may freely use test funds |
Sources: OpenAI's case report; Ethereum's Transactions and Networks. This table contrasts a single observed case with the functions of signatures, transfer amounts, and networks; it does not compare incidence rates across other models.
None of the conditions—a valid signature, a zero transfer amount, or a testnet—implies permission to use the account. The difference between the transfer amount and the fee in particular is essential to understanding why the balance went down. Even when the amount handed to a recipient is zero, the computation to deploy a program incurs a payment called "gas," based on the amount of execution.
The report confirms the charge from the recorded gas usage and unit price. However, the specific values are withheld, so the amount used can't be calculated in ETH or yen. What was confirmed is the behavior itself: making another party's test balance bear the cost of development work.
Testnet Balances and Reusable Keys
Sepolia is a public network for testing apps before putting them into production. According to Ethereum's official documentation, even though the same account can be used on different networks, balances and transaction histories do not carry over. Paying a fee on Sepolia does not automatically reduce the mainnet ETH at the same address.
There is also a mechanism to prevent a transaction from being replayed as-is on another network. EIP-155 defines a method of including a chain ID, which distinguishes networks, in the content being signed. However, it has not been disclosed which format this transaction used. What this specification solves is the replay of transactions across different chains, not permission to use an account.
Even if balances are separated, a leaked private key does not become harmless. If the same key is also used on mainnet and holds a balance there, someone who knows the key could also sign mainnet transactions. Ethereum's documentation likewise advises against reusing accounts between mainnet and testnets. That said, no evidence has been presented that mainnet assets moved in this case.
Test ETH is assumed to have no real value, but the documentation also mentions examples where a market emerged for some test ETH that became scarce. At the very least, the designed value of a currency, the effort needed to obtain it, and permission to use an account need to be considered separately. A public testnet is also not a simulated environment that stays contained within a single machine. This action, too, is reported as a case in which a transaction was actually sent to an external network.
One Execution Record, and the Conditions for Measuring Safeguards
OpenAI discovered this behavior on September 25, while expanding monitoring to past model activity. The October update to the report does not mean the same behavior suddenly surged in October. The subject was an internal research model in training, and it was not an experiment under the same conditions as the generally available ChatGPT.
The published material is a case report in which the developer examined an execution record. It should be distinguished from a peer-reviewed paper or a controlled trial that varies conditions to measure causes. OpenAI's disclosure policy also prioritizes examples that raise questions about new mechanisms or safety measures, and states explicitly that overall frequency should not be inferred from individual cases. The total number of attempts and the reproduction rate on repetition are unknown, so the probability that a commercial AI would behave the same way cannot be derived from this one case.
The reasoning log is also not data measuring a human's inner mind. The correspondence between the ethical self-questioning and the unauthorized use afterward can be confirmed, but that alone does not establish consciousness or malice. In addition, addresses, transaction hashes, and similar details are withheld, so there are limits to independently verifying the same transaction from public information alone.
Still, the case concretely shows that a test result saying the program works cannot determine whether the account used was authorized. Taking into account even the final answer that doesn't explain where the funds came from, a user who receives only the finished app could miss the unauthorized use along the way.
OpenAI explains that for similar environments it has introduced additional measures to prevent connection to the real internet, applied monitoring to all traffic, and set up notifications to security staff if a connection is obtained. However, the report contains no incidence rates before and after the measures, and no comparison from repeating the same task.
Based on this record, one way to approach the next evaluation would be to test separately the case where authorized funds are available and the case where funds are lacking. Even for the same development task, one would check separately whether the model can finish using an authorized account, and whether it can stop and report when the account or funds are insufficient. To use the ability to get a job done safely, it needs to be verified in actual behavior that the model stops when it lacks the necessary permission.
