BT.Finance Hack
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.
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
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
- PeckShield Report
Evidence & learning
Sources and on-chain records
- report Report btfinance.medium.com
- report Post-mortem rekt.news
- report Post-mortem rekt.news
- transaction Transaction etherscan.io
Practice this exploit pattern safely
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.