The Yield page reranks DeFi stablecoin pools by risk-adjusted APY — raw yield discounted by the issuer’s safety grade. A high-yield pool backed by a shaky stablecoin may rank lower than a modest-yield pool backed by USDC.
Formula
Risk-Adjusted APY = Effective APY × (Safety Score / 100)
Effective APY is normally the raw APY, but when a pool is flagged as an APY spike (see below), the 30-day mean APY is used instead.
Examples:
- 4% APY from an A+ issuer (safety score 96) → 3.84% risk-adjusted
- 15% APY from a C+ issuer (safety score 35) → 5.25% risk-adjusted
- 25% APY from an F issuer (safety score 2) → 0.5% risk-adjusted
⚠ APY Spike Detection
When a pool’s current APY is 3× or more above its 30-day mean APY, it is flagged as a stress spike. These spikes almost always indicate a crisis event — exploit, oracle failure, or liquidation cascade — not a genuine yield opportunity.
Real example — Resolv/Morpho USDC (March 2026):\After the Resolv USR minting exploit, the RESOLVUSDC Morpho vault on Ethereum showed 38% APY while its 30-day mean was ~8% (spike ratio 4.77×). The elevated rate reflected liquidation stress and oracle risk — not a safe high-yield deposit opportunity. Gauntlet (vault risk curator) emergency-deallocated from all Resolv markets. Risk-Adj APY for this pool correctly used the 8% mean: 7.57% rather than the misleading 36.14%.
Spiked rows are marked with a ⚠ icon on the Raw APY and an asterisk (*) on the Risk-Adj APY. Hover either for the spike ratio.
Pool Matching
Pools are fetched from the DeFiLlama yields API (stablecoin=true, TVL ≥ $1M, APY ≥ 0.1%, APY < 200%). Each pool is then matched to a safety grade entry in two steps:
- Address match — DeFiLlama’s
underlyingTokens addresses matched against our chain+address grade index.
- Symbol fallback — if no address match, the pool symbol is split on ”-” and each part matched against the grade symbol index (e.g., “USDC-USDT” tries “USDC” then “USDT”).
Pools with no match are included at the bottom of the table with no grade or risk-adjusted APY displayed.
Filters Applied
| Filter | Value | Reason |
|---|
| stablecoin | true | Only stablecoin-denominated pools |
| outlier | false | Exclude DeFiLlama statistical outliers |
| min TVL | $1M | Filter out thin, illiquid pools |
| min APY | 0.1% | Exclude near-zero noise |
| max APY | 200% | Exclude unsustainable outlier yields |
Column Definitions
| Column | Description |
|---|
| Symbol | Pool token pair(s) as reported by DeFiLlama. |
| Project | Protocol name (Aave, Morpho, Curve, etc.). |
| Chain | Network the pool is deployed on. |
| Grade | Safety grade of the matched stablecoin (A+ to F). See Safety Grade docs. |
| Safety Score | Numeric 0–100 safety score underlying the grade. |
| Raw APY | Nominal APY as reported by DeFiLlama. |
| Risk-Adj APY | Raw APY × (Safety Score / 100). Primary sort column. |
| TVL | Total Value Locked in the pool (USD). |
Update Cadence
- Pool data — fetched fresh from DeFiLlama each run.
- Safety grades — recalculated daily at 04:15 UTC; yield scores depend on them.
- Yield scores output — recalculated daily at 04:30 UTC.