Liquidity Score Changelog: v4 archive
Historical release evidence. Return to current versions and the complete history index.
What this controls
Liquidity Score 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.
Primary references
Latest version
Blocked dead Bunni DEX inputs
Explicitly blocked Bunni from liquidity scoring and DEX implied-price publication after dead-venue rows kept surfacing as retained liquidity.
Impact snapshot
- Bunni is now excluded during crawl intake and DeFiLlama pool processing instead of being treated as a live DEX venue
- Retained-pool filters and challenger snapshots ignore Bunni even if stale rows or unexpected inputs survive earlier gates
- Liquidity scores, dexPriceUsd, and downstream DEX cross-checks no longer count Bunni TVL, pool counts, or protocol medians
v4.9Apr 3, 2026Blocked dead Bunni DEX inputs
Explicitly blocked Bunni from liquidity scoring and DEX implied-price publication after dead-venue rows kept surfacing as retained liquidity.
- Bunni is now excluded during crawl intake and DeFiLlama pool processing instead of being treated as a live DEX venue
- Retained-pool filters and challenger snapshots ignore Bunni even if stale rows or unexpected inputs survive earlier gates
- Liquidity scores, dexPriceUsd, and downstream DEX cross-checks no longer count Bunni TVL, pool counts, or protocol medians
DetailsHide details
Blocked dead Bunni DEX inputs
Explicitly blocked Bunni from liquidity scoring and DEX implied-price publication after dead-venue rows kept surfacing as retained liquidity.
- Bunni is now excluded during crawl intake and DeFiLlama pool processing instead of being treated as a live DEX venue
- Retained-pool filters and challenger snapshots ignore Bunni even if stale rows or unexpected inputs survive earlier gates
- Liquidity scores, dexPriceUsd, and downstream DEX cross-checks no longer count Bunni TVL, pool counts, or protocol medians
Impact notes
- Bunni is now excluded during crawl intake and DeFiLlama pool processing instead of being treated as a live DEX venue
- Retained-pool filters and challenger snapshots ignore Bunni even if stale rows or unexpected inputs survive earlier gates
- Liquidity scores, dexPriceUsd, and downstream DEX cross-checks no longer count Bunni TVL, pool counts, or protocol medians
v4.8Apr 3, 2026Direct-source duplicate hardening for Balancer and staged exact ids
Direct-source dedupe now reserves every authoritative exact pool id for later staged matching, and Balancer stablecoin pools can still collapse against direct Balancer coverage when DefiLlama omits the subtype in `balancer-v3` metadata.
- Sub-threshold direct API pools now still block later exact-address staged duplicates from re-entering scoring with incompatible TVL semantics
- GeckoTerminal and CoinGecko discovery rows can no longer inflate liquidity by resurrecting the same exact direct pool after the direct row was excluded from scoring
- Balancer stablecoin pools now dedupe correctly against Balancer direct API even when DefiLlama labels the row as generic `balancer-v3` without stable subtype metadata
DetailsHide details
Direct-source duplicate hardening for Balancer and staged exact ids
Direct-source dedupe now reserves every authoritative exact pool id for later staged matching, and Balancer stablecoin pools can still collapse against direct Balancer coverage when DefiLlama omits the subtype in `balancer-v3` metadata.
- Sub-threshold direct API pools now still block later exact-address staged duplicates from re-entering scoring with incompatible TVL semantics
- GeckoTerminal and CoinGecko discovery rows can no longer inflate liquidity by resurrecting the same exact direct pool after the direct row was excluded from scoring
- Balancer stablecoin pools now dedupe correctly against Balancer direct API even when DefiLlama labels the row as generic `balancer-v3` without stable subtype metadata
Impact notes
- Sub-threshold direct API pools now still block later exact-address staged duplicates from re-entering scoring with incompatible TVL semantics
- GeckoTerminal and CoinGecko discovery rows can no longer inflate liquidity by resurrecting the same exact direct pool after the direct row was excluded from scoring
- Balancer stablecoin pools now dedupe correctly against Balancer direct API even when DefiLlama labels the row as generic `balancer-v3` without stable subtype metadata
v4.7Apr 3, 2026Retained-pool DEX price publication
DEX implied-price publication now derives from the final retained pool surface after dedupe, caps, and scoring filters, instead of from the earlier raw observation stream.
- Pools that are skipped as duplicates or dropped by retained-pool quality filters can no longer keep influencing dex_prices
- dexPriceUsd, price_sources_json, and downstream dexPriceCheck consumers now reflect the same retained pool surface used for challenger publication and UI liquidity detail
- High-TVL discovery rows that never survive retained-pool admission can no longer manufacture near-peg DEX aggregates for depegged assets
DetailsHide details
Retained-pool DEX price publication
DEX implied-price publication now derives from the final retained pool surface after dedupe, caps, and scoring filters, instead of from the earlier raw observation stream.
- Pools that are skipped as duplicates or dropped by retained-pool quality filters can no longer keep influencing dex_prices
- dexPriceUsd, price_sources_json, and downstream dexPriceCheck consumers now reflect the same retained pool surface used for challenger publication and UI liquidity detail
- High-TVL discovery rows that never survive retained-pool admission can no longer manufacture near-peg DEX aggregates for depegged assets
Impact notes
- Pools that are skipped as duplicates or dropped by retained-pool quality filters can no longer keep influencing dex_prices
- dexPriceUsd, price_sources_json, and downstream dexPriceCheck consumers now reflect the same retained pool surface used for challenger publication and UI liquidity detail
- High-TVL discovery rows that never survive retained-pool admission can no longer manufacture near-peg DEX aggregates for depegged assets
v4.6Mar 24, 2026Protocol-native DEX coverage expansion
Liquidity scoring now ingests Meteora DLMM, PancakeSwap V3, and Aerodrome/Velodrome Slipstream pool-state data as protocol-native direct sources, expanding primary-grade coverage across Solana, BSC, Base, and Optimism.
- Meteora DLMM pools now enter the direct-API merge path with measured TVL, volume, balances, and fee data
- PancakeSwap V3 pools now add protocol-native primary coverage across BSC and supported EVM chains through official Graph subgraphs
- Aerodrome Slipstream and Velodrome Slipstream pools now contribute pool-state TVL, balances, fees, and DEX-price observations via the on-chain Sugar view contracts
- Direct-source precedence over overlapping DeFiLlama rows now requires measured non-zero 24h volume, so Slipstream pool-state rows expand coverage without displacing stronger DL rows when volume telemetry is absent
DetailsHide details
Protocol-native DEX coverage expansion
Liquidity scoring now ingests Meteora DLMM, PancakeSwap V3, and Aerodrome/Velodrome Slipstream pool-state data as protocol-native direct sources, expanding primary-grade coverage across Solana, BSC, Base, and Optimism.
- Meteora DLMM pools now enter the direct-API merge path with measured TVL, volume, balances, and fee data
- PancakeSwap V3 pools now add protocol-native primary coverage across BSC and supported EVM chains through official Graph subgraphs
- Aerodrome Slipstream and Velodrome Slipstream pools now contribute pool-state TVL, balances, fees, and DEX-price observations via the on-chain Sugar view contracts
- Direct-source precedence over overlapping DeFiLlama rows now requires measured non-zero 24h volume, so Slipstream pool-state rows expand coverage without displacing stronger DL rows when volume telemetry is absent
Impact notes
- Meteora DLMM pools now enter the direct-API merge path with measured TVL, volume, balances, and fee data
- PancakeSwap V3 pools now add protocol-native primary coverage across BSC and supported EVM chains through official Graph subgraphs
- Aerodrome Slipstream and Velodrome Slipstream pools now contribute pool-state TVL, balances, fees, and DEX-price observations via the on-chain Sugar view contracts
- Direct-source precedence over overlapping DeFiLlama rows now requires measured non-zero 24h volume, so Slipstream pool-state rows expand coverage without displacing stronger DL rows when volume telemetry is absent
- New concentrated-liquidity quality buckets now score PancakeSwap and Slipstream fee tiers consistently with existing Uni V3 logic
v4.5Mar 24, 2026Coverage recall hardening and measurement-aware confidence
DEX liquidity now paginates deeper through GeckoTerminal and CoinGecko Onchain discovery, enriches weak partial coverage instead of only zero-coverage rows, and scores coverage confidence from measured-vs-synthetic retained TVL rather than a fixed source-family ladder.
- GeckoTerminal and CoinGecko Onchain token crawls now read multiple bounded pages instead of stopping after page 1
- DexScreener and CoinGecko tickers fallback now trigger for weak partial coverage, not only coins with zero pools or no DEX price
- Fallback orderbook rows now preserve explicit synthetic/decayed/provenance flags instead of masquerading as organic USDC pools
- Coverage confidence now incorporates protocol breadth, source-family breadth, measured balance share, measured price share, and synthetic or decayed TVL share
DetailsHide details
Coverage recall hardening and measurement-aware confidence
DEX liquidity now paginates deeper through GeckoTerminal and CoinGecko Onchain discovery, enriches weak partial coverage instead of only zero-coverage rows, and scores coverage confidence from measured-vs-synthetic retained TVL rather than a fixed source-family ladder.
- GeckoTerminal and CoinGecko Onchain token crawls now read multiple bounded pages instead of stopping after page 1
- DexScreener and CoinGecko tickers fallback now trigger for weak partial coverage, not only coins with zero pools or no DEX price
- Fallback orderbook rows now preserve explicit synthetic/decayed/provenance flags instead of masquerading as organic USDC pools
- Coverage confidence now incorporates protocol breadth, source-family breadth, measured balance share, measured price share, and synthetic or decayed TVL share
Impact notes
- GeckoTerminal and CoinGecko Onchain token crawls now read multiple bounded pages instead of stopping after page 1
- DexScreener and CoinGecko tickers fallback now trigger for weak partial coverage, not only coins with zero pools or no DEX price
- Fallback orderbook rows now preserve explicit synthetic/decayed/provenance flags instead of masquerading as organic USDC pools
- Coverage confidence now incorporates protocol breadth, source-family breadth, measured balance share, measured price share, and synthetic or decayed TVL share
- Direct-API pools default to a shorter maturity assumption and Fluid reserve normalization now marks whether balances were safely measured
- Shared secondary-pool contribution logic centralizes GT/CG/staged/fallback aggregate handling to reduce drift across merge paths
v4.4Mar 19, 2026Chain-aware pool identity dedupe and challenger snapshot publishing
DEX liquidity now resolves tracked tokens chain-aware, deduplicates pools with conservative identity keys instead of coarse fingerprints, collapses duplicate DEX price observations before aggregation, and publishes dedicated challenger snapshots from the full retained pool set.
- Direct API and staged/fallback pools resolve tracked assets by chain+address first, with chain-scoped symbol fallback only when unique
- Cross-source pool dedupe now uses exact pool ids first and derived token-shape matches only when they are unique on both sides
- Repeated sightings of the same physical pool across direct API, staged, and fallback sources now collapse before dex_prices weighting
- Depeg challenger inputs publish from the full retained pool set instead of the visible top-pools subset
DetailsHide details
Chain-aware pool identity dedupe and challenger snapshot publishing
DEX liquidity now resolves tracked tokens chain-aware, deduplicates pools with conservative identity keys instead of coarse fingerprints, collapses duplicate DEX price observations before aggregation, and publishes dedicated challenger snapshots from the full retained pool set.
- Direct API and staged/fallback pools resolve tracked assets by chain+address first, with chain-scoped symbol fallback only when unique
- Cross-source pool dedupe now uses exact pool ids first and derived token-shape matches only when they are unique on both sides
- Repeated sightings of the same physical pool across direct API, staged, and fallback sources now collapse before dex_prices weighting
- Depeg challenger inputs publish from the full retained pool set instead of the visible top-pools subset
Impact notes
- Direct API and staged/fallback pools resolve tracked assets by chain+address first, with chain-scoped symbol fallback only when unique
- Cross-source pool dedupe now uses exact pool ids first and derived token-shape matches only when they are unique on both sides
- Repeated sightings of the same physical pool across direct API, staged, and fallback sources now collapse before dex_prices weighting
- Depeg challenger inputs publish from the full retained pool set instead of the visible top-pools subset
- Fluid pools with missing token decimals now fall back to neutral balance rather than using unsafe raw reserve units
v4.3Mar 18, 2026Fluid DexReservesResolver balance integration
Fluid pools on Ethereum, Arbitrum, Base, and Polygon now read balances and fee detail from the official DexReservesResolver instead of staying on neutral placeholders.
- Fluid top-pool rows now populate Balance and Detail when the official DexReservesResolver is deployed on that chain
- Fluid pool quality now uses measured balance health on resolver-backed EVM chains, rather than a hardcoded neutral 1.0
- Fluid fee detail now comes from the on-chain pool config (`1% = 10_000`), normalized to basis-point badges in the UI
- BSC and Plasma Fluid pools remain on neutral-balance fallback until Fluid ships the same resolver path there
DetailsHide details
Fluid DexReservesResolver balance integration
Fluid pools on Ethereum, Arbitrum, Base, and Polygon now read balances and fee detail from the official DexReservesResolver instead of staying on neutral placeholders.
- Fluid top-pool rows now populate Balance and Detail when the official DexReservesResolver is deployed on that chain
- Fluid pool quality now uses measured balance health on resolver-backed EVM chains, rather than a hardcoded neutral 1.0
- Fluid fee detail now comes from the on-chain pool config (`1% = 10_000`), normalized to basis-point badges in the UI
- BSC and Plasma Fluid pools remain on neutral-balance fallback until Fluid ships the same resolver path there
Impact notes
- Fluid top-pool rows now populate Balance and Detail when the official DexReservesResolver is deployed on that chain
- Fluid pool quality now uses measured balance health on resolver-backed EVM chains, rather than a hardcoded neutral 1.0
- Fluid fee detail now comes from the on-chain pool config (`1% = 10_000`), normalized to basis-point badges in the UI
- BSC and Plasma Fluid pools remain on neutral-balance fallback until Fluid ships the same resolver path there
v4.2Mar 18, 2026Measured direct-API balance health and normalized pool-detail metadata
Balancer, Raydium, and Orca direct-API pools now preserve measured balance and fee metadata through scoring instead of merging with neutral placeholders. Pool-detail fee tiers are normalized to basis points for all sources.
- Direct-API Balancer, Raydium, and Orca pools now populate top-pool balance bars and detail badges
- Measured direct-API balance ratios now feed balance-weighted aggregates, stress, and effective TVL instead of assuming 1.0
- Balancer weighted pools normalize balance health against target token weights rather than raw reserve symmetry
- Orca vault balances are normalized from raw token units before balance-health calculation
DetailsHide details
Measured direct-API balance health and normalized pool-detail metadata
Balancer, Raydium, and Orca direct-API pools now preserve measured balance and fee metadata through scoring instead of merging with neutral placeholders. Pool-detail fee tiers are normalized to basis points for all sources.
- Direct-API Balancer, Raydium, and Orca pools now populate top-pool balance bars and detail badges
- Measured direct-API balance ratios now feed balance-weighted aggregates, stress, and effective TVL instead of assuming 1.0
- Balancer weighted pools normalize balance health against target token weights rather than raw reserve symmetry
- Orca vault balances are normalized from raw token units before balance-health calculation
Impact notes
- Direct-API Balancer, Raydium, and Orca pools now populate top-pool balance bars and detail badges
- Measured direct-API balance ratios now feed balance-weighted aggregates, stress, and effective TVL instead of assuming 1.0
- Balancer weighted pools normalize balance health against target token weights rather than raw reserve symmetry
- Orca vault balances are normalized from raw token units before balance-health calculation
- Top-pool fee tiers now serialize as actual basis points (for example 1bp, 5bp, 30bp) across UniV3, CG-onchain, and direct APIs
v4.1Mar 18, 2026Direct API precedence, primary-grade coverage, and fetcher contract hardening
Direct API sources now replace overlapping DeFiLlama pools before scoring, run ahead of staged/fallback sources, and count as primary-grade coverage. Raydium and Orca contract handling was hardened against live API drift, Fluid volume normalization moved to one-sided USD volume, and Balancer intake now excludes unsupported pool types.
- Raydium lower-case poolType contract fix restores live Solana pool coverage
- Orca now paginates via cursor.next with retry/backoff and a below-threshold stop, instead of truncating after page 1
- Direct API pools are fingerprint-deduped and preferred over overlapping DeFiLlama pools before score computation
- Direct API sources merge before staged/DexScreener/CG-ticker fallbacks, preventing lower-confidence sources from claiming the same pool first
DetailsHide details
Direct API precedence, primary-grade coverage, and fetcher contract hardening
Direct API sources now replace overlapping DeFiLlama pools before scoring, run ahead of staged/fallback sources, and count as primary-grade coverage. Raydium and Orca contract handling was hardened against live API drift, Fluid volume normalization moved to one-sided USD volume, and Balancer intake now excludes unsupported pool types.
- Raydium lower-case poolType contract fix restores live Solana pool coverage
- Orca now paginates via cursor.next with retry/backoff and a below-threshold stop, instead of truncating after page 1
- Direct API pools are fingerprint-deduped and preferred over overlapping DeFiLlama pools before score computation
- Direct API sources merge before staged/DexScreener/CG-ticker fallbacks, preventing lower-confidence sources from claiming the same pool first
Impact notes
- Raydium lower-case poolType contract fix restores live Solana pool coverage
- Orca now paginates via cursor.next with retry/backoff and a below-threshold stop, instead of truncating after page 1
- Direct API pools are fingerprint-deduped and preferred over overlapping DeFiLlama pools before score computation
- Direct API sources merge before staged/DexScreener/CG-ticker fallbacks, preventing lower-confidence sources from claiming the same pool first
- direct_api-only rows now classify as primary coverage (confidence 1.0) instead of fallback coverage
- Fluid volume now uses one-sided USD-normalized pool volume instead of double-counting raw token legs
- Balancer intake is limited to supported stable/weighted pool families on mapped chains only
v4.0Mar 10, 2026Log-scale volume, cross-chain removal, durability rebalance
Volume activity switched from linear to log-scale. Cross-chain component removed and weight redistributed to TVL depth and pool quality. Durability sub-weights rebalanced: locked liquidity removed, organic fraction reduced to 15% with sqrt curve, history-measured signals raised to 85%.
- Volume activity now uses log-scale (33.3*log10(V/T/0.005)); median score rises from 5 to ~35
- Cross-chain component removed; TVL Depth raised to 35%, Pool Quality to 22.5%
- Durability: organic 15% (sqrt curve), TVL stability 35%, volume consistency 25%, maturity 25%
- Locked liquidity sub-component removed from durability (no reliable data source)
DetailsHide details
Log-scale volume, cross-chain removal, durability rebalance
Volume activity switched from linear to log-scale. Cross-chain component removed and weight redistributed to TVL depth and pool quality. Durability sub-weights rebalanced: locked liquidity removed, organic fraction reduced to 15% with sqrt curve, history-measured signals raised to 85%.
- Volume activity now uses log-scale (33.3*log10(V/T/0.005)); median score rises from 5 to ~35
- Cross-chain component removed; TVL Depth raised to 35%, Pool Quality to 22.5%
- Durability: organic 15% (sqrt curve), TVL stability 35%, volume consistency 25%, maturity 25%
- Locked liquidity sub-component removed from durability (no reliable data source)
Impact notes
- Volume activity now uses log-scale (33.3*log10(V/T/0.005)); median score rises from 5 to ~35
- Cross-chain component removed; TVL Depth raised to 35%, Pool Quality to 22.5%
- Durability: organic 15% (sqrt curve), TVL stability 35%, volume consistency 25%, maturity 25%
- Locked liquidity sub-component removed from durability (no reliable data source)