Skip to main content

Protocol risk

Rates the lender itself: the code, the team's history with it, and who controls it. This is the dimension that answers "is the protocol my position sits in sound", independent of which market inside it you pick.

Identified by lender key (AAVE_V3, MORPHO_BLUE, EULER_V2, …), the same identifier used in market identifiers.


1. Baseline

Every protocol starts from a third-party baseline rating (Exponential.fi's green / yellow / red), which folds in code quality, complexity, team and audit posture.

BaselineLevelScore
greengreen1
yellowyellow3
redred4
no rating availableyellow3

An unrated protocol is not given the benefit of the doubt. Most protocols with no third-party coverage are small, new, or both.


2. Track record: exploits

An incident's severity is its size relative to what the protocol held at the time, not its headline USD figure. A $400k loss on a $1.7M protocol is an existential event; $800k on a $58B protocol is a rounding error that says nothing about the protocol's soundness today.

impact = hackAmountUsd / protocolTvlAtHackTime

Incidents below 0.1% of TVL are treated as negligible. Above that, each incident adds a penalty and forces a level downgrade.

ImpactScore penalty
below 0.1% of TVLnone
under 1%+0.5
under 10%+1
under 50%+1.5
50% or more+2
impact unknown+1

Downgrade. If any incident clears the threshold — or its impact could not be computed — the level drops one step: green becomes yellow, yellow becomes red, red stays red. The score is then floored at the minimum for the downgraded level, so the level and the number can never disagree.

Unknown impact counts against the protocol. An incident we cannot size is treated as significant, not ignored. Historic hacks on protocols whose TVL history is no longer published are the common case, and they are exactly the protocols where an unexplained gap should not read as green.

Incidents are cumulative and are not time-decayed. A protocol that was drained in 2021 carries it; what changes the rating is a re-audit and a new baseline, not the passage of time.

Worked example

Edel, an Aave fork on Ethereum, was exploited on 2026-06-30 for $403,000 through a flaw in the wrapper between a tokenised equity and its collateral form, against $1.69M of TVL.

impact  = 403,000 / 1,689,975 = 0.2385  (23.9% of TVL)
baseline= yellow / 3 (no third-party rating)
penalty = +1.5 (impact in the 10-50% band)
downgrade: yellow -> red, floor 4
score = round(max(3 + 1.5, 4)) = 5

Result: red, score 5, 1 incident.


3. Audits and maturity

Audit links are collected from the baseline provider's auditor list and the protocol's own published reports, falling back to DefiLlama's audit links. They are surfaced on the protocol entry so the evidence is one click away.

Protocol age is derived from the first date the protocol reported non-zero TVL. Both are context rather than direct score inputs: an audit is not a guarantee, and the incident and governance signals are the ones that move the number.


4. Pool governance

Who can change the pool is folded into the protocol score. The full classifier is documented in Governance; its effect here:

Worst deployment tierEffect on the protocol rating
high — an EOA can upgrade or re-point the poolforced red, score floored at 4
medium — a small multisig, no timelockone level down, +1 score
low / unknownunchanged

The tier is the worst across all of that protocol's deployments. A lender that is DAO-governed on Ethereum and EOA-governed on a side chain is rated on the side chain: it is the same brand, the same integration, and the same key that can take the money.


5. Isolated-market protocols

Euler, Silo, Fluid, Morpho Blue and similar protocols have no single pool admin — risk lives per market. They are handled two ways at once:

  • The protocol entry carries an aggregate of its markets' governance, and is downgraded when a material share of classified markets is high-risk (above 25%), rather than by weakest link. On a permissionless protocol nobody is exposed to a market they did not choose, and anyone can deploy a market nobody uses.
  • Each market is additionally rated in its own right — oracle, governance, curation, bad debt — and surfaced as its own entry. See Oracles, Curation and Bad debt.

Markets that are unscreened count as unknown and are excluded from the denominator of that share, so a protocol cannot improve its rating by being harder to probe.


6. Manual overrides

A protocol that is winding down or has been abandoned is pinned to red with an explicit status (winding_down, wound_down, deprecated) and a stated reason. Nothing about the code changed; the reason it is unsafe is that nobody is maintaining or defending it any more, which no automated signal captures.

Overrides are the only place a rating is set by hand, they always carry a reason, and they can inject a protocol that the automated pipeline does not otherwise cover.


Output shape

{
"EDEL": {
"level": "red",
"score": 5,
"data": { "auditLinks": [], "numberOfIncidents": 1 }
},
"AAVE_V2": {
"level": "green",
"score": 1,
"governance": { "worstTier": "low", "deploymentCount": 3, "ownerKindMix": { "GOVERNANCE": 3 } },
"data": { "auditLinks": [ { "name": "Audits", "url": "https://aave.com/security" } ], "numberOfIncidents": 0 }
}
}

Per-market entries (Morpho markets, Silo configs, Fluid vaults) use the same level / score envelope with a market-specific data payload, so a consumer reads one shape for every granularity.