Skip to main content
PharosPHAROS

Mint/Burn Flow Changelog

Full version history of Mint/Burn Flow methodology decisions, from v1.0 to v4.7.

Latest Version

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.

Impact Snapshot

  • 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
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
1 commit
  • unreleased
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
1 commit
  • unreleased
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
1 commit
  • unreleased
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.1 commit
  • unreleased
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.1 commit
  • unreleased
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.1 commit
  • unreleased
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
v3.2Mar 3, 2026Reconstructed

Event-time USD valuation for flow amounts

Flow USD amounts moved from run-time spot pricing to event-time historical price attribution when available.

  • Event valuation now prefers daily historical prices from `supply_history` at event day
  • Price provenance persisted per event (`price_used`, `price_timestamp`, `price_source`)
  • Row-drop accounting added for malformed/dust logs to improve data quality observability
Details

Impact Notes

  • Event valuation now prefers daily historical prices from `supply_history` at event day
  • Price provenance persisted per event (`price_used`, `price_timestamp`, `price_source`)
  • Row-drop accounting added for malformed/dust logs to improve data quality observability
Reconstructed from git commit history.1 commit
  • 89ef4fa
v3.1Mar 3, 2026Reconstructed

Alchemy migration and chain-aware scan controls

Mint/burn ingestion migrated to Alchemy JSON-RPC with chain-specific scan behavior and stronger timestamp resolution guarantees.

  • Replaced Etherscan log ingestion with Alchemy `eth_getLogs`
  • Block timestamps now resolved in batch via `eth_getBlockByNumber`, with retry-on-missing semantics
  • Scan ranges and safety margins calibrated per chain (including Optimism support)
Details

Impact Notes

  • Replaced Etherscan log ingestion with Alchemy `eth_getLogs`
  • Block timestamps now resolved in batch via `eth_getBlockByNumber`, with retry-on-missing semantics
  • Scan ranges and safety margins calibrated per chain (including Optimism support)
Reconstructed from git commit history.3 commits
  • 32f1e37
  • 8193ab3
  • 3b66c98
v3.0Mar 2, 2026Reconstructed

reUSD multi-chain coverage and per-coin dedup correction

Coverage expanded to Re Protocol reUSD across four chains, then corrected aggregate dedup logic to avoid multi-contract over-weighting.

  • Added reUSD mint and redemption event tracking on Ethereum, Arbitrum, Base, and Avalanche
  • Added nth-data-slot amount decoding for non-standard event payload layouts
  • Aggregate flow loop now deduplicates by stablecoin ID to prevent duplicated rows and weighted overcounts
Details

Impact Notes

  • Added reUSD mint and redemption event tracking on Ethereum, Arbitrum, Base, and Avalanche
  • Added nth-data-slot amount decoding for non-standard event payload layouts
  • Aggregate flow loop now deduplicates by stablecoin ID to prevent duplicated rows and weighted overcounts
Reconstructed from git commit history.2 commits
  • 34893a5
  • aa2bcb8
v2.1Mar 1, 2026Reconstructed

Grade-aware flight-to-quality classification

Flight-to-quality shifted from static safe-haven lists to report-card score buckets, with fallback only when grade data is stale or missing.

  • Safe/risky FTQ buckets now derive from report-card scores (safe >= 65, risky < 50, neutral ignored)
  • Static safe-haven sets are now fallback-only for unavailable or stale report-card cache
  • Largest-event attribution aligned to requested window semantics in aggregate mode
Details

Impact Notes

  • Safe/risky FTQ buckets now derive from report-card scores (safe >= 65, risky < 50, neutral ignored)
  • Static safe-haven sets are now fallback-only for unavailable or stale report-card cache
  • Largest-event attribution aligned to requested window semantics in aggregate mode
Reconstructed from git commit history.2 commits
  • dcdefde
  • c1c1839
v2.0Mar 1, 2026Reconstructed

USDT treasury-event capture and partial-data gauge support

Coverage and scoring robustness were upgraded to capture USDT treasury mint/burn events and keep the gauge active during early-history ramp.

  • Added `startBlock` per config for near-history initialization instead of scanning from genesis
  • USDT now tracks `Issue` and `Redeem` events that do not emit standard `Transfer` mints/burns
  • Gauge now computes from available non-null FIS inputs instead of returning null when any coin lacks sufficient history
Details

Impact Notes

  • Added `startBlock` per config for near-history initialization instead of scanning from genesis
  • USDT now tracks `Issue` and `Redeem` events that do not emit standard `Transfer` mints/burns
  • Gauge now computes from available non-null FIS inputs instead of returning null when any coin lacks sufficient history
Reconstructed from git commit history.2 commits
  • 2144236
  • 1eddad0
v1.0Mar 1, 2026Reconstructed

Initial Mint/Burn Flow release

Launched baseline mint/burn flow tracking, scoring primitives, and public API surfaces for aggregate and per-coin analysis.

  • Introduced phase-1 contract coverage for 10 tracked stablecoins
  • Shipped FIS formula, seven-band Bank Run Gauge mapping, and flight-to-quality detection thresholds
  • Deployed incremental sync cron with `/api/mint-burn-flows` and `/api/mint-burn-events`
Details

Impact Notes

  • Introduced phase-1 contract coverage for 10 tracked stablecoins
  • Shipped FIS formula, seven-band Bank Run Gauge mapping, and flight-to-quality detection thresholds
  • Deployed incremental sync cron with `/api/mint-burn-flows` and `/api/mint-burn-events`
Reconstructed from git commit history.4 commits
  • 06ad0d9
  • e36a0c1
  • 2473c86
  • fea681c