📈 Get daily crypto insights that make you smarter about your money

Inside the Truebit Mint-and-Burn Attack: How an Integer Overflow Drained 8,535 ETH in Minutes

On January 8, 2026, the Truebit protocol became the victim of one of the most technically straightforward yet devastating exploits of the year. An attacker systematically drained 8,535 ETH, worth approximately $26.4 million at the time, by exploiting a single unprotected arithmetic operation in a smart contract deployed five years earlier. Bitcoin traded at $91,027 and Ethereum at $3,104 on the day of the attack, underscoring the scale of the loss relative to prevailing market conditions.

The Exploit Mechanics

The attack targeted Truebit’s Purchase smart contract, which governed the minting and burning of TRU tokens through a bonding curve pricing model. The vulnerability existed in the getPurchasePrice(uint256 amount) function, which calculated how much ETH a user needed to pay to mint a given quantity of TRU tokens. The function performed an integer addition without overflow protection, a flaw that became exploitable because the contract was written in Solidity 0.5.3, a version that predates the built-in overflow checks introduced in Solidity 0.8.0.

By supplying an extremely large input value to this function, the attacker triggered an integer overflow that caused the arithmetic to wrap around to zero. The result was a purchase price of zero ETH for an enormous quantity of TRU tokens. The attacker then immediately invoked the sellTRU() function, burning the newly minted tokens in exchange for the ETH held by the contract. This mint-and-burn cycle was executed atomically within a single transaction, repeated multiple times, and drained 8,535.363 ETH from the protocol before any intervention was possible.

Affected Systems

The Truebit Purchase contract was originally deployed in 2021 and had been operating without incident for nearly five years. Despite the protocol having adopted SafeMath libraries for other parts of its codebase, this particular function remained unprotected. Compounding the issue, the contract imposed no supply caps, no maximum transaction limits, and no rate-limiting mechanisms on token mints, allowing the attacker to pass arbitrarily large values without triggering any defensive checks.

Furthermore, the source code for the Purchase contract was unverified on Etherscan, meaning that independent auditors and community members had no easy way to review the logic and identify the vulnerability before it was exploited. The lack of verified source code contributed to a false sense of security, as the contract appeared to function normally under typical usage patterns. The TRU token price collapsed from approximately $0.16 to near zero following the attack, effectively wiping out all market value and liquidity for token holders.

The Mitigation Strategy

The stolen ETH was quickly routed through multiple intermediary wallets and subsequently deposited into Tornado Cash, a privacy tool that obscures transaction trails on the Ethereum blockchain. This laundering pattern is consistent with sophisticated attackers who understand the importance of operational security. The Truebit team publicly acknowledged the incident and stated they were coordinating with law enforcement and external cybersecurity experts, though no compensation plan for affected users had been announced at the time of reporting.

From a protocol design standpoint, this exploit highlights several critical mitigation strategies that should be standard practice. First, all smart contracts should use Solidity 0.8.0 or later, which includes built-in overflow and underflow checks. Second, supply caps and transaction limits serve as essential circuit breakers that prevent single transactions from draining protocol reserves. Third, source code verification on block explorers like Etherscan should be mandatory for any contract handling significant value, enabling continuous community review and early vulnerability detection.

Lessons Learned

The Truebit exploit serves as a stark reminder that legacy smart contracts represent a growing attack surface across the DeFi ecosystem. Contracts deployed during the 2020-2021 DeFi boom often used older Solidity versions and may not have received the same rigor of auditing that modern protocols undergo. As the total value locked in DeFi continues to grow, with Bitcoin itself trading above $91,000, the financial incentive for attackers to find and exploit these aging contracts only increases.

The pattern is clear: integer overflow vulnerabilities, unverified source code, and the absence of supply caps create a dangerous combination. Protocols that have not revisited their older contracts for security upgrades should treat this incident as an urgent wake-up call. Regular re-auditing of all deployed contracts, especially those written in Solidity versions below 0.8.0, should be considered a fundamental operational requirement for any project managing user funds.

User Action Required

Users who held TRU tokens or interacted with the Truebit protocol should monitor official communications from the team regarding potential recovery efforts. Anyone who approved token spending to the Truebit Purchase contract should revoke those approvals immediately using tools like Revoke.cash. More broadly, DeFi users should exercise caution when interacting with protocols that have not undergone recent security audits or that operate with unverified contract source code. Due diligence in evaluating the security posture of any protocol before depositing funds remains the single most effective protection against exploits of this nature.

Disclaimer: This article is for informational purposes only and does not constitute financial or investment advice. Always conduct your own research before engaging with any cryptocurrency protocol.

🌱 FOR BUSINESSES BitcoinsNews.com
Reach 100K+ Crypto Readers
Sponsored content, press releases, banner ads, and newsletter placements. Put your brand in front of Bitcoin's most engaged audience.

