Skip to main content
PharosPHAROS

Methodology

How Pharos grades stablecoins: transparent scoring across safety, peg stability, liquidity, yield, and contagion risk. Treat this page like a reference manual, not a marketing explainer.

Reader Guide

Reader mode keeps summaries up front. Switch to Analyst for formulas, caveats, and worked examples.

View

Page rhythm: summary, quick facts, worked example, technical notes.

Stability Index Methodology

v3.0Version history →

Version increments when PSI formula, caps, bands, or component definitions change.

The Pharos Stability Index (PSI) is a market-level 0–100 health score for the stablecoin ecosystem. It is recomputed every 15 minutes from live depeg conditions and stress signals, then aggregated into daily history snapshots.

Update cadence

15m refresh

Score range

0-100 market health

Main use

Bands: BEDROCK to MELTDOWN

Preconditions & Failure Modes

Minimum data

Scorer accepts empty depeg sets, but requires total market cap > 0

Required sources

Market-cap totals + active depeg inputs (DEWS breadth optional)

Failure behavior

Returns null when market-cap input is missing/<=0; cron skips that sample and API serves last valid value

Worked example (verified against computeStabilityIndex)

Inputs: bps=-120, depegMcap=$2B, totalMcap=$200B, age=10d, trend=+1.2, stressBreadth=1.5

severity=1.141, breadth=4.243, score=100-1.141-4.243-1.5+1.2=94.316→94.3

Result: PSI 94.3 (BEDROCK).

Technical details: formula, component math, depeg handling, and condition bands

Scoring Formula

Score = 100 − severity − breadth − stressBreadth + trend

The final value is clamped to [0, 100] and rounded to one decimal.

Severity

0–68

Breadth

0–17

Stress Breadth

0–5

Trend

−5 to +5

Compute PSI

100 − penalties + trend

Condition Band

BEDROCK through MELTDOWN

Components

ComponentRangeFormulaPurpose
Severity0–68min(68, Σ(abs(bps)/100 × share × log2(1+mcap/1B) × 60 × factor))Magnitude-weighted depeg damage with extra emphasis on mega-cap instability
Breadth0–17min(17, Σ(sqrt(mcap/1B) × 3 × factor))How widely depegs are spreading across unique coins
Stress Breadth0–5min(5, dewsStressBreadth)Early-warning pressure from DEWS stress signals before full depegs
Trend−5 to +5clamp(-5, 5, mcap7dChangePct)7-day stablecoin market-cap momentum (supports or offsets penalties)

Depeg Handling Rules

  • Per-coin deduplication: active events are grouped by coin; each coin contributes once using the worst current deviation.
  • Age-aware depreciation: fresh depegs get full weight for 30 days, then decay linearly to a 25% floor over 120 days.
factor = ageDays ≤ 30 ? 1.0 : max(0.25, 1.0 − (ageDays − 30)/120)

Condition Bands

RangeBandMeaning
90–100BEDROCKNear-ideal market stability
75–89STEADYNormal conditions with minor stress
60–74TREMORMeaningful instability emerging
40–59FRACTUREBroad, significant market stress
20–39CRISISContagion-level instability
0–19MELTDOWNSystemic peg failure conditions

Safety Scores Grading Methodology

v5.5Version history →

Version increments when weights, thresholds, or dimension definitions change.

Pharos synthesizes multiple data signals into a single transparent grade per stablecoin. The overall score is computed in two steps: first, a weighted average of four base dimensions (liquidity, resilience, decentralization, dependency risk), then a peg stability multiplier that penalizes coins with poor pegs while barely affecting well-pegged ones. When some base dimensions lack data (NR), their weight is redistributed proportionally among rated ones.

Model shape

4 dimensions + peg multiplier

Grade output

A+ to F, with NR

Key caveat

No DEX data = 10% penalty

Preconditions & Failure Modes

Minimum data

