Docs and API
Three prices per feed
- Oracle — the price lending markets read. While the exchange is open it updates every heartbeat (60 seconds). While it's closed, it pauses at the last close.
- DEX — the price in the token's pool. It trades around the clock, so it keeps moving at night and on weekends.
- Exchange — the live exchange price while open, and the last close while shut. Shown as a dashed line.
Deviation is (DEX − oracle) ÷ oracle.
Statuses
- In agreement — deviation under 1%.
- Watch — 1% to 3%.
- Alert — 3% or more.
- Stale oracle — the exchange is open but the oracle missed 3 heartbeats in a row. A paused oracle on a weekend is expected and isn't counted as stale.
Incidents
Feeds are sampled every 5 minutes. Any stretch outside agreement becomes an incident; stretches of the same kind less than 30 minutes apart are merged. Watch-level blips shorter than 15 minutes are left out.
Kinds: weekend or overnight gap (exchange closed), DEX spike (exchange open, usually thin liquidity), oracle stopped updating.
Signal API
A lending market can poll one endpoint before it allows new borrows against a stock token, and act on the answer: normal, caution or pause_borrowing.
GET /api/signal/TSLA
…
Endpoints
Available when the Node server is running. Without it, the site computes the same numbers in the browser.
GET /api/board— every feed right now, with status, sparkline and signal.GET /api/feeds/NVDA?hours=24— oracle, DEX, exchange and deviation over time (1 to 168 hours).GET /api/incidents?days=7&sym=TSLA&severity=alert— the incident log.GET /api/signal/NVDA— the lending signal.GET /api/market— whether the exchange is open, and when that changes.
Limits
- No real oracle, DEX or exchange is read. Prices are generated from the time, so everyone sees the same numbers.
- Exchange hours follow the NYSE schedule in New York time, including daylight saving, but ignore holidays.
- Alerts are checked in your browser and never sent.