# Risk methodology

> How 1delta scores lending protocols, markets, vaults, assets and chains on one 1-5 scale.

Source: https://docs.1delta.io/risk/

---

Every lending market, vault, token and chain 1delta serves carries a risk
rating. This section documents how those ratings are produced: what is measured,
what the thresholds are, and — just as importantly — what is deliberately *not*
penalised.

The ratings are descriptive, not prescriptive. They exist so that an integrator
can filter a universe of thousands of markets down to the ones that meet a
stated bar, and so that a number shown next to a position can be explained.

---

## One scale

Everything resolves to the same pair of fields:

| Field | Values | Meaning |
| --- | --- | --- |
| `score` | 1-5, integer | Severity. 1 is safest, 5 is worst. |
| `level` | `green`, `yellow`, `red` | Band. `green` = score ≤ 2, `yellow` = 3, `red` ≥ 4. |

A score is not a probability and the steps are not linear. Read it as a bucket:
1-2 means nothing we screen for is wrong, 3 means something is unproven or
uncertain, 4-5 means a concrete defect was found.

The API exposes the composed result on lending pairs and pools as `risk`
(`maxTokenScore`, `configScore`, and a `breakdown` array), and most listing
endpoints accept a `maxRiskScore` filter that defaults to **4**.

---

## The dimensions

Risk is scored independently per dimension and only then composed, so a reader
can always see which of them produced a downgrade.

| Dimension | Unit rated | What it captures | Page |
| --- | --- | --- | --- |
| **Protocol** | lender (e.g. `AAVE_V3`) | Track record, audits, maturity, pool governance | [Lending protocols](https://docs.1delta.io/risk/lending-protocols/) |
| **Governance** | pool, market, token, vault | Who can unilaterally change or upgrade the thing holding the money | [Governance](https://docs.1delta.io/risk/governance/) |
| **Oracle** | priced market / feed | Whether the price a market liquidates on is sound | [Oracles](https://docs.1delta.io/risk/oracles/) |
| **Curation** | curator, curated market | Who selects and parameterises isolated markets | [Curation](https://docs.1delta.io/risk/curators/) |
| **Bad debt** | market, reserve, vault | Losses that already happened, normalised by size | [Bad debt](https://docs.1delta.io/risk/bad-debt/) |
| **Vault** | ERC-4626 style vault | Composite of curator, holdings, withdrawability, NAV integrity | [Vaults](https://docs.1delta.io/risk/vaults/) |
| **Asset** | token, per chain | Peg behaviour, issuer/upgrade control, wrapper inheritance, liquidity | [Assets and LSTs](https://docs.1delta.io/risk/assets/) |
| **Chain** | chain id | Rollup decentralisation and exit guarantees | [Chains](https://docs.1delta.io/risk/chains/) |

---

## Composition rules

Four rules decide how sub-scores combine. They are applied consistently across
every pipeline.

**1. Independent failure modes take the worst, not the average.** Governance,
oracle integrity and bad debt are separate ways to lose the same deposit.
Averaging lets a sound timelock cancel out a broken price feed, so the level is
the worst applicable dimension. Weighted means are used only *inside* a
dimension — for example across a vault's holdings, where the weights are real
economic exposure.

**2. Observed failure dominates predicted safety.** A market with two top-tier
curators and live bad debt is rated on the bad debt. Audits, curator AUM and
protocol age are proxies for expected safety; realised losses and confirmed
misconfigurations are evidence.

**3. Unknown is not safe, and not automatically dangerous either.** A contract
the classifier could not resolve, a token nobody has listed, a market with no
curator — these cap at `yellow`. They never silently pass as green, and they
never alone force red. A gap in our coverage is not evidence against the
protocol.

**4. Materiality gates before ratios.** Every normalised metric divides by a
size, and near-zero denominators manufacture infinite risk. Abandoned dust —
a $9 remnant in an empty market, a test vault holding a dollar — is recorded as
informational instead of rated catastrophic.

### What is deliberately not penalised

- **Volatility and RWA-ness.** Lending against a volatile or real-world asset is
  ordinary lending risk, priced by LLTV. Only *untrusted* collateral (compromised,
  discontinued, or a proven broken peg) counts against a market.
- **Illiquidity by design.** Vaults with async redemption (LST unbonding,
  cooldown savings, epoch-based withdrawal) are not marked down for a withdrawal
  delay that is the product working as specified.
- **Permissionless deployment.** On isolated-market protocols anyone can deploy a
  market nobody uses. A single junk market does not paint the whole protocol red;
  the lender is rated on the *share* of its classified markets that are high-risk.

---

## Where the data comes from

| Source | Provides |
| --- | --- |
| DefiLlama | Hack history with dated amounts, protocol TVL history, stablecoin supply and price history, audit links |
| Exponential.fi | Baseline protocol rating, auditor list, risk commentary |
| L2Beat | Rollup risk criteria (state validation, DA, exit window, sequencer/proposer failure) |
| Morpho Blue API | Curators, per-market curator index, market warnings, bad debt (realised and unrealised), vault allocations |
| Euler V3 Data API and entity registry | Vault governors, curators, Euler Earn allocations, `lostAssets` |
| On-chain reads (multi-RPC) | Pool and market admins, proxy patterns and upgrade authorities, mint authority, Aave `getReserveDeficit`, Gearbox credit-account solvency, Safe thresholds and owners |
| 1delta data layer | Market universe, collateral sets, token lists, prices |
| Nordstern and Pendle | DEX liquidity depth — Nordstern DEX-aggregator depth for every asset, and the Pendle markets API for Pendle PT/YT/SY tokens |
| CoinGecko | Asset-platform maps, market caps and prices, stablecoin metadata, the yield-bearing-stablecoin category, and cover pricing for the Nexus Mutual view |
| Nexus Mutual | Cover amounts and premium rates per protocol — a market-priced view of protocol risk, tracked alongside the scores but not folded into them |
| Frankfurter | Fiat reference rates for non-USD stablecoin pegs |

Curated inputs (asset whitelist, renowned-curator allowlist, rating overrides for
protocols winding down, governance overrides for non-standard proxies) fill the
gaps that no automated source covers. They only ever refine a specific entry, and
each carries a stated reason.

---

## Refresh and staleness

Hack data refreshes several times a day; the protocol, asset, chain, oracle,
governance and vault pipelines run as one ordered sweep, each stage reading the
previous stage's output. Two habits keep a stale input from reading as a clean
bill of health:

- A snapshot older than the freshness window can only ever *raise* a vault's
  floor — never lower an existing red.
- A fetch that returns nothing fails loudly rather than overwriting good data
  with an empty file. An empty hack list would otherwise read as "no protocol was
  ever exploited".

---

## Limitations

- Scores are point-in-time. A protocol that has never been exploited is not a
  protocol that cannot be.
- Coverage is uneven. Some markets are unscreened for oracle or governance risk;
  those come back `unknown` and cap at yellow rather than being assumed safe.
- Share-of-markets is used where share-of-deposits would be the better
  denominator, because per-market TVL is not available for every family.
- Curator quality is measured by assets under management and identity
  verification, which are proxies for competence, not measures of it.