At least 2 rated non-peg dimensions

Required sources

Peg summary, DEX liquidity, and dependency/metadata inputs

Failure behavior

NR if peg is missing on non-NAV coins; no-liquidity applies 0.9 multiplier

Worked example (verified against computeOverallGrade)

Inputs: Liq 80, Res 70, Decen 60, Dep 75, Peg 92

base=(80*0.30+70*0.20+60*0.15+75*0.25)/0.90=73.06

final=round(base*(92/100)^0.20)=round(73.06*0.9835)=72

Result: Score 72 (grade B).

Technical details: full pipeline, dimension formulas, thresholds, and caveats

Liquidity

30%

Resilience

20%

Decentralization

15%

Dep. Risk

25%

Weighted Average

base score

× Peg Multiplier

(pegScore / 100)0.20

× No-Liquidity Penalty

0.9× if no DEX data

Final Grade

A+ through F

Base Dimensions (weighted average)

DimensionWeightSourceDescription
Liquidity30%DEX liquidity scoreDirect passthrough of the liquidity score (see below)
Resilience20%Collateral, custody, blacklistStructural resilience across 3 equally-weighted sub-factors
Decentralization15%Governance type, chain riskGovernance structure with chain-risk penalty
Dependency Risk25%Upstream grades, collateral weightsInherited risk from upstream stablecoins, weighted by exposure

Peg Stability Multiplier

After computing the base score, peg stability is applied as a power-curve multiplier: final = base × (pegScore / 100)0.20. Coins with strong pegs (90+) are barely affected (~2% penalty), while coins with broken pegs are properly penalized (e.g. pegScore 10 → 37% penalty). NAV tokens (pegScore = NR) receive multiplier 1.0 since peg tracking does not apply to them.

No-Liquidity-Data Penalty

A further 0.9× multiplier is applied when a coin has no DEX liquidity score (NR). No free pass — as DEX liquidity coverage matures, the absence of liquidity data is increasingly suspicious. The 30% weight would normally be redistributed to other dimensions, effectively inflating the overall score; this multiplier corrects for that by applying a flat 10% penalty instead.

Resilience Scoring

Average of three equally-weighted sub-factors (~33% each). Chain infrastructure is scored exclusively in the Decentralization dimension.

Sub-factorWhat it measuresScoring
Collateral QualityReserve composition riskWeighted avg of curated reserve slices: Very Low (100), Low (75), Medium (50), High (25), Very High (5). Falls back to enum scoring for coins without curated reserves.
Custody ModelWho holds the collateral?Fully on‑chain (100), Institutional custodian (50), CEX/off‑exchange (0)
Blacklist CapabilityCan the issuer freeze holder funds?No (100), Possible (mutable contract) (66), Possible (inherited — ≥25% of reserves backed by blacklistable coins such as USDC/USDT) (66), Yes (33)

Collateral quality is derived from curated reserve compositions when available — each reserve slice is classified into one of five risk tiers and the score is their weighted average. For coins without curated reserves, a coarser enum-based fallback is used. Explicit overrides exist for coins where defaults are incorrect (e.g., protocols on Solana, coins with CEX custody).

Decentralization Scoring

Base score from governance quality tier, then a chain-risk penalty for protocols on less decentralized chains — governance decentralization is undermined when the underlying chain has centralisation concerns:

  • Immutable code — 100 (no admin keys, no upgrade path — e.g. LUSD, BOLD). Exempt from chain-risk penalty
  • DAO governance — 85 (e.g. DAI)
  • Multisig — 55 (e.g. GHO, FRAX)
  • Regulated entity — 40 (named regulator, license, and independent audit — e.g. USDC, USDT)
  • Single entity — 20 (unregulated or unverified issuer)
  • Wrapper — 10 (inherits upstream governance)

