---
title: "Chain Health Changelog"
canonical: "https://pharos.watch/methodology/chain-health-changelog/archive/v1/"
description: "Chain Health Changelog - Pharos methodology version history."
---

# Chain Health Changelog

[All versions](https://pharos.watch/methodology/chain-health-changelog/)

<a id="changelog-v-1-7"></a>

## v1.7 - Composite published at 95% peg coverage

**Effective:** 2026-09-28

Chain Health publishes the composite when peg evidence covers at least 95% of positive chain supply, instead of requiring every holding to carry an observed peg price; below 95% the composite stays NR.

- The composite requires non-null quality and peg factors plus peg coverage that is complete, or partial with coverage ≥ 0.95; unavailable coverage or partial coverage below 0.95 keeps health score and band null
- Bound: peg weight is 0.20, so an unobserved share of at most 5% can move the observed-only peg factor by at most 5 points and the composite by at most 1 point
- No imputation and no neutral 50: the peg factor stays observed-only and the unobserved share remains published in pegStabilityCoverage beside the composite
- Ethereum, Tron, Base, Polygon, Monad, Sonic, Celo, Scroll, and Plume, withheld under v1.6 by small unpriced holdings (Ethereum: $5.9M of $148.7B), regain a composite; Hemi at 15.9% peg coverage stays NR
- Peg factor math, the 50% rated-supply quality gate, factor weights, and bands are unchanged

Origin: Contemporaneous release record

Commits: Commit provenance not recorded

<a id="changelog-v-1-6"></a>

## v1.6 - Observed-only peg factors and complete-coverage health

**Effective:** 2026-09-28

Chain Health removes neutral-50 peg imputation and withholds the composite unless peg evidence covers every positive-supply holding.

- Zero observed peg supply publishes a null peg factor and null health score/band
- Partial coverage publishes the observed-supply-weighted peg factor plus full-universe coverage, but no composite; no partial-coverage threshold is assumed
- Fully observed chains retain the existing formula and weights; neutralImputedSupplyUsd is zero for new payloads
- Nominal par references are not observed peg evidence; their supply remains in the coverage denominator

Origin: Contemporaneous release record

Commits: Commit provenance not recorded

<a id="changelog-v-1-5"></a>

## v1.5 - Not-rated supply excluded from chain quality

**Effective:** 2026-08-10

Chain Health quality now averages Safety Scores over rated supply only instead of imputing a 40 for not-rated supply, and the peg-stability factor derives deviation from the shared depeg-signal primitive rather than a local formula copy.

- Not-rated supply is excluded from both the numerator and the denominator of the `quality` factor; the 50% rated-supply coverage gate is now the only not-rated mechanism, and below it the whole composite stays `null`
- Removed the implicit `40` (the D-grade threshold) previously assigned to unrated coins, an imputed risk judgement Pharos had not made
- 5 of 105 published chains move: manta 71 → 88, stacks 82 → 90, megaeth 50 → 54, metis 87 → 89, cardano 71 → 72 quality; health scores move by at most 5 points and no chain changes health band
- Peg stability now calls the shared `deriveDepegSignal(...)` used by the depeg pipeline; the derivation is numerically identical (unrounded bps) and no chain's `pegStability` changed
- Non-positive or non-finite prices now score neutral `50` like a missing price instead of scoring `0` or poisoning the chain average with `NaN`

Origin: Contemporaneous release record

Commits: Commit provenance not recorded

<a id="changelog-v-1-4"></a>

## v1.4 - L2BEAT chain-risk environment scoring

**Effective:** 2026-06-12

Matched L2BEAT scaling projects now score the Chain Environment factor from a static L2BEAT stage and risk snapshot before falling back to the legacy Pharos tier model for unmatched chains.

- Added explicit Pharos chain ID to L2BEAT project aliases and a static L2BEAT snapshot sourced from the scaling summary API
- Matched chains derive Chain Environment from L2BEAT stage plus Sequencer Failure, State Validation, Data Availability, Exit Window, and Proposer Failure risk sentiments
- Unmatched chains continue to use the existing tier mapping: tier 1 = 100, tier 2 = 60, tier 3 = 20
- Safety Score chainTier and deploymentModel gain L2BEAT audit helpers only; live Safety Score outputs are unchanged

Origin: Contemporaneous release record

Commits: Commit provenance not recorded

<a id="changelog-v-1-3"></a>

## v1.3 - Active-only inputs and stale report-card dependency

**Effective:** 2026-06-06

Live Chain Health now uses the same active/non-archived input universe as the daily chain-supply snapshot and degrades its report-card dependency when cached Safety Scores were computed with stale report-card inputs.

- `GET /api/chains` excludes frozen, defunct, and non-active stablecoins before deriving peg rates or aggregating chain supply
- The report-card dependency now reports `degraded` when `report_card_cache.degradedInputs.inputsStale` is true, instead of marking stale-input scores as fresh
- Health scores can remain computed from the cached score map, but response freshness and headers now surface the degraded upstream report-card condition

Origin: Contemporaneous release record

Commits: Commit provenance not recorded

<a id="changelog-v-1-2"></a>

## v1.2 - Two-bucket backing diversity after active taxonomy cleanup

**Effective:** 2026-04-07

Removed the standalone algorithmic bucket from the active backing taxonomy after reclassifying the remaining reserve-backed cases. Chain Health backing diversity now measures only the live RWA-backed vs crypto-backed split.

- Reclassified FPI, cUSD, and CEUR out of the legacy algorithmic bucket based on their reserve backing
- Active backing filters and taxonomy pages now expose only RWA-backed and crypto-backed cohorts
- Backing diversity now normalizes across the two active backing types, so an even RWA/crypto split scores 100

Origin: Contemporaneous release record

Commits: Commit provenance not recorded

<a id="changelog-v-1-1"></a>

## v1.1 - Chain environment factor and weight rebalance

**Effective:** 2026-03-16

Added a fifth health factor, Chain Environment, which rates chain infrastructure quality via a resilience tier system. Rebalanced weights to reduce backing diversity influence and give chain quality 20% of the composite.

- New Chain Environment factor (20% weight): tier 1 = 100 (Ethereum), tier 2 = 60 (default), tier 3 = 20 (PulseChain, Harmony, etc.)
- Backing diversity weight reduced from 15% to 10%
- Quality weight reduced from 35% to 30%
- Concentration weight reduced from 25% to 20%
- Peg stability weight reduced from 25% to 20%
- Chains with poor infrastructure penalized: e.g. PulseChain dropped from #1 healthiest to mid-table

Origin: Contemporaneous release record

Commits: `f6978ec`

<a id="changelog-v-1-0"></a>

## v1.0 - Initial Chain Health Score release

**Effective:** 2026-03-16

Launched per-chain health scoring with four factors: quality (35%), concentration (25%), peg stability (25%), and backing diversity (15%). Exposed via /api/chains and the /chains/ leaderboard.

- Introduced chain health score as a 0-100 composite across four factors
- Quality: supply-weighted average of Pharos Safety Scores (null if < 50% coverage)
- Concentration: HHI-based metric rewarding stablecoin diversity
- Peg stability: supply-weighted peg proximity across all chain stablecoins
- Backing diversity: Shannon entropy across the backing taxonomy active at the time
- Health bands: robust (80-100), healthy (60-79), mixed (40-59), fragile (20-39), concentrated (0-19)
- Added /api/chains endpoint, /chains/ leaderboard page, and /chains/[chain]/ detail pages

Origin: Reconstructed from git commit history

Commits: `003eafd`
