Chain Health Changelog: v1 archive
Historical release evidence. Return to current versions and the complete history index.
What this controls
Chain Health Changelog: v1 archive version history
Use this changelog to trace how Pharos changed the related scoring, data-source, threshold, or interpretation rules over time. Entries record the contract active at each release; archived rules are retained so historical charts and citations can be read against the rules active at the time.
Primary references
Latest version
Composite published at 95% peg coverage
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.
Impact snapshot
- 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
v1.7Sep 28, 2026Composite published at 95% peg coverage
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
DetailsHide details
Composite published at 95% peg coverage
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
Impact notes
- 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
v1.6Sep 28, 2026Observed-only peg factors and complete-coverage health
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
DetailsHide details
Observed-only peg factors and complete-coverage health
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
Impact notes
- 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
v1.5Aug 10, 2026Not-rated supply excluded from chain quality
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
DetailsHide details
Not-rated supply excluded from chain quality
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
Impact notes
- 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`
v1.4Jun 12, 2026L2BEAT chain-risk environment scoring
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
DetailsHide details
L2BEAT chain-risk environment scoring
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
Impact notes
- 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
v1.3Jun 6, 2026Active-only inputs and stale report-card dependency
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
DetailsHide details
Active-only inputs and stale report-card dependency
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
Impact notes
- `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
v1.2Apr 7, 2026Two-bucket backing diversity after active taxonomy cleanup
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
DetailsHide details
Two-bucket backing diversity after active taxonomy cleanup
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
Impact notes
- 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
v1.1Mar 16, 2026Chain environment factor and weight rebalance
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%
DetailsHide details
Chain environment factor and weight rebalance
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%
Impact notes
- 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
- f6978ec
v1.0Mar 16, 2026ReconstructedInitial Chain Health Score release
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
DetailsHide details
Initial Chain Health Score release
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
Impact notes
- 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
- 003eafd