Chain-risk penalty (DAO, multisig, and wrapper governance — exempt for immutable-code, regulated-entity, single-entity):

  • Ethereum — no penalty
  • Stage 1+ L2 — −15
  • Established alt-L1 — −50
  • Unproven chain — −65

Example: hyUSD (DAO governance, Solana) = 85 − 50 = 35. USDB (multisig, Blast L2) = 55 − 15 = 40.

Dependency Risk Scoring

Two-phase computation ensures upstream scores are available before dependent coins are graded. Phase 1 grades independent coins (centralized & decentralized), then Phase 2 grades CeFi-Dependent coins using Phase 1 results.

  • Non-dependent coins — score 95 (no upstream risk)
  • With mapped dependencies — blended score: each upstream's grade is weighted by its collateral fraction, and the self-backed portion (non-stablecoin collateral) scores vary by governance type (decentralized 90, centralized-dependent 75, centralized 95). A −10 penalty applies if any upstream dependency scores below 75
  • Unmapped dependencies — falls back to 70 when dependencies aren't mapped or scores are unavailable

Dependency type ceilings — each dependency is classified as wrapper, mechanism-critical, or collateral (default). Wrappers (e.g., syrupUSDC → USDC) are thin layers around the upstream — their score is capped at upstream − 3. Mechanism-critical dependencies (e.g., DAI → USDC via PSM) are essential to the peg — score is capped at the upstream's score. Collateral dependencies use the blended formula with no ceiling.

Self-backed scores vary by governance type: centralized-dependent coins score 75 (systemic coupling risk), decentralized coins 90, and centralized coins 95. Centralized-dependent coins score lower because their peg mechanisms depend on upstream stablecoin infrastructure even for non-stablecoin collateral.

Grade Thresholds

GradeScore Range
A+87–100
A83–86
A−80–82
B+75–79
B70–74
B−65–69
C+60–64
C55–59
C−50–54
D40–49
F0–39
NRNot enough data

Key Design Decisions

  • NR (Not Rated) is used when fewer than 2 base dimensions have data — no misleading partial grades
  • Weight is redistributed proportionally among rated base dimensions when some are NR
  • Peg stability acts as a multiplier, not a base dimension — maintaining a peg is table stakes, not a differentiator
  • Cemetery (defunct) coins receive a permanent F
  • Decentralization score is structural, not a value judgment
  • Blacklist inheritance: stablecoins where ≥25% of reserves (by weight) are backed by first-order blacklistable coins are flagged as “possible-inherited” blacklist risk

Dependency Ceilings

When a stablecoin depends on another (wrapper, mechanism, or collateral relationship), its dependency risk score is capped relative to its upstream:

  • Wrapper dependency: capped at upstream score minus 3 points
  • Mechanism dependency: capped at upstream score
  • Collateral dependency: blended into dependency risk dimension via weighted average

If any upstream dependency scores below 75, a 10-point penalty is applied. These ceilings prevent a wrapped token from outscoring its underlying asset.

Limitations

  • Peg stability only reflects price data — can't detect coins “stable” because nobody trades them
  • Decentralization is structural, not a value judgment
  • Dependency map is manually maintained — may not capture every collateral relationship

Liquidity Score

v4.0Version history →

Version increments when liquidity formula weights, source inclusion rules, or TVL normalization logic changes.

Composite 0–100 score measuring DEX liquidity depth per stablecoin, updated every 30 minutes. Aggregates pool data across all major DEXes and chains.

After bad pools are filtered and secondary-source TVL caps are applied, every exported aggregate and score input is rebuilt from the retained pool set. That keeps filtered or downscaled pools from lingering in the final score through stale pre-filter totals.

Update cadence

30m refresh

Signal mix

6 weighted liquidity components

Output

0-100 DEX depth score

Preconditions & Failure Modes

Minimum data

No hard minimum in scorer; missing stability history defaults to neutral 50 sub-scores

Required sources

Pool TVL/volume/chain data plus mechanism and pair-quality metadata

Failure behavior

