xToken hack — May 2021
Incident facts
| Date of incident | |
|---|---|
| Publicly disclosed | May 12, 2021 |
| Target type | Other |
| Loss | $24,500,000Published estimates range $24,500,000 to $25,000,000Price at time of incident |
| Method | Oracle or price manipulationTwo flaws exploited in one Ethereum transaction. The xBNTa mint function accepted a caller-supplied trade path without checking it terminated in BNT, letting the attacker spoof a BNT contribution and mint effectively without limit. The xSNXa contract valued its holdings without an independent price feed, so a flash loan was used to depress the SNX price and mint xSNXa at a distorted rate. The minted tokens were dumped into the Bancor and Balancer pools. |
| Chains | Ethereum |
| Outcome | Users reimbursed |
What happened
On 12 May 2021 an attacker drained the Bancor and Balancer liquidity pools backing two xToken products, xBNTa and xSNXa, in a single Ethereum transaction. xToken issued wrapped tokens giving holders exposure to yield strategies built on Bancor's BNT and Synthetix's SNX.
Both legs turned on missing validation. The xBNTa contract converted incoming ETH to BNT using a trade path supplied by the caller but never checked that the path ended in BNT. The attacker routed through an unrelated token so the contract credited itself with a BNT contribution it had not received, permitting an effectively unlimited mint. The xSNXa contract valued its holdings without an independent price feed, so the attacker took a flash loan, which The Block put at 61,800 ETH or roughly $270 million at the time, to push the SNX price down and mint xSNXa at a distorted rate. The new tokens were sold into the two pools, which were emptied.
The Block Research's Igor Igamberdiev itemised the attacker's proceeds as about 2,400 ETH, 781,000 BNT and 407,000 SNX, roughly $24.5 million combined, executed for around 5 ETH in gas. Mudit Gupta independently reached comparable figures for the SNX and BNT legs. xToken's own report put the pool losses at about $25 million and said the xSNXa contract itself lost 416 ETH, 7 to 8 percent of its net asset value, with most underlying SNX and BNT remaining in the contracts.
xToken paused all minting, took a pre-exploit snapshot covering token holders and the Bancor and Balancer liquidity providers, and reissued new xBNTa and xSNXa tokens. It hardcoded trade paths and added Chainlink pricing, reviewed by Quantstamp. A separate xToken exploit followed in August 2021.
Sources
- xTokenPrimary · retrieved 2026-08-01
- xTokenPrimary · retrieved 2026-08-01
- The BlockSecondary · retrieved 2026-08-01
- CoinDeskSecondary · retrieved 2026-08-01
Official post-mortem: https://medium.com/xtoken/initial-report-on-xbnta-xsnxa-exploit-d6e784387f8e
Cite this
This data is published under CC BY 4.0. You may reuse it, including commercially, as long as you credit iTokenly and link back.
iTokenly Hack Registry, "xToken hack — May 2021", iTokenly, accessed 2026-08-01, https://itokenly.com/hacks/xtokenhttps://itokenly.com/hacks/xtokenPermalinks never change. If an entry is renamed, the old address keeps working.
Spotted an error? Write to [email protected]. Corrections to published figures are logged on this page. See the methodology for how entries are checked.