Peg Canary System vs the Live Risk Score
Threat Bands

The 11 Pre-Depeg Signals
Each signal is normalized to 0–1 before weighting. Missing signals are skipped and all remaining weights are renormalized to sum to 1.0, so data gaps never inflate the score.Reading PCS in the API Response
Each token entry you get from/rwa/peg-canary carries the score plus two signal fields — and you should not read them on the same scale:
You get nine keys in
sub_signals, in three groups:
- Driver-backed, 0–1:
supply_velocity,mint_burn_flow,cross_source_divergence, andblacklist_activitycarry the same normalized value you find indrivers[]. - Raw pipeline inputs, per-key units:
pool_balance_driftis the pool share ratio,liquidity_erosionis the % change in liquidity vs the 7-day average (it can be negative),yield_anomalyis the current APY, andwhale_concentrationis the top-10 supply percentage. - Always
null:price_confidenceis a source-confidence label (high/medium/low/fallback) upstream, so the numeric payload carries it asnull— read its normalized 0–1 value fromdrivers[]instead.
null when its input was unavailable. mint_role_centralization and tvl_supply_divergence never appear in sub_signals — you can only read them through drivers[].
Case Study: USR March 2026
The
mint_role_centralization signal was added directly in response to the Resolv incident. An attacker who gained access to the single EOA holding MINTER_ROLE minted ~$80M USR from ~$200K of collateral in one transaction — the off-chain service was the only constraint, and there was no on-chain cap. PCS would have flagged this vault with a DANGER pre-stress score based on the mint_role_centralization signal alone, before any price impact.