TVL anomaly — % drop in <1h
A real-time signals factor in the v1.7.0 rubric. Measured per protocol on a rt cadence.
Methodology how we score#
What this measures
This real-time signal fires when the protocol's total value locked drops by more than a configurable threshold percentage within a one-hour window relative to the trailing 30-day baseline. The threshold is calibrated per protocol tier to balance sensitivity against false positives from legitimate large withdrawals. TVL is tracked via continuous DefiLlama integration and on-chain reserve reads. Category 6 context: TVL anomaly is the most broadly applicable exploit-in-progress signal — by the time a drain is occurring, TVL is falling in real time and this signal can alert remaining depositors before the drain completes.
Why it matters
Approximately 73% of the hack dataset involved hacks rated Medium or High detectability, meaning a real-time monitor watching TVL anomalies would have fired during the majority of incidents. Cetus Protocol ($223M, 2025) saw USDC depegging to zero on Sui and mass SUI dumps within minutes of pool drain — a TVL monitor would have fired immediately. Harvest Finance ($33.8M, 2020) triggered a bank run of roughly $700M TVL immediately post-attack. KyberSwap Elastic ($48M) saw TVL fall from $71M to under $3M during the attack. The signal is most valuable for partially-drained protocols where early detection can preserve remaining funds.
Green / Yellow / Red
Green is the baseline when TVL moves within the expected range of normal user activity relative to the 30-day baseline. Yellow fires when TVL drops 5–15% within one hour — elevated but potentially explainable by large-withdrawal normal behavior. Red fires when TVL drops more than 15% within one hour, or when the rate of decline accelerates across consecutive monitoring windows — the exploit-in-progress pattern.
Common gray cases
Gray applies during market stress events (broad crypto drawdowns) when TVL falls across all protocols simultaneously, making protocol-specific signals unreliable, or when the protocol is small enough that a single large user withdrawal produces false positives.
Notable historical examples
- Cetus Protocol ($223M, 2025): USDC depegging to zero on Sui; sequential pool drains detectable by TVL monitor.
- KyberSwap Elastic ($48M, 2023): TVL fell from $71M to under $3M during the attack window.
- Harvest Finance ($33.8M, 2020): $700M TVL bank run immediately post-attack; each manipulation cycle preceded by large Curve swaps.
- Saga ($7M, 2026): $37M to $13.6M TVL drop with $D depeg during exploit.
Measurement what to look for#
Detect whether TVL drops >X% within 1 hour versus the trailing 30-day baseline (X configurable per protocol TVL tier).
Data & output #
Data source
DeFiLlama real-time TVL endpoint + rolling 30d baseline model
Output format
Green / Yellow / Red
Evidence artifact
TVL time-series snapshot + drop % + threshold config + timestamp
Confidence signal
green = signal not firing; yellow = drop between low-alert and high-alert threshold; red = drop exceeds high-alert threshold; gray = TVL monitoring not configured
Scored protocols 0 carry this factor#
No protocols have been scored for this factor yet.
Linked hacks 10 historical incidents#
illustrativeSaga (SagaEVM / Saga Dollar): IBC Precompile Input Validation Bypass → Infinite Mint2026-01-21 · $7M · IBC Precompile Input Validation Bypass → Infinite Mint · TVL anomaly — % drop in <1h vs 30d baseline [via realtime_signals/TVL exit early: Y — $37M → $13.6M TVL drop; $D depeg to $0.73 during/after exploit]→
illustrativeOdin.Fun: AMM Liquidity Manipulation (Governance Token Price Pump + Drain)2025-08-12 · $7M · AMM Liquidity Manipulation (Governance Token Price Pump + Drain) · TVL anomaly — % drop in <1h vs 30d baseline [via realtime_signals/TVL exit early (Y/N): Y — BTC reserve monitoring would show drawdown]→
illustrativeCetus Protocol: Integer Overflow / Division-by-Near-Zero in Concentrated Liquidity Math2025-05-22 · $223M · Integer Overflow / Division-by-Near-Zero in Concentrated Liquidity Math · TVL anomaly — % drop in <1h vs 30d baseline [via realtime_signals/TVL exit early (Y/N + detail): YES** — HODLFM flagged USDC depegging to zero on Sui and mass SUI token dumps within minutes of pools being drained. The sequential drain ac...] || Low detectability — RT signals would NOT have caught (negative-evidence) [via realtime_signals/Detectability Reasoning: Each individual exploit was atomic (single tx). However, the sequential nature (every Cetus pool drained one after another) and the immediat...]→
illustrativeKyberSwap Elastic: Tick Manipulation + Double Liquidity Counting — Precision Arithmetic Edge Case2023-11-22 · $48M · Tick Manipulation + Double Liquidity Counting — Precision Arithmetic Edge Case · TVL anomaly — % drop in <1h vs 30d baseline [via realtime_signals/TVL exit early: Y — TVL fell from $71M to <$3M on KyberSwap Elastic during attack] || Low detectability — RT signals would NOT have caught (negative-evidence) [via realtime_signals/Detectability rating: Low] || Low detectability — alternate field name [via realtime_signals/Detectability rating: Low]→
illustrativeBalancer V2 (+ Beethoven X fork): Linear pool rounding-down logic → cached rate manipulation → boosted pool drain2023-08-27 · $2M · Linear pool rounding-down logic → cached rate manipulation → boosted pool drain · TVL anomaly — % drop in <1h vs 30d baseline [via realtime_signals/TVL exit early (Y/N): Y — majority of at-risk TVL was withdrawn in the 5-day window; only remaining stragglers were drained]→
illustrativeMultichain (formerly Anyswap): Private Key Compromise (MPC Address) — suspected backend breach or insider2023-07-07 · $126M · Private Key Compromise (MPC Address) — suspected backend breach or insider · TVL anomaly — % drop in <1h vs 30d baseline [via realtime_signals/TVL exit early (Y/N): Y — some TVL flight post-force-majeure in May]→
illustrativeHedera (Network-level — Hashgraph Smart Contract Service): Smart Contract Service (HTS) Code Bug — Uniswap V2 Port Exploit2023-03-09 · $515K · Smart Contract Service (HTS) Code Bug — Uniswap V2 Port Exploit · TVL anomaly — % drop in <1h vs 30d baseline [via realtime_signals/TVL exit early (Y/N): Y — post-attack panic caused $12M TVL exit, not pre-exploit signal] || Low detectability — RT signals would NOT have caught (negative-evidence) [via realtime_signals/Detectability: Low]→
illustrativeAlchemix: Logic bug in alETH collateral accounting — ETH collateral position assigned zero debt → users could withdraw collateral without repaying loan2021-06-16 · $5 · Logic bug in alETH collateral accounting — ETH collateral position assigned zero debt → users could withdraw collateral without repaying loan · TVL anomaly — % drop in <1h vs 30d baseline [via realtime_signals/TVL exit early (Y/N): Y — ETH collateral being withdrawn without corresponding debt repayment would be detectable]→
illustrativeAlpha Finance / Alpha Homora V2 (leveraged yield farming): Debt accounting manipulation via rounding bug + public `resolveReserve` function + custom "evil spell"; insider knowledge of unannounced sUSD pool required2021-02-13 · $38M · Debt accounting manipulation via rounding bug + public `resolveReserve` function + custom "evil spell"; insider knowledge of unannounced sUSD pool required · TVL anomaly — % drop in <1h vs 30d baseline [via realtime_signals/TVL exit early: Y — SBF withdrew $400M FTT from Cream Finance; Three Arrows Capital sent $3M ALPHA to Binance shortly after the exploit broke publicly (like...] || Low detectability — RT signals would NOT have caught (negative-evidence) [via realtime_signals/Detectability rating: Low] || Low detectability — alternate field name [via realtime_signals/Detectability rating: Low]→
illustrativeHarvest Finance: Flash loan + Curve Y-pool spot price manipulation → inflated fToken share valuation → vault drain2020-10-26 · $34M · Flash loan + Curve Y-pool spot price manipulation → inflated fToken share valuation → vault drain · TVL anomaly — % drop in <1h vs 30d baseline [via realtime_signals/TVL exit early: Y — bank run of ~$700M TVL followed immediately post-attack; no pre-attack TVL signal] || Low detectability — RT signals would NOT have caught (negative-evidence) [via realtime_signals/Detectability reasoning: The 32-cycle attack over 7 minutes generated extremely large and anomalous Curve Y-pool swaps repeatedly — a monitoring system watching for ...]→
rubric_version v1.7.0factor RD-F-098category 6carried 0critical no