Chain Health Score Changelog
Full version history of Chain Health Score methodology decisions, from v1.0 to v1.4.
What This Controls
Chain Health Score Changelog version history
Use this changelog to trace how Pharos changed the related scoring, data-source, threshold, or interpretation rules over time. The latest card below is the current public contract; older entries are retained so historical charts and citations can be read against the rules active at the time.
Primary References
Jump to VersionSections:
Latest Version
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.
Impact Snapshot
- 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.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 — that 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 — that 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