BT.Finance Hack

TOTAL LOST $1.9M
Medium Flash Loan Attacks ethereum

What happened

On February 8, 2021, an attacker used a 100,000-ETH dYdX flash loan to temporarily distort Curve's ETH/sETH pool, deposit into BT.Finance's ETH vault, trigger its earn() path, restore the Curve position, and withdraw more value than the vault should have released. The attacker repeated the cycle in one atomic transaction and repaid the flash loan.

Technical Root Cause

BT.Finance relied on manipulable same-transaction Curve pool conditions in its strategy and vault accounting, while exposing earn(). The attempted anti-contract-deposit and short withdrawal-delay defenses were bypassable. Missing robust slippage and valuation controls let flash-loan-funded price manipulation produce excess withdrawal.

Case & protocol details

Classification Yield Aggregator / Oracle Manipulation
Protocol Type Yield Aggregator
Affected asset / contract BT
Official Website bt.finance/
Protocol Twitter/X @btdotfinance

Attack Timeline

The large temporary Curve trade changed the pool conditions used by the vault strategy. After depositing ETH, the attacker called earn(), unwound the Curve trade, then redeemed vault shares under the distorted accounting. BT.Finance's postmortem describes five rounds; its ETH-vault walkthrough attributes a 622.1725-eCRV pool loss and a 234.1906-ETH gain to that path.

Security review history

Practice this exploit pattern safely

Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.