If liquidity score is null/missing, report-card liquidity dimension is NR

Worked example (verified against computeLiquidityScore)

Inputs: effectiveTVL=$25M, TVL=$20M, volume24h=$8M, qualityTVL=$18M, durability=68, pools=12

tvlDepth=67.96, volume=63.37, quality=65.11, pair=60

score=round(0.35*67.96+0.20*63.37+0.225*65.11+0.15*68+0.075*60)=66

Result: Liquidity score 66.

Technical details: component weights, TVL scaling, and quality adjustments

TVL Depth

35%

Vol. Activity

20%

Pool Quality

22.5%

Durability

15%

Pair Diversity

7.5%

Liquidity Score

0–100

Components

ComponentWeightHow it works
TVL Depth35%Log-scale effective TVL (quality-adjusted, metapool-deduped): $100K→20, $1M→40, $10M→60, $100M→80, $1B+→100
Volume Activity20%Log-scale V/T ratio: 33.3×log10(vtRatio/0.005). ~0.5%→13, ~5%→56, ~50%→100
Pool Quality22.5%Quality-adjusted TVL using pool mechanism multiplier × balance health × pair quality. Curve StableSwap (A≥500) = 1.0×, Uni V3 1bp = 1.1×, generic AMM = 0.3×
Durability15%TVL stability (35%), volume consistency (25%), pool maturity (25%), organic fee fraction with sqrt curve (15%)
Pair Diversity7.5%Pool count with diminishing returns: min(100, poolCount × 5)

Pool Quality Adjustments

  • Balance health — continuous ratio (not binary threshold): pools with imbalanced reserves score lower
  • Pair quality — co-token scored by Pharos governance classification (CeFi→1.0, DeFi→0.9, CeFi-Dep→0.8) plus static map for volatile assets (WETH→0.65, WBTC→0.6)
  • Metapool dedup — uses TVL excluding base pool to prevent double-counting across Curve metapools
  • Retained-pool recomputation — HHI, depth, volume, and balance/organic/durability inputs are all recomputed from the same retained pool set before the UI truncates to the top 10 displayed pools

Mint/Burn Flow Scoring

v4.7Version history →

Version increments when flow scoring logic, tracked event semantics, or ingestion attribution policies change.

Pharos tracks on-chain mint and burn events for major stablecoins via Alchemy JSON-RPC (Transfer mints/burns plus USDT Issue/Redeem). These raw events are aggregated into hourly buckets and exposed as two separate signals: raw net flow for current direction, and a baseline-relative pressure score for context. Counted flow excludes bridge burns, review-required burns, and atomic roundtrips.

Data source

On-chain mint + burn events

Primary score

Pressure Shift vs 30D

Main outputs

Net flow, gauge, and FtQ

Preconditions & Failure Modes

Minimum data

Pressure Shift vs 30D requires at least 7 days of flow history per coin

Required sources

24h mint/burn totals plus 30-day baseline aggregates

Failure behavior

Pressure shift can be null (NR); gauge is null when no weighted inputs contribute; FtQ needs ±$100M dual threshold

Counted rows

Economic-flow aggregates count standard mints plus effective burns only

Worked example (verified against computeFlowIntensity)

Inputs: currentNet=-$0.2M, baselineNet=-$7.5M, baselineAbs=$40M

denominator=max(40M*0.3,1M)=12M; z=(-0.2M-(-7.5M))/12M=0.608

pressureShift=clamp(-100,100,z*50)=30.4

Result: still burning today, but much lighter than its baseline.

Technical details: two-signal pipeline, pressure formula, and gauge bands

Mints

Transfer from 0x0

Burns

Transfer to 0x0

Hourly Buckets

Trailing 30 closed daily Ethereum buckets

Net Flow 24h

Current mint minus burn direction

Pressure Shift vs 30D

-100 worsening · 0 baseline · +100 improving

Bank Run Gauge

