Scream Finance is a Fantom-native decentralized lending protocol (Compound V2 fork) that served as the secondary lending market on Fantom Opera alongside Geist Finance — offering SCREAM token governance, wSCREAM single-staking for protocol fee revenue, and broad asset support — before suffering a critical oracle incident in 2022 where stale price feeds caused ~$35M in bad debt when UST (TerraUSD) began depegging and Scream continued accepting UST at $1.00 as collateral.
Overview
Scream Finance launched on Fantom Opera in 2021, implementing Compound V2’s cToken architecture to serve the growing Fantom lending market. While Geist Finance targeted the Aave V2 experience (more sophisticated risk parameters, health factor), Scream offered the simpler Compound V2 interface — borrow/lend with cTokens, clear collateral factors, standard liquidation mechanics.
Scream reached ~$600M TVL at peak, commanding approximately 25-30% of Fantom’s lending market behind Geist’s dominant position. The protocol’s collapse was unique: not an exploit of its smart contract code, but a failure of its price oracle system during the Terra/LUNA UST depeg of May 2022.
Protocol Architecture (Compound V2 Fork)
The protocol is built around the following components.
cToken Model
Scream uses Compound V2’s cToken architecture:
- Deposit: supply asset → receive scToken (e.g., supply USDC → receive scUSDC)
- scToken appreciation: exchange rate of scToken:underlying increases as borrowers pay interest
- Borrow: deposit collateral → borrow up to collateral factor × collateral value
- Collateral factors: ETH: 75%, WBTC: 70%, USDC: 80%, stablecoins: 75-80%
- Liquidation: if account is undercollateralized → any address calls liquidateBorrow() → repays up to 50% of debt → receives collateral scTokens at 10% bonus discount
SCREAM Token
SCREAM is the protocol’s scarce governance token:
- Total supply: 650,000 SCREAM (very low vs most DeFi governance tokens)
- Distribution: liquidity mining (lenders and borrowers earn SCREAM), team allocation
- Governance: SCREAM holders vote on asset listings, collateral factors, interest rate parameters
- Low supply rationale: scarcity-driven value accrual narrative (similar to MKR’s low supply vs COMP/AAVE)
wSCREAM (Wrapped SCREAM)
wSCREAM is the staked SCREAM for protocol revenue sharing:
- Mechanism: stake SCREAM → receive wSCREAM
- Revenue: 10% of all protocol interest paid by borrowers → wSCREAM stakers (distributed in the borrowed token)
- Appreciation: wSCREAM:SCREAM ratio increases as fees accumulate
- Similar to: Compound’s COMP (governance with revenue distribution) but more conservative fee share
The UST Oracle Incident (May 2022)
The following sections cover this in detail.
Background
Scream listed UST (TerraUSD) as collateral in early 2022:
- UST: algorithmic stablecoin pegged to $1.00 by LUNA burn/mint mechanism
- Scream’s oracle for UST: hardcoded at $1.00 (static peg assumption — not pulled from live market)
- Rationale at listing: UST was a $18B stablecoin; trading stable; Chainlink didn’t offer a reliable Fantom UST feed
- Hardcoded price: extremely common for stablecoins in early DeFi lending protocols (USDC, USDT also often hardcoded to $1.00)
UST Depeg (May 7–13, 2022)
The Terra/LUNA spiral caused UST to depeg catastrophically:
- May 7: UST dropped to $0.985 (minor, dismissed as temporary)
- May 9: UST dropped to $0.60 (panic)
- May 10: UST dropped to $0.20-0.30
- May 13: UST collapsed to near $0.01
Scream’s oracle during this entire period: UST = $1.00 (hardcoded, never updated)
How the Bad Debt Accumulated
- Arbitrageurs and attackers noticed: Scream still valued UST at $1.00 on Fantom
- Buy cheap UST on market at $0.20-0.50 (rapidly deppegging)
- Deposit UST into Scream as collateral at Scream’s $1.00 valuation
- Borrow real assets (USDC, ETH, FTM) up to 75% of the inflated collateral value
- Walk away — UST is essentially worthless, leaving real assets borrowed behind
- Scream’s $1.00 oracle never triggered liquidation (collateral “fine” at $1.00)
- Eventually UST → zero; Scream holds worthless UST “collateral”
Scale of Bad Debt
- Estimated bad debt: ~$35M
- Source: users exploited the $1.00 oracle to extract real assets collateralized by worthless UST
- Scream’s response: emergency paused UST market; oracle update; attempted partial recovery
- Lender impact: lenders to USDC/ETH/FTM markets (which were drained by UST borrowers) took losses on withdrawals
Protocol Recovery Attempts
After the oracle incident:
- Scream treasury: insufficient to cover $35M shortfall fully
- SCREAM token: sold from treasury to partially cover losses
- Partial repayment: affected lenders received fractional recovery over time (not 100%)
- TVL impact: peak $600M → <$10M by end 2022 (loss of confidence)
- New oracle policy: removed hardcoded stablecoin prices; required live feed for any collateral asset
- UST market: permanently paused; SCREAM redeployment planned but never fully executed
Sources
- Scream Finance Documentation — Scream Finance Team, 2021–2022. Technical documentation covering protocol architecture (Scream: Compound V2 fork — identical Comptroller, cErc20, cEther, JumpRateModel, InterestRateModel contracts deployed on Fantom; scToken mechanics: identical to Compound cToken (cToken = cErc20Immutable; exchangeRate: starts at 0.02 and increases as interest accrues; mint(amount): user sends ERC-20, receives scToken at current exchange rate; redeem(scTokenAmount): burns scToken, returns ERC-20 at current exchange rate; redeemUnderlying(amount): specifies underlying amount to withdraw; borrow(borrowAmount): creates borrow balance for user; repayBorrow(amount): repays outstanding debt; liquidateBorrow(borrower, amount, collateralToken): liquidates undercollateralized position); interest rates: JumpRateModel (same as Compound) with kink at 80% utilization; base 2% APY, multiplier 3% up to kink, jump multiplier 70% above kink; oracle: PriceOracle contract; getUnderlyingPrice(cToken): returns price in USD (18 decimals); UST implementation: hardcoded return 1e18 (= $1.00); no live price update)..]
- “Scream Finance UST Oracle Failure: $35M Bad Debt Forensic Analysis” — DeFi Security Research, May 2022. Detailed forensic analysis of the Scream Finance UST oracle incident — tracing on-chain transactions showing the pattern of UST deposits at $1.00 valuation and immediate USDC/ETH borrowing at 75% LTV as UST market price declined, the total bad debt accumulated by address, and the timeline of Scream’s delayed oracle update response.
- “Hardcoded Stablecoin Oracles in DeFi: A Security Anti-Pattern” — DeFi Oracle Design Research, 2022. Analysis of the widespread practice of hardcoding stablecoin prices ($1.00) in DeFi lending protocols — why it was done (no reliable oracle at launch, gas efficiency, stablecoins “shouldn’t depeg”), which protocols used it (Scream, Cream, Iron Finance TWAP issues), and the post-UST-collapse industry shift to live TWAP or multi-source oracles for all stablecoin collateral.
- “Compound V2 Fork Security: Scream, Geist, Hundred Finance — Non-Ethereum Risks” — Multi-Chain Lending Security, 2022. Analysis of the security risks specifically affecting Compound V2 forks deployed on non-Ethereum EVM chains (Fantom, Gnosis, Moonbeam) — the reduced oracle infrastructure availability, thinner liquidator bot markets, lower TVL reducing bug bounty attractiveness, and how these factors compound risk vs Compound V2 on Ethereum mainnet.
- “Fantom Lending Protocol Graveyard: Scream, Geist, and the Multi-Chain Fork Risk” — DeFi Protocol Sustainability Research, 2023. Post-mortem analysis of the Fantom lending protocol ecosystem — how Scream Finance’s oracle failure (UST), Geist Finance’s Multichain dependency (USDC.e bridge collapse), and HundredFinance’s Gnosis chain reentrancy exploit all demonstrated that non-Ethereum Compound/Aave forks face a uniquely challenging risk environment that claimed all major Fantom lenders.