Divergences

Continuously cross-checks the canonical Rates Engine VWAP against external references. A persistent gap flips flags.divergence_warning on the canonical coin pages and writes a row to the divergence_observations hypertable for the historical trail.

Why we monitor divergence

We never include external references in the canonical VWAP — mixing them would import their methodology and double-count whichever upstream markets they read. But silence on divergence would let a quiet decode bug or a stuck Reflector update skew prices for hours before anyone noticed.

The divergence worker reconciles. For every (pair, reference) tuple, every refresh tick, it compares our VWAP to what the reference reports, persists the row, and (per ADR-0019) drives the multi-factor confidence score that gates the freeze decision.

CoinGecko

HTTP price index

Aggregator-of-aggregators. Useful as a sanity reference because it's not on-chain and pulls from a different upstream set.

Chainlink HTTP

HTTP feed (off-chain Chainlink)

Independent price index. Drives the divergence worker's "are we wildly off" alerting threshold.

Reflector (DEX/CEX/FX)

On-chain SEP-40 oracle

Stellar-native oracle trio. Reflector divergence often signals an oracle update lag rather than a real price move — important to distinguish for downstream consumers like Blend.

Redstone

On-chain adapter contract

Pull-style oracle on Stellar. Divergence here is rare but high-signal — Redstone batches many feeds in one transaction so divergence on one feed often precedes a wider reading update.

Band

On-chain Soroban contract (no events)

Operation-args ingest (Band emits zero events). Divergence checks read the same relayed value the on-chain consumer would see.

Coming next

Live per-(asset, reference) state, time-series of delta %, and per-incident drill-downs all come online once the divergence-observations endpoint ships (Phase 5). The underlying durable mirror is already running — see the freeze + divergence sinks listed in the research index. Methodology rationale lives in ADR-0019.