Asset Composition (30%)
Category specific asset scoring, evidence quality, caps, staleness penalties, market LLTV haircuts, and Aave lending market construction.
Asset quality is the irreducible risk floor. The asset model scores assets by category against explicit dimensions, then applies non-compensatory caps.
1) Category Taxonomy
| Category | Examples | Primary failure mode |
|---|---|---|
| native | ETH, WETH | Chain halt or liveness failure |
| fiat_backed_stablecoin | USDC, USDT, PYUSD | Issuer insolvency or reserve shortfall |
| cdp_stablecoin | DAI, USDS, LUSD, GHO | Collateral cascade or governance attack |
| synthetic_stablecoin | USDe, USD0, eUSD | Basis unwind or funding inversion |
| lst | wstETH, cbETH, rETH | Validator penalty and withdrawal risk |
| lrt | weETH, ezETH, rsETH | AVS validator penalty aggregation risk |
| wrapped_btc | WBTC, cbBTC, tBTC | Bridge or custodian failure |
| governance_token | LINK, UNI, ARB | Volatility and liquidity shock |
| defi_derivative | PT and YT wrappers | Pricing and settlement complexity |
| tokenized_treasury | BUIDL, BENJI | Issuer, custodian, and redemption risk |
| t_bill_backed_stable | AUSD class assets | Backing, attestation, and liquidity risk |
| rwa_credit | Tokenized private credit | Credit quality and redemption risk |
| commodity_backed | Gold-backed tokens | Custodian and redemption risk |
| tokenized_equity | Tokenized equity wrappers | Legal wrapper and market-access risk |
| wrapped_crypto | Wrapped crypto assets | Wrapper, bridge, or custody risk |
| unreviewed | Any unclassified asset | Unknown or insufficient assessment |
2) Dimension-Based Scoring
The weighted formula depends on category. The live dimension set is listed below.
| Dimension | Applies most often to |
|---|---|
peg_stability | Stablecoins and pegged wrappers |
issuer_custody | Issuer-backed and custody-backed assets |
redeemability | Stablecoins, RWAs, and wrapped assets |
reserve_transparency | Backed assets and off-chain collateral |
governance_controls | Mutable wrappers and protocol-governed assets |
protocol_security | Smart-contract and wrapper assets |
operator_quality | LSTs, LRTs, and managed RWA products |
bridge_mechanism | Wrapped and cross-chain assets |
dependency_depth | Recursive or stacked wrappers |
liquidity | All tradable assets |
volatility | Governance tokens and non-pegged assets |
credit_quality | Credit-fund and private-credit exposures |
default_rate | Credit-fund and private-credit exposures |
recovery_rate | Credit-fund and private-credit exposures |
subadvisor_concentration | Credit funds with delegated underwriting |
redemption_terms | Credit funds and products with gated withdrawals |
Missing or provisional dimension values use a neutral conservative default of 5.0.
3) Cap Cascade
Final asset score is the minimum of the weighted dimension score and all active caps.
final_asset_score = min(
weighted_dimension_score,
overlay_cap,
review_status_cap,
hard_fail_cap,
override_cap,
staleness_cap
)Review status caps
| Review status | Cap |
|---|---|
reviewed | 10.0 |
provisional | 9.0 |
unreviewed | 7.9 |
Unreviewed category scoring remains stricter than the cap alone. The live formula also constrains unreviewed assets through liquidity-weighted fail-safe behavior.
4) Overlays And Market Haircuts
yield_bearingwrappers are constrained by wrapper and underlying dependency quality.lockupoverlays reduce the liquidity dimension.- Morpho and lending-market LLTV haircuts apply to exposure scores before portfolio aggregation.
Market LLTV collateral penalty
| LLTV band | Multiplicative haircut |
|---|---|
>= 0.95 | 10.0% |
>= 0.90 | 5.0% |
>= 0.85 | 2.5% |
< 0.85 | none |
The published asset vector includes these market haircuts when applicable.
5) Hard-Fail Controls
Hard-fail flags apply strict caps regardless of weighted dimension quality. When a flag is active, the final asset score cannot exceed the listed cap, even if the rest of the evidence is strong.
| Flag | Cap | Cooldown |
|---|---|---|
sanctions_exposure | 0.0 | 7 days |
active_depeg | 1.0 | 7 days |
redemption_paused | 2.0 | 3 days |
single_signer_upgrade | 3.0 | 14 days |
endogenous_collateral_high | 4.0 | 30 days |
proof_of_reserve_missing | 4.0 | 30 days |
unaudited_token_contract | 4.0 | none |
no_recent_attestation | 5.0 | 30 days |
Flags are event-sourced and may include trigger windows and cooldowns.
6) Staleness Penalties
Evidence freshness affects effective dimension values.
| State | Treatment |
|---|---|
| stale | value multiplied by 0.92 |
| expired | value reduced to 75% of the last value |
Expired evidence has no score floor. When more than 50% of weighted evidence is stale or expired, the asset score is capped at 8.0.
7) Unresolved Address Fallback
If an adapter cannot resolve an exposure address, scoring falls back to strict unreviewed behavior.
- asset score is constrained to a conservative low cap
- explainability includes a machine-readable unresolved-address reason
8) Portfolio-Level Adjustments
After per-exposure asset scoring, vault-level portfolio adjustments may apply.
| Adjustment | Score effect |
|---|---|
| concentration | Applied to the asset portfolio score |
| wrong-way risk | Applied to the asset portfolio score |
| category correlation | Informational only in the live score |
Single-asset vaults are exempt from concentration and correlation penalties.
9) Asset Quality Anchor
Post-composite asset-quality drag uses assetQualityAnchor, not always the same value as the published asset vector. The anchor includes category scores, caps, and review-status constraints, but excludes LLTV haircuts and portfolio-level adjustments.
This distinction matters for lending markets. A vault can show an LLTV-penalized asset vector below 8.0 while still carrying an anchor at or above 8.0 for the post-composite drag check.
Any exposure of at least 5% weight with a binding fail-safe cap forces the anchor below 5.0, which then limits the final vault score to the Edge ceiling.
10) Aave v3 Lending Markets
For single-sided lending markets on Aave v3, the asset vector is not the deposit asset alone. A depositor in an Aave pool is exposed principally to the token they supplied, and through the shared liquidation engine to the other active reserves in the same pool.
The Aave lending asset score is a 50/50 weighted composite.
asset_score_aave_lending
= 0.50 * score(deposit_asset)
+ 0.50 * weighted_mean(
score(other_active_reserves),
weight = reserve_share_of_pool,
filter = reserve_share >= 1%
)The reserve filter excludes dust reserves. Dimension scoring, cap cascade, hard-fail flags, staleness handling, and portfolio adjustments apply before the components are combined.