Infrastructure · Developing
The Signature Was Valid. The Key Behind It Wasn't
Switchboard runs its oracles inside sealed hardware so that nobody — not even the people operating the nodes — can tamper with the code. This weekend it pulled every one of its Move-chain feeds offline anyway, and a DEX on Sui confirmed its users had lost money.
Switchboard, a multi-chain oracle network, shut down its feeds on Aptos, Sui, IOTA and Movement over the transition from Aug 28 to Aug 29 after detecting what it called a potential compromise. Every affected chain runs Move, the language originally built at Meta for Diem. Switchboard's Solana deployment, which does not, stayed up.
On Sui, the DEX Full Sail said it was investigating a security incident affecting its vaults following a suspected Switchboard oracle compromise, and stated plainly that a loss of funds had been confirmed, per The Crypto Times. Deposits and withdrawals remain paused. On IOTA, according to Crypto Briefing, an attacker used a compromised oracle key to set the price of IOTA at $10 million and minted roughly 4.94 million VUSD against it through the Virtue CDP protocol. Forty-five users were liquidated. Virtue halted. Exchange addresses were frozen.
Nothing in that sequence required breaking a contract. The oracle reported a number and the chain accepted it, exactly as designed.
What a valid signature actually promises
Switchboard's own documentation is unusually clear about what it is selling, which makes it a useful place to start. Oracle nodes, it says, run inside Trusted Execution Environments — sealed hardware enclaves — so that "oracle code cannot be tampered with or inspected, even by the operators themselves." Operators stake assets that can be slashed for misbehaviour. And on the receiving end, the docs state, "on-chain verification ensures only properly signed data is accepted."
Read that last sentence carefully, because it is the whole story. On-chain verification does not check whether a price is true. It checks whether the message carrying that price was signed by a key the contract has been told to trust. Those are different questions, and only one of them can be answered by a smart contract.
An enclave is a very good answer to the question "is the code running what it claims to be running." It is not an answer to the question "who else has a copy of the signing key." If the reporting is right that this began at the key level, then no part of the stack behaved incorrectly. The enclave ran unmodified code. The signature verified. The chain accepted a properly signed message saying IOTA cost ten million dollars, and every protocol downstream did the arithmetic it was built to do.
Ten million dollars an IOTA
Virtue is a collateralized debt position protocol: you lock a volatile asset, and the system lets you mint its stablecoin against a fraction of what that collateral is worth. The entire mechanism runs on a single external number. Move the number and you move how much money the protocol will hand you for the same deposit.
At $10 million per IOTA, a trivial deposit supports an enormous mint, and 4.94 million VUSD came out the other side. The 45 liquidations are the second-order damage: with the feed inflated and then presumably corrected, positions on the other side of the book were marked into insolvency and closed out. Those users did nothing wrong and were not the target. They were standing next to it.
One oracle network, four chains, unequal damage
| Chain | Status | Reported damage |
|---|---|---|
| IOTA | Feeds halted; Virtue halted | ≈4.94M VUSD minted; 45 users liquidated |
| Sui | Feeds halted; Full Sail deposits/withdrawals paused | Vault losses confirmed, amount not disclosed |
| Aptos | Feeds halted | None reported |
| Movement | Feeds halted | None reported |
| Solana | Operating; migration advised anyway | None reported |
Why four chains and not five
The shape of the halt is the most informative thing anyone has released so far, and it is worth being careful about what it does and does not prove.
Switchboard took down every Move deployment and left Solana running. That is consistent with a fault in the shared Move implementation — one codebase, four downstream chains, one bug. It is equally consistent with key material scoped to the Move deployments and separate from Solana's, in which case the code is fine and the secret is not. From the outside, those two stories produce the identical containment decision, and Switchboard has not said which one it is facing.
What cuts slightly against the pure-code reading is the advice that came with the halt. Switchboard told users on Solana — the deployment it says was not compromised — to at least temporarily move to Pyth, Chainlink or RedStone. A team confident the fault is confined to Move code has no reason to send its unaffected users to competitors. A team that does not yet know the blast radius of a secret has every reason to.
That is inference, not reporting, and it should be read as such. The protocol has said it is working with security organizations and ecosystem teams while it investigates. Until that investigation produces a root cause, everything above is a reading of a containment posture.
The circuit breaker that was supposed to catch this
Full Sail was not naive about oracle risk. Its documentation, as described by The Crypto Times, lists Switchboard as its external oracle and says that feed is cross-checked against on-chain pool prices, with a statistical circuit breaker meant to reject anomalous updates and pause emissions in an emergency — protections designed for precisely the case where an external feed diverges sharply from the pool.
Funds were lost anyway. The protocol has not yet said whether the breaker failed to fire, fired too late, or was working on a value that never looked anomalous enough to trip it. That answer matters well beyond Sui, because "we cross-check the oracle against the pool" is the standard mitigation the entire lending sector recites when asked about this risk.
It is also the second time in four days that a protocol's pricing protections have failed without anyone touching the protocol's code. Moonwell lost $8.7 million on Base last week to a manipulated but entirely genuine market price. The failure modes are different — a real price pushed, versus a signed price invented — and the lesson is converging: the number is the attack surface, and it does not live in your repository.
What is not yet known
A great deal, and it is worth listing rather than papering over. Switchboard has not confirmed the root cause, published a post-mortem, or given a figure for total losses. The characterization of this as a key compromise comes from outlet reporting rather than from the protocol, which has used the more cautious "potential compromise." Full Sail has confirmed that users lost money but not how much. Nobody has attributed the attack. Nobody has said whether the 4.94 million VUSD was successfully converted into anything the attacker can keep, or whether the freezes caught it in time.
Those gaps will close over the next several days. This story will be updated when they do.
The Take
The industry has spent five years buying hardware guarantees for the wrong half of the problem. Enclaves, attestation, slashing bonds — all of it secures the computation. None of it secures the number. A signature proves a message came from a key; it is silent on whether that key is still exclusively yours, and there is no cryptography that fixes that, only operations. Which means every protocol reading a feed is trusting an off-chain key custody process it has never audited and usually cannot see. Switchboard deserves credit for a fast, wide, self-damaging halt — pulling four chains and telling your own unaffected users to try a competitor is not the behaviour of a team managing optics. But the useful takeaway for everyone else is colder: if your risk model treats an oracle read as a fact rather than as a claim signed by somebody else's key, you have not modelled the risk. You have named it and moved on.