Skip to main content
Pharos

Pricing Pipeline Changelog: v4 archive

Historical release evidence. Return to current versions and the complete history index.

What this controls

Pricing Pipeline Changelog: v4 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.

Latest version

v4.38Apr 15, 2026

Corroborated severe-depeg pool challenge protection

Pool challenge and temporal-jump validation can still downgrade or scrutinize a selected severe-depeg primary price, but they no longer replace or reject that price when multiple live candidate sources corroborate severe downside and at least one is depeg-authoritative.

Impact snapshot

  • Near-peg or stale DEX liquidity can no longer overwrite a severe depeg already corroborated by independent live candidates such as CoinGecko, DefiLlama-list, and Pyth
  • The same severe-downside candidate evidence satisfies the temporal-jump guard when the previous trusted price was near peg
  • The pool challenge remains active for weak or uncorroborated soft-source prices, and still replaces prices when independent DEX protocol medians are the only corroborating disagreement
  • USR now preserves the market price near the live CoinGecko/DefiLlama/Pyth severe-depeg level while marking the result low-confidence when DEX pools disagree
v4.38Apr 15, 2026

Corroborated severe-depeg pool challenge protection

Pool challenge and temporal-jump validation can still downgrade or scrutinize a selected severe-depeg primary price, but they no longer replace or reject that price when multiple live candidate sources corroborate severe downside and at least one is depeg-authoritative.

  • Near-peg or stale DEX liquidity can no longer overwrite a severe depeg already corroborated by independent live candidates such as CoinGecko, DefiLlama-list, and Pyth
  • The same severe-downside candidate evidence satisfies the temporal-jump guard when the previous trusted price was near peg
  • The pool challenge remains active for weak or uncorroborated soft-source prices, and still replaces prices when independent DEX protocol medians are the only corroborating disagreement
  • USR now preserves the market price near the live CoinGecko/DefiLlama/Pyth severe-depeg level while marking the result low-confidence when DEX pools disagree
Details

Impact notes

  • Near-peg or stale DEX liquidity can no longer overwrite a severe depeg already corroborated by independent live candidates such as CoinGecko, DefiLlama-list, and Pyth
  • The same severe-downside candidate evidence satisfies the temporal-jump guard when the previous trusted price was near peg
  • The pool challenge remains active for weak or uncorroborated soft-source prices, and still replaces prices when independent DEX protocol medians are the only corroborating disagreement
  • USR now preserves the market price near the live CoinGecko/DefiLlama/Pyth severe-depeg level while marking the result low-confidence when DEX pools disagree
