Risk Score Framework · v1.0.0

How scores are calculated.

Every protocol score is a weighted composite of four public indicators on a 0–100 scale where higher means lower risk. Weights, inputs and thresholds are published here, versioned with the API, and every observed factor value is visible on the protocol page.

30%

Liquidity Health

How deep, how stable and how trending is the value locked?

  • Liquidity depth (TVL), log scale · 50%
  • 30-day TVL trend · 25%
  • 30-day stability: drawdown + volatility · 25%
25%

Protocol Activity

Is the protocol used, by how many addresses, and reliably?

  • Transactions, 7 days · 40%
  • Unique senders, 7 days · 35%
  • Week-over-week trend · 15%
  • Transaction success rate · 10%
25%

Collateral Conditions

How stretched are collateralised lending markets?

  • Utilisation (borrowed ÷ supplied) · 70%
  • Utilisation change, 7 days · 30%
  • Not applicable to DEXs / liquid stacking: weight redistributed
20%

Transparency

Can the public verify the code, audits, documentation and control?

  • Contract source verifiable on-chain · 20%
  • Public audits · 25%
  • Repository · 15% · Documentation · 10%
  • Contract age · 15% · Governance · 10% · Bug bounty · 5%
Calculation logic
Liquidity 30
Activity 25
Collateral 25
Transp. 20

score = 0.30·L + 0.25·A + 0.25·C + 0.20·T

Each factor maps an observed value to 0–100 with a published piecewise-linear function; factors combine into a component by weight, components into the overall score. When a component does not apply (no collateralised borrowing) or its inputs are unavailable, its weight is redistributed proportionally and the effective weights are published with every score. The overall score is rounded to an integer before banding.

Risk bands
BandScoreMeaning
Low75–100Deep liquidity, healthy collateral, documented
Moderate60–74Acceptable conditions, one indicator lagging
Elevated40–59Two or more indicators under threshold
High0–39Thin liquidity or unhealthy collateral

The Bicora Risk Index on the dashboard is the mean of tracked protocol scores, banded with the same thresholds.

Data sources & update frequency
DefiLlamaTVL, borrowed value and token breakdown per protocol (Stacks chain)
Hiro Stacks APIContract metadata, deployment time and direct-call transaction activity
Protocol registryContract IDs, audits, docs, governance — every entry cites a public source

The indexer and scoring engine run every 6 hours; scores and events accumulate one point per protocol per day. Last run: Sat, 19 Sep 2026 03:54:37 UTC.

Factor definitions

Every input, its weight and its mapping.

Liquidity Health · 30%

Source. DefiLlama Stacks-chain TVL history, cleaned for adapter outliers.

FactorWeightMapping to 0–100
Liquidity depth (TVL)50%log scale: $100K → 0 · $1M → 25 · $10M → 50 · $100M → 75 · $1B → 100
30-day TVL trend25%−50% → 0 · −20% → 30 · flat → 65 · +20% → 90 · +50% → 100
30-day stability25%60% max drawdown (2% → 100 … 80% → 0) + 40% daily volatility (1%/d → 100 … 25%/d → 0)

Protocol Activity · 25%

Source. Hiro Stacks API: direct calls to the registered entry-point contracts, 7-day window.

FactorWeightMapping to 0–100
Transactions, 7 days40%log scale: 10 → 0 · 100 → 33 · 1,000 → 67 · 10,000 → 100
Unique senders, 7 days35%log scale: 5 → 0 · 50 → 37 · 500 → 74 · 2,500 → 100
Trend vs prior week15%−60% → 10 · flat → 60 · +30% → 85 · +100% → 100 (excluded when the prior week is not covered)
Transaction success rate10%70% → 0 · 85% → 40 · 95% → 80 · 99% → 100

Collateral Conditions · 25%

Source. DefiLlama borrowed value for lending / CDP protocols.

FactorWeightMapping to 0–100
Utilisation (borrowed ÷ supplied)70%≤50% → 100 · 80% → 60 · 95% → 20 · 100% → 0
Utilisation change, 7 days30%−10 pts → 100 · flat → 80 · +10 pts → 40 · +20 pts → 10

Transparency · 20%

Source. Protocol registry (config/protocols.json, each entry cites a public source) and Hiro contract metadata.

FactorWeightMapping to 0–100
Contract source verifiable on-chain20%share of registered contracts found on Stacks with readable Clarity source
Public audits listed25%0 → 0 · 1 → 60 · 2+ → 100
Public source repository15%yes → 100
Public documentation10%yes → 100
Oldest tracked contract age15%0 mo → 0 · 6 mo → 35 · 12 mo → 65 · 24+ mo → 100
Governance / upgrade control10%DAO or governance contract → 100 · multisig → 60 · unknown → 0
Bug bounty programme5%yes → 100

Data quality rules

  • TVL points below 5% of the 90-day median are excluded as adapter outliers when the series has since recovered. Exclusions are shown on the protocol page.
  • Activity is measured on direct calls to the registered entry-point contracts. When the pagination cap is hit before covering 7 days, counts are extrapolated and marked as estimated.
  • Ecosystem totals are summed on a common daily calendar with forward-filled protocol series.

Known limitations of v0.1

  • Internal contract-to-contract calls are not counted, so activity for protocols routed through aggregators or newer entry points can be understated. The registry is versioned and reviewed.
  • Collateral conditions depend on the DefiLlama adapter exposing borrowed value; Granite currently reports none, so its collateral component is not applicable.
  • Transparency factors are rubric-based on public sources; they do not assess audit quality or scope.
  • Score history accumulates from the first scoring run; the liquidity component is back-filled from TVL history.
Scores are analytics, not financial recommendations. Methodology v1.0.0 · Sep 2026
Read the documentationOpen Dashboard