26 thoughts on “Inside the Truebit Mint-and-Burn Attack: How an Integer Overflow Drained 8,535 ETH in Minutes”

  1. solidity_ghost_

    solidity 0.5.3 with no safemath in 2026… five years of nobody auditing this? 8500 ETH gone because of an addition operator. brutal

    1. solidity_ghost_ 0.5.3 in 2021 is negligence not oversight. safemath was standard practice by then. no excuse for a bonding curve contract

      1. reentrancy_bro_

        soldering a getPurchasePrice function on 0.5.3 without safemath in 2021 is negligence plain and simple

    2. solidity_ghost the contract was deployed in 2021 on 0.5.3. even at the time that was 2 major versions behind. upgrading is not optional in DeFi

      1. Rohan G. formal verification catches exactly this class of bug. the fact that it was deployed on 0.5.3 and never upgraded tells you the team stopped caring

    3. the craziest part is getPurchasePrice was probably marked internal or something, and every audit focused on the flash loan paths instead of basic arithmetic

      1. Marcus Chen nailed it. everyone was checking for reentrancy and flash loans but nobody tested what happens when you pass uint256.max into a simple getter function

        1. audit_gap everyone was busy checking reentrancy paths while a basic arithmetic overflow sat there for 5 years. this is why checklist audits miss things

  2. 8,535 ETH gone because nobody ran slither on a 5 year old contract. the tooling exists and is free. this is pure laziness

  3. reentrancy_ghost_

    five years of audits and nobody fuzzed the price function. everyone was hunting reentrancy and flash loans while basic arithmetic overflow sat there collecting dust. checklist auditing at its finest

    1. reentrancy_ghost_ checklist auditing catches reentrancy because its a known pattern. overflow on a getter function is edge case territory. fuzzing was the answer not longer checklists

  4. 26.4M on a single unchecked add. this is why i triple check every .sol file before deploying. copy paste culture is expensive

  5. the bonding curve accepted MAX_UINT and nobody thought to add a bounds check. 26.4M for a missing if statement

  6. five years without anyone noticing an overflow in a bonding curve. this is why i dont trust any DeFi protocol that hasnt had at least one formal verification pass

    1. overflow_hunter

      Ines Moreira formal verification would have caught this in 5 minutes. the tooling exists, teams just skip it because it adds 2 weeks to deploy and nobody wants to wait

    2. Ines Moreira formal verification taking 2 weeks is worth it when the alternative is losing 8535 ETH. the math is obvious

      1. Sonja D. 2 weeks of formal verification vs 26.4M in losses. every DeFi team should have this tattooed on their forehead

  7. a contract written in Solidity 0.5.3 with no overflow protection holding 8535 ETH. five years live and nobody audited the getPurchasePrice function

  8. integer overflow in 2026 because nobody bothered upgrading from 0.5.3. Safemath exists for a reason but apparently Truebit skipped that chapter

    1. safemath_please_

      Boaz R. deploying on 0.5.3 without safemath in 2021 was already inexcusable. openzeppelin had battle-tested libraries by then. this was pure laziness not a clever exploit

      1. safemath_please_ deploying on 0.5.3 in 2021 without safemath when OpenZeppelin had it documented since 2018 is not a mistake its negligence. basic fuzzing with echidna catches this in one run

  9. 26.4M for a missing bounds check on a getter function. five years of audits and nobody passed MAX_UINT into the price function. basic fuzzing would have caught this in 10 minutes

    1. Lior B. fuzzing catches overflow but not logic bugs. the real lesson is bonding curve contracts need property based testing not just unit tests

    2. Lior B. a getter function with no bounds check on a bonding curve. MAX_UINT goes in, overflow happens, attacker gets tokens for dust. one if statement would have saved $26.4M

Leave a Comment

Your email address will not be published. Required fields are marked *

BTC$65,045.00+0.2%ETH$1,921.75+0.2%SOL$76.36+3.4%BNB$604.53+2.1%XRP$1.05+1.8%ADA$0.1998-0.3%DOGE$0.0712+1.8%DOT$0.8173+1.1%AVAX$6.54+1.7%LINK$8.34+0.7%UNI$3.99-0.2%ATOM$1.39+2.5%LTC$45.83-0.3%ARB$0.0797+2.1%NEAR$1.63+1.2%FIL$0.7171+3.5%SUI$0.6997+4.1%BTC$65,045.00+0.2%ETH$1,921.75+0.2%SOL$76.36+3.4%BNB$604.53+2.1%XRP$1.05+1.8%ADA$0.1998-0.3%DOGE$0.0712+1.8%DOT$0.8173+1.1%AVAX$6.54+1.7%LINK$8.34+0.7%UNI$3.99-0.2%ATOM$1.39+2.5%LTC$45.83-0.3%ARB$0.0797+2.1%NEAR$1.63+1.2%FIL$0.7171+3.5%SUI$0.6997+4.1%
Scroll to Top