market-cap weighted

Flight-to-Quality

dual threshold

Net Flow 24h

Net Flow answers the first question directly: is a coin minting or burning right now? It is the raw 24-hour mint volume minus burn volume.

  • Minting — `netFlow24hUsd > 0`
  • Burning — `netFlow24hUsd < 0`
  • Flat — `netFlow24hUsd = 0` with activity
  • No activity — no 24h mint/burn events in the window
  • Invariant — minting vs burning always comes from raw net flow, never from the pressure score sign

Pressure Shift vs 30D

This is the existing Flow Intensity formula under clearer naming. It measures how far current 24-hour flow pressure deviates from the coin's own trailing 30 fully closed daily Ethereum baseline.

denominator = max(baselineDailyAbs × 0.3, $1M)
z = (currentDailyNet − baselineDailyNet) / denominator
pressureShift = clamp(-100, 100, z × 50)

  • Baseline period — trailing 30 fully closed UTC days of Ethereum daily net flows and absolute volumes, excluding the current partial day
  • Minimum data — requires 7 days of history; returns null (NR) otherwise
  • Activity gate — windows with no 24h mint/burn activity or less than $50K absolute 24h flow are marked NR and excluded from gauge weighting
  • Ingestion safety — sync state advances only to the shared safe coverage frontier when some event definitions or block timestamps are incomplete
  • Floor — denominator is floored at $1M to prevent noise in low-volume coins
  • Interpretation — above +10 = improving vs baseline, between -10 and +10 = stable vs baseline, below -10 = worsening

Bank Run Gauge

Market-cap-weighted composite of all tracked coins' pressure-shift values, producing a single ecosystem-wide Ethereum flow-pressure reading. The gauge score maps to one of seven condition bands:

BandScore RangeMeaning
CRISIS−100 to −70Severe below-baseline redemption pressure across major coins
STRESS−70 to −40Worsening coordinated pressure versus normal conditions
CAUTIOUS−40 to −10Mild but broad pressure deterioration
NEUTRAL−10 to 10Close to 30D norms across the market
HEALTHY10 to 40Improving aggregate pressure versus baseline
CONFIDENT40 to 70Strong positive pressure shift across major coins
SURGE70 to 100Exceptional improvement versus recent norms

Returns null only when all tracked coins are NR (for example, insufficient history or no 24h mint/burn activity). Coins with null pressure-shift values are skipped from the market-cap-weighted composite.

Flight-to-Quality Detection

Detects capital rotation from risky to safe-haven stablecoins — a pattern typically seen during market stress when holders move funds from algorithmic or less-established coins into fully-backed centralized stablecoins.

  • Safe classification — centralized governance with real-world-asset backing (USDT, USDC, FDUSD, PYUSD)
  • Dual threshold — active when risky coins have >$100M net outflows AND safe coins have >$100M net inflows simultaneously over 24h
  • Intensity scaling — min(100, |riskyOutflows| / $1B × 100), reflecting the magnitude of the rotation

Yield Intelligence

v4.2Version history →

Version increments when APY source resolution, source arbitration, history semantics, PYS scoring logic, or eligibility rules for discovered yield sources change.

Pharos tracks yield-bearing stablecoins and computes a risk-adjusted ranking via the Pharos Yield Score (PYS). Data is refreshed every 30 minutes using a source-aware APY resolution strategy, with alternative sources retained when multiple valid yield paths exist and confidence-weighted arbitration selecting the primary row.

Update cadence

30m refresh

APY priority

Confidence-weighted across deterministic, curated, and fallback sources

Output

PYS (0-100)

Preconditions & Failure Modes

Minimum data

Need one resolved APY source; deterministic exchange-rate sources additionally need prior source-specific history

Required sources

Direct on-chain reads, curated DeFiLlama pools, rate-derived benchmark inputs, or 30d price history

Failure behavior