Commit provenance not recorded
    v4.37Apr 15, 2026

    Severe-depeg corroboration continuity through validation

    Primary severe-downside corroboration evidence is now preserved through the later prevalidation and post-enrichment validation passes when the selected primary price remains unchanged.

    • Low-confidence severe depeg prices can stay published when multiple live candidate sources independently confirm the downside even if they do not form a tight high-confidence cluster
    • The severe-downside guardrail is unchanged for genuinely single-source prices because candidate evidence is reused only when the current asset price, source, and confidence still match the primary result
    • Assets such as USR no longer flap to `N/A` after primary pricing accepted a corroborated severe depeg and a later generic validation pass lost the candidate-price evidence
    Details

    Impact notes

    • Low-confidence severe depeg prices can stay published when multiple live candidate sources independently confirm the downside even if they do not form a tight high-confidence cluster
    • The severe-downside guardrail is unchanged for genuinely single-source prices because candidate evidence is reused only when the current asset price, source, and confidence still match the primary result
    • Assets such as USR no longer flap to `N/A` after primary pricing accepted a corroborated severe depeg and a later generic validation pass lost the candidate-price evidence
    Commit provenance not recorded
      v4.36Apr 15, 2026

      Blocked Binance host accounting

      Binance all-host 403/451 blocks from Worker egress are now treated as no-contribution provider blocks rather than source outages, while diagnostics keep the blocked endpoints visible.

      • When every attempted Binance host returns 403 or 451, the run records diagnostics but closes the source-wide breaker instead of escalating a persistent false outage
      • Binance contributes zero prices in that state, so consensus continues through Kraken, Bitstamp, Coinbase, Pyth, RedStone, Curve, DEX, CoinGecko, and DefiLlama inputs
      • Transport errors, server errors, malformed responses, or successful responses with zero tracked matches still follow the normal failure diagnostics path
      Details

      Impact notes

      • When every attempted Binance host returns 403 or 451, the run records diagnostics but closes the source-wide breaker instead of escalating a persistent false outage
      • Binance contributes zero prices in that state, so consensus continues through Kraken, Bitstamp, Coinbase, Pyth, RedStone, Curve, DEX, CoinGecko, and DefiLlama inputs
      • Transport errors, server errors, malformed responses, or successful responses with zero tracked matches still follow the normal failure diagnostics path
      Commit provenance not recorded
        v4.35Apr 15, 2026

        No-candidate Jupiter breaker recovery

        Jupiter no-candidate runs now close stale-open breaker state without making an external health probe, reflecting that no eligible Solana fallback work remains after authoritative gating.

        • If authoritative pricing removes all Jupiter fallback candidates, the stale `jupiter-prices` breaker can recover without spending a provider request
        • The change prevents irrelevant provider-edge blocks from keeping the public circuit list open when Jupiter is not part of the current pricing path
        • Future eligible Jupiter fallback candidates still go through the normal circuit breaker and provider diagnostics path
        Details

        Impact notes

        • If authoritative pricing removes all Jupiter fallback candidates, the stale `jupiter-prices` breaker can recover without spending a provider request
        • The change prevents irrelevant provider-edge blocks from keeping the public circuit list open when Jupiter is not part of the current pricing path
        • Future eligible Jupiter fallback candidates still go through the normal circuit breaker and provider diagnostics path
        Commit provenance not recorded
          v4.34Apr 15, 2026

          Binance host failover for Worker egress

          Added a Binance ticker host failover after production Worker diagnostics showed the market-data mirror returning HTTP 403 while local audits still saw healthy Binance USD pairs.

          • Binance pricing now tries `data-api.binance.vision` first and falls back to `api.binance.com` before recording the source as failed
          • Provider diagnostics preserve each attempted Binance endpoint so operators can see which host succeeded or failed
          • The change keeps the same tracked `USDTUSD` and `USDCUSD` market mappings and does not alter consensus weighting
          Details

          Impact notes

          • Binance pricing now tries `data-api.binance.vision` first and falls back to `api.binance.com` before recording the source as failed
          • Provider diagnostics preserve each attempted Binance endpoint so operators can see which host succeeded or failed
          • The change keeps the same tracked `USDTUSD` and `USDCUSD` market mappings and does not alter consensus weighting
          Commit provenance not recorded
            v4.33Apr 15, 2026

            Jupiter official gateway fallback

            Moved Jupiter fallback probes from the Lite gateway to the official Price API V3 gateway after Worker egress repeatedly received Cloudflare 403 block pages from the Lite host.

            • Jupiter fallback and health probes now use `https://api.jup.ag/price/v3` instead of the Lite gateway
            • The source-level circuit can recover through the same official V3 response shape already used by the fallback parser
            • The fallback remains best-effort, liquidity-gated, and downstream of authoritative protocol-backed prices
            Details

            Impact notes

            • Jupiter fallback and health probes now use `https://api.jup.ag/price/v3` instead of the Lite gateway
            • The source-level circuit can recover through the same official V3 response shape already used by the fallback parser
            • The fallback remains best-effort, liquidity-gated, and downstream of authoritative protocol-backed prices
            Commit provenance not recorded
              v4.32Apr 14, 2026

              Provider diagnostics and authoritative fallback gating

              Pricing provider attempts now emit durable diagnostics, and authoritative live overrides are applied before fallback enrichment so known redeemable wrappers do not poison fallback-source circuit breakers.

              • `sync-stablecoins` cron metadata now records Binance and Jupiter attempt status, endpoint, candidate counts, response counts, matched counts, and sanitized snippets for non-OK responses
              • Protocol-backed live overrides are pre-applied before fallback enrichment and re-applied after GeckoTerminal probing, preserving final authoritative price semantics while keeping inherited-price assets out of unnecessary fallback probes
              • The Jupiter breaker can run a bounded health probe when no fallback candidates remain, allowing a previously open breaker to recover once the provider is reachable instead of staying stale-open indefinitely
              Details

              Impact notes

              • `sync-stablecoins` cron metadata now records Binance and Jupiter attempt status, endpoint, candidate counts, response counts, matched counts, and sanitized snippets for non-OK responses
              • Protocol-backed live overrides are pre-applied before fallback enrichment and re-applied after GeckoTerminal probing, preserving final authoritative price semantics while keeping inherited-price assets out of unnecessary fallback probes
              • The Jupiter breaker can run a bounded health probe when no fallback candidates remain, allowing a previously open breaker to recover once the provider is reachable instead of staying stale-open indefinitely
              Commit provenance not recorded
                v4.31Apr 13, 2026

                Curated-contract price fallback and USDnr M0 inheritance

                DefiLlama contract-price fallback now starts from curated tracked deployments when an upstream stablecoin row is addressless, and USDnr joins the M0 tracked-parent price inheritance path.

                • Addressless DefiLlama stablecoin rows can now recover prices through exact curated `contracts` metadata instead of requiring the upstream row to carry its own `address` field
                • `ctusd-citrea` can publish the fresh DefiLlama `citrea:<contract>` quote surfaced by the coins API without relying on symbol search or stale CoinGecko rows
                • `usdnr-nerona` now inherits tracked `wm-m0` live pricing and historical replay through the existing authoritative `protocol-redeem` lane used by other M0 extension assets
                Details

                Impact notes

                • Addressless DefiLlama stablecoin rows can now recover prices through exact curated `contracts` metadata instead of requiring the upstream row to carry its own `address` field
                • `ctusd-citrea` can publish the fresh DefiLlama `citrea:<contract>` quote surfaced by the coins API without relying on symbol search or stale CoinGecko rows
                • `usdnr-nerona` now inherits tracked `wm-m0` live pricing and historical replay through the existing authoritative `protocol-redeem` lane used by other M0 extension assets
                Commit provenance not recorded
                  v4.3Apr 11, 2026

                  CoinGecko simple-price upstream freshness gate

                  CoinGecko simple-price inputs now use the provider's upstream observation timestamp when available and drop stale rows instead of stamping them as fresh local fetches.

                  • Primary pricing requests `last_updated_at` from CoinGecko `/simple/price` and records it as upstream freshness when present
                  • CoinGecko simple-price rows older than the source trust window are excluded from primary consensus rather than being treated as current
                  • Downstream consumers such as PegScore and DEWS now see missing, lower-confidence, or non-CoinGecko corroborated inputs instead of replaying stale CoinGecko marks as fresh
                  Details

                  Impact notes

                  • Primary pricing requests `last_updated_at` from CoinGecko `/simple/price` and records it as upstream freshness when present
                  • CoinGecko simple-price rows older than the source trust window are excluded from primary consensus rather than being treated as current
                  • Downstream consumers such as PegScore and DEWS now see missing, lower-confidence, or non-CoinGecko corroborated inputs instead of replaying stale CoinGecko marks as fresh
                  Commit provenance not recorded
                    v4.2Apr 10, 2026

                    Inherited wM pricing for M0 extension assets

                    Added authoritative tracked-base inheritance for M0 extension assets whose exact child-token market coverage is absent or too thin, so price publication follows the executable parent rail instead of staying missing or trusting weak child-market prints.

                    • Live pricing now publishes `usdk-kast` and `xo-exodus` from the authoritative `protocol-redeem` lane by inheriting tracked `wm-m0` pricing when that parent rail is available
                    • Historical depeg backfills for those assets now replay the tracked `wm-m0` market series instead of relying on missing or thin child-market history
                    • This extends the same tracked-base inheritance pattern already used for `usdai-usd-ai -> pyusd-paypal`, keeping wrapper-style M0 extension assets aligned with their executable parent value
                    Details

                    Impact notes

                    • Live pricing now publishes `usdk-kast` and `xo-exodus` from the authoritative `protocol-redeem` lane by inheriting tracked `wm-m0` pricing when that parent rail is available
                    • Historical depeg backfills for those assets now replay the tracked `wm-m0` market series instead of relying on missing or thin child-market history
                    • This extends the same tracked-base inheritance pattern already used for `usdai-usd-ai -> pyusd-paypal`, keeping wrapper-style M0 extension assets aligned with their executable parent value
                    Commit provenance not recorded
                      v4.1Apr 8, 2026

                      Split DexScreener exact-vs-search breaker accounting

                      The DexScreener fallback now records exact token-address lookups and last-resort symbol search under separate circuit breakers, so a flaky search endpoint cannot suppress otherwise healthy exact-address recovery.

                      • `dexscreener-prices` now reflects only `/tokens/v1/{chainId}/{address}` availability in the late-stage stablecoin pricing fallback
                      • The symbol-search recovery path now records independently under `dexscreener-search`, which keeps search-specific failures visible without poisoning exact-address availability
                      • Public-health grouping excludes the search-only breaker so a best-effort addressless fallback issue does not count as a separate top-level availability circuit group
                      Details

                      Impact notes

                      • `dexscreener-prices` now reflects only `/tokens/v1/{chainId}/{address}` availability in the late-stage stablecoin pricing fallback
                      • The symbol-search recovery path now records independently under `dexscreener-search`, which keeps search-specific failures visible without poisoning exact-address availability
                      • Public-health grouping excludes the search-only breaker so a best-effort addressless fallback issue does not count as a separate top-level availability circuit group
                      Commit provenance not recorded
                        v4.0Apr 8, 2026

                        DexScreener request-budget walk-through for skipped fallback candidates

                        The DexScreener fallback budget now applies to actual outgoing requests instead of the first ten missing assets, so high-rank addressless rows that are skipped for identity reasons cannot crowd out later valid fallback candidates.

                        • Pass 4 still prioritizes exact-target assets first and then larger circulating names, but it now walks the full sorted missing set until it spends the 10-request DexScreener budget
                        • Addressless non-unique symbols that are skipped without making a request no longer consume one of the candidate slots that can reach lower-rank unique-symbol recoveries such as CHFAU or ctUSD
                        • This reduces false `dexscreener-prices` breaker opens during bad network windows because the pass has more chances to record at least one healthy DexScreener response before giving up
                        Details

                        Impact notes

                        • Pass 4 still prioritizes exact-target assets first and then larger circulating names, but it now walks the full sorted missing set until it spends the 10-request DexScreener budget
                        • Addressless non-unique symbols that are skipped without making a request no longer consume one of the candidate slots that can reach lower-rank unique-symbol recoveries such as CHFAU or ctUSD
                        • This reduces false `dexscreener-prices` breaker opens during bad network windows because the pass has more chances to record at least one healthy DexScreener response before giving up
                        Commit provenance not recorded