Skip to main content
Pharos

Mint/Burn Flow Changelog: v4 archive

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

What this controls

Mint/Burn Flow 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.9Mar 24, 2026

Deterministic repair loops and adapter provenance disclosures

Mint/burn repair and coverage semantics were tightened through historical-first valuation repair, deterministic cleanup backlogs, aligned FTQ classification, and explicit adapter provenance on public coverage metadata.

Impact snapshot

  • Historical price repair now values events from event-day `supply_history` instead of current `price_cache` snapshots
  • NULL-price healing and atomic-roundtrip sweeping now use deterministic ordered backlog queries
  • The daily digest now shares the same report-card-cache FTQ classification semantics as `/api/mint-burn-flows`
  • Per-coin coverage now exposes `adapterKinds`, `startBlockSource`, and `startBlockConfidence` so blanket start-block defaults are visible in the API
v4.9Mar 24, 2026

Deterministic repair loops and adapter provenance disclosures

Mint/burn repair and coverage semantics were tightened through historical-first valuation repair, deterministic cleanup backlogs, aligned FTQ classification, and explicit adapter provenance on public coverage metadata.

  • Historical price repair now values events from event-day `supply_history` instead of current `price_cache` snapshots
  • NULL-price healing and atomic-roundtrip sweeping now use deterministic ordered backlog queries
  • The daily digest now shares the same report-card-cache FTQ classification semantics as `/api/mint-burn-flows`
  • Per-coin coverage now exposes `adapterKinds`, `startBlockSource`, and `startBlockConfidence` so blanket start-block defaults are visible in the API
Details

Impact notes

  • Historical price repair now values events from event-day `supply_history` instead of current `price_cache` snapshots
  • NULL-price healing and atomic-roundtrip sweeping now use deterministic ordered backlog queries
  • The daily digest now shares the same report-card-cache FTQ classification semantics as `/api/mint-burn-flows`
  • Per-coin coverage now exposes `adapterKinds`, `startBlockSource`, and `startBlockConfidence` so blanket start-block defaults are visible in the API
