Cardano DeFi Protocol Hit by Two-Transaction Exploit

On September 13, an attacker drained 2,424,778 ADA from Splash’s ADA/OADA StableSwap pool on Cardano by executing two transactions that exposed critical gaps in the pool’s validator logic. The attacker deposited 9,870 ADA and withdrew 2,434,648 ADA and 1,988,222 OADA, leaving the pool with just 10 ADA and 1.44 million OADA after the drain.

The exploit succeeded because the pool’s validator failed to enforce three safeguards: it did not require the tradable reserve to remain positive, it bounded fee changes only from below rather than both directions, and it did not enforce swap direction constraints. A reserve-domain check or two-sided fee bound would have blocked the attack, according to Splash’s incident analysis.

Optim Finance, the protocol operator, paused Splash immediately after the drain. On September 15, Optim Finance issued an update on chain indexing and accounting. The company removed remaining liquidity and disabled OADA-to-ADA swaps to prevent further losses.

The Liquidity Trap Three Days Later

Three days after the drain, OADA holders faced a problem that code fixes alone could not resolve. “A code patch can stop the documented exploit path, but restoring an OADA exit also requires ADA liquidity or redemption and management of the thin-pool OADA inventory,” Splash stated in its incident report.

The pool had lost the ADA that provided OADA holders their primary exit route. At the time of the exploit, OADA held no protocol-level redemption mechanism. On September 13 at 14:53 UTC, the secondary Minswap V2 OADA/FLDT pool held only 1,763,923 OADA against 45,751 FLDT, offering minimal ADA-equivalent depth. Other OADA trading venues held only single- or double-digit ADA balances.

The attacker’s OADA sale into these thin markets created arbitrage risk for any fresh ADA that Optim Finance might add to a reopened pool. Without protocol-level redemption or sufficient ADA liquidity across secondary venues, restarting the StableSwap pool risked repeating the same exit problem that the drain had created.

Validator Design and Attack Surface

The validator’s acceptance of negative tradable reserve transactions represented the core vulnerability. By allowing the reserve to drop below zero, the validator enabled an attacker to extract more value than the pool contained in legitimate tradable form. The failure to enforce two-sided fee bounds meant the attacker could manipulate fee direction to amplify the drain.

Splash’s analysis indicated that either a reserve-domain check or bidirectional fee bounds would have stopped the attack before execution. The exploit highlights a broader risk in StableSwap implementations on Cardano: validators that do not enforce strict bounds on reserve and fee states can be manipulated to drain pools in a single transaction sequence.