No resolved source skips coin update; PYS returns 0 when apy30d <= 0 (safety defaults to 40 if missing), while degraded benchmark or safety inputs are surfaced in provenance

Worked example (verified against computePYS)

Inputs: apy30d=8.4, safetyScore=72, apyVarianceScore=0.18, scalingFactor=5

riskPenalty=max(0.5,(101-72)/20)=1.45; yieldEfficiency=8.4/1.45=5.79; sustainability=1-0.18=0.82

PYS=min(100, round(5.79*0.82*5))=24

Result: PYS 24.

Technical details: APY source resolution, confidence arbitration, PYS formula, NAV handling, and limits

Tier 1

On-chain reads

Tier 2

DeFiLlama

Tier 3

Price-derived

APY

first successful tier

Yield Efficiency

APY ÷ risk penalty

Sustainability

penalises variance

PYS Score

0–100

APY Resolution and Source Arbitration

  • Tier 1 — Direct on-chain reads: reads protocol state directly, either as an exchange-rate delta (e.g. sUSDe) or a conservative reward-only estimator (e.g. LUSD B.Protocol Stability Pool, LQTY only)
  • Tier 2 — DeFiLlama pools: matches the coin to a DeFiLlama yield pool via static mapping or symbol-based fallback
  • Tier 3 — Price-derived: for NAV tokens only, derives APY from the 30-day price appreciation in supply_history
  • Tier 4 — Rate-derived: for dividend-distributing and Treasury-tracking tokens, derives APY from the cached 3-month Treasury benchmark net of known fee spreads

Deterministic and curated paths can all contribute rows, then a confidence-weighted arbitration layer chooses the best row. Divergent discovered or fallback sources can be demoted or rejected when a canonical source disagrees materially.

Trailing APY metrics are computed from source-specific history rather than a mixed coin-level series, so source switches no longer contaminate the displayed 7d/30d averages.

Pharos Yield Score (PYS)

riskPenalty = max(0.5, (101 − safetyScore) / 20)
yieldEfficiency = apy30d / riskPenalty
sustainability = max(0.3, 1.0 − apyVarianceScore)
PYS = min(100, yieldEfficiency × sustainability × scalingFactor)

  • Yield efficiency rewards higher APY relative to the coin's risk profile — safer coins get a lower penalty divisor
  • Sustainability multiplier penalizes volatile yields (high variance over 30 days), favouring consistent returns
  • Scaling factor is a global constant that normalises scores into the 0–100 range

NAV Token Handling

NAV-appreciating tokens (e.g. sDAI, wUSDM, BUIDL) are not covered by the report card framework's safety grading — they receive a default safety baseline of 40 (NR). Their PYS is therefore derived primarily from APY magnitude and variance rather than a full safety assessment. As the grading framework expands to cover NAV tokens, their PYS will become more nuanced.

Limitations

  • Trailing averages require sufficient history — newly tracked coins may show unstable scores until 30 days of data accumulate
  • DeFiLlama pool matching uses heuristics; pool mismatches are corrected via the static override map
  • The LUSD B.Protocol Stability Pool row is conservative by design: it includes projected LQTY incentives only and excludes ETH liquidation gains
  • Price-derived APY (Tier 3) can be noisy for low-liquidity NAV tokens

PegScore and Depeg Early Warning Score (DEWS)

v4.6Version history →

Version increments when depeg thresholds, confirmation policy, peg-score formula terms, or DEWS signal composition changes.

PegScore observes the past and present by scoring realized peg behavior, while DEWS is forward-looking and tries to anticipate future depeg risk before it fully manifests.

Depeg Tracker combines live event detection, secondary-source confirmation rules for large-cap assets, low-confidence primary prices, and extreme moves, plus a per-coin peg score that penalizes time off peg, event severity, active depegs, and unstable event spread.