Commit provenance not recorded
    v4.8Mar 24, 2026

    Ethereum coverage wave for long-tail mint/burn tracking

    Mint/burn flow coverage expanded materially by restoring and adding long-tail Ethereum ERC-20 configs that can be tracked with the standard zero-address Transfer path.

    • Added 40 additional Ethereum transfer-based configs for previously uncovered tracked assets
    • Extended flow coverage now includes more long-tail fiat, non-USD, commodity, and yield-bearing assets where shared metadata already exposes an Ethereum contract
    • Coverage scope increased from 84 contract configs / 83 stablecoin IDs to 124 contract configs / 123 stablecoin IDs while preserving the existing critical-lane set
    Details

    Impact notes

    • Added 40 additional Ethereum transfer-based configs for previously uncovered tracked assets
    • Extended flow coverage now includes more long-tail fiat, non-USD, commodity, and yield-bearing assets where shared metadata already exposes an Ethereum contract
    • Coverage scope increased from 84 contract configs / 83 stablecoin IDs to 124 contract configs / 123 stablecoin IDs while preserving the existing critical-lane set
    Commit provenance not recorded
      v4.7Mar 10, 2026

      Closed-day baseline, fixed aggregate 24h semantics, and coverage disclosures

      Pressure Shift now compares live 24-hour flows against trailing fully closed daily baselines, aggregate API 24h fields are fixed regardless of chart window, and the product now exposes Ethereum-only scope plus coverage/freshness metadata.

      • Pressure Shift baseline now excludes the current UTC day and uses the last 30 fully closed daily buckets
      • Aggregate `/api/mint-burn-flows?hours=N` now keeps coin-level 24h fields fixed to the canonical 24h window while only the hourly series respects `hours`
      • Aggregate flow API now exposes `scope`, `sync`, `windowHours`, and per-coin `coverage` metadata
      • The `/flows` page now labels the feature as Ethereum-only and visually marks partial-history or lagging coverage states
      Details

      Impact notes

      • Pressure Shift baseline now excludes the current UTC day and uses the last 30 fully closed daily buckets
      • Aggregate `/api/mint-burn-flows?hours=N` now keeps coin-level 24h fields fixed to the canonical 24h window while only the hourly series respects `hours`
      • Aggregate flow API now exposes `scope`, `sync`, `windowHours`, and per-coin `coverage` metadata
      • The `/flows` page now labels the feature as Ethereum-only and visually marks partial-history or lagging coverage states
      • Flow freshness headers now follow successful sync timestamps instead of latest event timestamps, avoiding false staleness during quiet periods
      Commit provenance not recorded
        v4.6Mar 9, 2026

        Safe-frontier ingestion and counted event-history alignment

        Mint/burn ingestion now advances only to a shared safe coverage frontier under partial scans, and product event-history surfaces now default to counted economic-flow rows.

        • Partial event-definition coverage no longer advances sync state past uncovered log ranges
        • Missing block timestamps now cap advancement at the earliest unresolved block instead of silently skipping rows forever
        • The event API now exposes `flowType` and supports `scope=counted` for rows that participate in aggregates
        • Detail-page flow history now excludes bridge burns, review-required burns, and atomic roundtrips by default
        Details

        Impact notes

        • Partial event-definition coverage no longer advances sync state past uncovered log ranges
        • Missing block timestamps now cap advancement at the earliest unresolved block instead of silently skipping rows forever
        • The event API now exposes `flowType` and supports `scope=counted` for rows that participate in aggregates
        • Detail-page flow history now excludes bridge burns, review-required burns, and atomic roundtrips by default
        • Unpriced event rows now render native token amounts instead of false dollar values
        • `minAmount` filtering is now strictly USD-only when `amountUsd` is available
        Commit provenance not recorded
          v4.5Mar 9, 2026

          Data quality: noise filtering, auto-heal, and activity gating

          Improves flow data reliability by excluding flash-loan roundtrips from aggregation, auto-healing missing USD prices, and gating pressure shift for low-activity coins.

          • Transactions containing both mint and burn for the same token (flash loans, atomic arb) are now flagged as atomic_roundtrip and excluded from all flow aggregates
          • Events synced without USD price are now automatically backfilled within 48h by the sync cron
          • Coins with less than $50K absolute 24h flow now return NR instead of a potentially misleading pressure shift score
          • New observability counters in cron metadata: atomicRoundtripsDetected, nullPricesHealed
          Details

          Impact notes

          • Transactions containing both mint and burn for the same token (flash loans, atomic arb) are now flagged as atomic_roundtrip and excluded from all flow aggregates
          • Events synced without USD price are now automatically backfilled within 48h by the sync cron
          • Coins with less than $50K absolute 24h flow now return NR instead of a potentially misleading pressure shift score
          • New observability counters in cron metadata: atomicRoundtripsDetected, nullPricesHealed
          Commit provenance not recorded
            v4.4Mar 7, 2026Reconstructed

            Two-signal flow semantics and baseline-aware interpretation

            Per-coin flow UI now separates raw 24h net flow from baseline-relative pressure shift while preserving the underlying formula.

            • Per-coin flow UI now separates raw 24h net flow from baseline-relative pressure shift
            • API now exposes canonical `pressureShiftScore` and interpretation fields while retaining `flowIntensity` as a deprecated alias
            • Frontend printer and shredder visuals now key off actual net flow direction instead of score sign
            • Methodology and product copy now distinguish current direction from pressure-versus-baseline context
            Details

            Impact notes

            • Per-coin flow UI now separates raw 24h net flow from baseline-relative pressure shift
            • API now exposes canonical `pressureShiftScore` and interpretation fields while retaining `flowIntensity` as a deprecated alias
            • Frontend printer and shredder visuals now key off actual net flow direction instead of score sign
            • Methodology and product copy now distinguish current direction from pressure-versus-baseline context
            Reconstructed from git commit history.Commit provenance not recorded
              v4.3Mar 4, 2026Reconstructed

              NR gating for no-activity flow windows

              Coins with no mint/burn activity in the active 24h window now publish NR flow intensity and are excluded from gauge weighting.

              • Removed synthetic neutral intensity fallback for sparse no-activity windows
              • No-activity windows now return `flowIntensity = null` (NR) instead of `0`
              • Bank Run Gauge now excludes those NR windows from the market-cap-weighted composite
              • Frontend flow-intensity UI now displays NR explicitly for null values
              Details

              Impact notes

              • Removed synthetic neutral intensity fallback for sparse no-activity windows
              • No-activity windows now return `flowIntensity = null` (NR) instead of `0`
              • Bank Run Gauge now excludes those NR windows from the market-cap-weighted composite
              • Frontend flow-intensity UI now displays NR explicitly for null values
              Reconstructed from git commit history.Commit provenance not recorded
                v4.2Mar 4, 2026Reconstructed

                Signed zero-baseline flow-intensity semantics

                Flow Intensity Score and Bank Run Gauge moved from midpoint semantics to canonical signed outputs centered at zero baseline.

                • Flow Intensity Score now emits signed values via `clamp(-100, 100, z * 50)`
                • Gauge score now uses signed -100 to +100 output with neutral baseline at 0
                • Band thresholds were remapped around zero while retaining existing band labels
                • Frontend midpoint conversion shim was removed; UI now consumes canonical signed API values directly
                Details

                Impact notes

                • Flow Intensity Score now emits signed values via `clamp(-100, 100, z * 50)`
                • Gauge score now uses signed -100 to +100 output with neutral baseline at 0
                • Band thresholds were remapped around zero while retaining existing band labels
                • Frontend midpoint conversion shim was removed; UI now consumes canonical signed API values directly
                Reconstructed from git commit history.Commit provenance not recorded
                  v4.1Mar 4, 2026Reconstructed

                  Reliability remediation and controlled backfill recovery

                  Ingestion moved to a reliability-first runtime policy with degraded/error health signaling and operator-grade recovery controls.

                  • Added run-state rotation plus per-chain quotas so coverage remains balanced under budget pressure
                  • Added degraded/error escalation from sustained low coverage or repeated API failures
                  • Introduced authenticated chunked backfill endpoint (`/api/backfill-mint-burn`) reusing ingestion parsing and aggregation
                  Details

                  Impact notes

                  • Added run-state rotation plus per-chain quotas so coverage remains balanced under budget pressure
                  • Added degraded/error escalation from sustained low coverage or repeated API failures
                  • Introduced authenticated chunked backfill endpoint (`/api/backfill-mint-burn`) reusing ingestion parsing and aggregation
                  Reconstructed from git commit history.1 commit
                  • 20f56c3
                  v4.0Mar 4, 2026Reconstructed

                  reUSD deposit amount scale correction

                  Fixed a scale mismatch in reUSD mint decoding that overstated deposit-side mint volume.

                  • reUSD `Deposited` events now decode with 18 decimals instead of 6
                  • Removed artificial inflation in reUSD mint flow and related aggregates
                  • Added regression test validating a known on-chain `Deposited` payload decodes to 10 tokens
                  Details

                  Impact notes

                  • reUSD `Deposited` events now decode with 18 decimals instead of 6
                  • Removed artificial inflation in reUSD mint flow and related aggregates
                  • Added regression test validating a known on-chain `Deposited` payload decodes to 10 tokens
                  Reconstructed from git commit history.1 commit
                  • a49abfa