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.