DEX cross-validation uses explicit trust gates. Detection and pending confirmation only trust fresh DEX rows with at least $1M of aggregate source TVL, while the public DEX Price Check UI requires a lighter but still non-trivial floor of $250K.

DEWS (Depeg Early Warning System) computes forward-looking stress every 15 minutes from market, liquidity, confidence, flow, and yield signals, with optional PSI-based amplification during systemic stress.

PegScore focus

History: realized peg behavior

DEWS focus

Forward stress probability

Refresh

15m refresh

Preconditions & Failure Modes

Minimum data

PegScore requires >=30 tracking days; DEWS requires >=2 available signals (total weight >=0.30)

Required sources

Peg events + tracking window inputs; DEWS consumes supply/liquidity/price plus optional flow/blacklist/yield signals

Failure behavior

PegScore can be null; DEWS also returns null when signal coverage is below threshold

Worked examples (verified against computePegScore and computeDEWS)

PegScore input: 100-day tracking window, 1 event (2 days, 220 bps, inactive)

pegPct=98.0, severityScore=99.86, spread=0, activePenalty=0 → pegScore=99

DEWS input signals: supply=40, pool=55, liq=25, price=0, diverg=10 (others unavailable), psiScore=70

base=(0.25*40+0.2*55+0.15*25+0.15*0+0.15*10)/0.9=29.17; PSI amplifier=1.02 → DEWS=30

Result: PegScore 99 and DEWS 30 (WATCH).

Technical details: PegScore formula, DEWS signals, weights, and threat bands

PegScore

Composite 0–100 score measuring how faithfully a stablecoin holds its peg. The tracking window spans up to 4 years but is capped at the coin's actual age (earliest supply snapshot), so young coins are not diluted across history they didn't exist for. Requires at least 30 days of tracking data; returns null otherwise.

PegScore Formula

pegScore = 0.5 × pegPct + 0.5 × severityScore − activeDepegPenalty − spreadPenalty

Time-at-Peg

50%

Event Severity

50%

− Penalties

active depeg + spread

PegScore

0–100

PegScore Components

ComponentWeightRangeHow it works
Time-at-Peg (pegPct)50%0–100Percentage of time spent at peg. Overlapping depeg intervals are merged to avoid double-counting
Event Severity50%0–100Penalizes magnitude, duration, and recency of each depeg event. Per-event penalty: max(durationPenalty, magnitudeFloor), where durationPenalty = (peakBps / 100) × (durationDays / 30) × recencyWeight, magnitudeFloor = (peakBps / 2000) × recencyWeight. The floor ensures even brief depegs carry a minimum penalty proportional to their severity. Recency weight = 1 / (1 + yearsAgo) so recent events count more. Duration capped at 90 days
Active Depeg Penaltysubtracted5–50Applied only if an ongoing depeg exists (no end date). Scales with severity: clamp(absBps / 50, 5, 50)
Spread Penaltysubtracted0–15Standard deviation of peak deviations across events, scaled. Penalizes erratic, unpredictable depeg behaviour. Only applies when ≥2 events exist

DEWS

DEWS is a per-coin, forward-looking stress score (0–100) estimating depeg probability. It is computed every 15 minutes from 8 sub-signals. Only signals with available data participate; weights are redistributed proportionally across available signals.

Supply Velocity

0.25

Pool Balance Drift

0.20

Liquidity Erosion

0.15

Price Confidence

0.15

Cross-Source Div.

0.15

Blacklist Activity

0.10

Mint/Burn Flow

0.10

Yield Anomaly

0.05

DEWS

Σ(W⋅S) / Σ(W) — 0–100

CALM

0–15

WATCH

16–35

ALERT

36–55

WARN

56–75

DANGER

76–100

Score Formula

DEWS = round(clamp(0, 100, sum(W_i × S_i) / sum(W_i)))

At least 2 available signal sources (total weight ≥ 0.30) are required; otherwise DEWS returns null.

