Divergences
Continuously cross-checks the canonical Stellar Index 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.
Δ% history
Our VWAP vs the selected reference over the trailing window. Dashed lines mark the operator's alert threshold.
No (pair, reference) on the board yet — nothing to plot.
Divergence board
Latest comparison per (pair, reference) over the trailing 7 days — our VWAP vs each external reference, widest gap first. Click a row to plot its history above.
Loading…
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
ActiveHTTP 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
ConfiguredHTTP feed (off-chain Chainlink)
Independent price index via mainnet AggregatorV3 contracts on Ethereum. Queried over public RPC (eth.llamarpc.com). Drives the divergence worker's "are we wildly off" alerting threshold.
- EUR/USD0xb49f67…34C1
- GBP/USD0x5c0Ab2…d4b5
- JPY/USD0xBcE206…beb3
Reflector (DEX/CEX/FX)
ActiveOn-chain SEP-40 oracle
Stellar-native oracle trio, compared as three references (reflector-dex/cex/fx) from our own ingested oracle_updates rows. Reflector divergence often signals an oracle update lag rather than a real price move — important to distinguish for downstream consumers like Blend.
Redstone
ActiveOn-chain adapter contract
Pull-style oracle on Stellar, compared from our ingested oracle_updates rows. 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
ActiveOn-chain Soroban contract (no events)
Operation-args ingest (Band emits zero events). The divergence check reads the same relayed value the on-chain consumer would see, straight from our ingested rows.
Reading the board
The board above shows the latest comparison per (pair, reference) over the trailing 7 days, widest gap first. A row marked firingbreached its per-(reference, pair) threshold at its last observation — that's what contributes to flags.divergence_warning. Δ% is (our − reference) / reference × 100; negative means our VWAP sits below the reference.
The Δ% history chart at the top plots one (pair, reference) over time from the same divergence_observations hypertable — click any board row to drill into its trail, with the operator's alert threshold drawn as the dashed band. Methodology rationale lives in ADR-0019.