Sub-Signals & Weights

  • Supply Velocity (0.25) — rapid redemptions (bank run), measured from 1-day and 7-day supply contraction rates
  • Pool Balance Drift (0.20) — one-sided selling pressure in DEX pools, blending balance stress, pool stress, and worst-pool imbalance
  • Liquidity Erosion (0.15) — LPs fleeing, measured from 7-day changes in liquidity score and TVL
  • Price Confidence (0.15) — oracle/data source failures, mapping confidence levels to stress values
  • Cross-Source Divergence (0.15) — fragmented pricing between primary price, DEX price, and peg reference
  • Blacklist Activity (0.10) — issuer emergency freeze surges for USDC, USDT, PAXG, XAUT
  • Mint/Burn Flow (0.10) — redemption surge vs minting from on-chain Transfer event data
  • Yield Anomaly (0.05) — warning-signal accumulation from yield spikes, divergence, TVL outflows, negative trends, and reward-heavy regimes

Threat Bands

  • CALM (0–15) — no stress signals detected
  • WATCH (16–35) — mild stress on 1–2 indicators
  • ALERT (36–55) — multiple indicators elevated
  • WARNING (56–75) — strong stress signals, depeg plausible
  • DANGER (76–100) — all precursors firing

Edge Cases

  • NAV tokens are excluded entirely (price appreciates, not pegged)
  • Non-USD pegs: cross-source divergence is dampened by 0.7 (noisier FX pricing)
  • Small coins (<$50M): supply velocity is dampened via a logarithmic size factor
  • Missing DEX data: pool and liquidity signals marked unavailable, weight redistributed

Contagion Stress Test

The stress test simulates dependency failures to reveal systemic concentration risk across the stablecoin ecosystem.

Simulation action

Force one coin to grade D

Propagation channel

Dependency channel only

Primary output

Affected coins + supply at risk

Preconditions & Failure Modes

Minimum data

Target coin must have dependents and mapped dependency weights

Required sources

Current report-card scores plus dependency map inputs

Failure behavior

Only direct dependency-risk channel is recomputed (no peg/liquidity/confidence feedback loops)

Worked example (verified against scoreDependencyRisk path used by stress test)

Override upstream score to 40; dependent coin has 60% exposure and decentralized self-backed score 90

blended=0.6*40+0.4*90=60; weak-upstream penalty (score<75) applies -10

dependencyRisk score=50

Result: Dependency dimension falls to 50 before overall grade recomputation.

Technical details: simulation pipeline, scoreboard logic, and limitations

Select Target

pick a coin

Override to D

force downgrade

Recompute Dep. Risk

cascade upstream

Impact Report

coins & $ at risk

Systemic Risk Scoreboard

On page load, the scoreboard pre-computes the five most damaging single-coin failure scenarios. For each targetable coin (one that has dependents), it simulates a downgrade to D, counts the number of affected coins, and sums their market cap as “supply at risk.” Results are sorted by supply at risk descending.

Stress Test

The interactive stress test overrides a target coin's overall score, then recomputes the Dependency Risk dimension for every coin that lists that target as an upstream dependency. This models the direct dependency channel only.

In reality, a major stablecoin failure would also impact peg stability, liquidity, and market confidence simultaneously — the stress test captures only the mechanical dependency impact.

Limitations

  • Collateral weights are researched estimates that may not reflect real-time ratios
  • The stress test models only the dependency risk channel, not second-order market effects

Blacklist Tracker Methodology

v3.1Version history →

Version increments when tracked contracts, event parsing rules, cursor semantics, or amount-enrichment logic change.

The Blacklist Tracker monitors issuer intervention events across USDC, USDT, PAXG, and XAUT contracts, including blacklist, unblacklist, and destroy/wipe actions across EVM and Tron networks.

Methodology revisions document changes to event coverage, cross-chain decoding behavior, cursor safety policies, and amount attribution rules that affect historical interpretation and comparability over time.