Data Sources & Freshness
Last updated: August 6, 2026
Akashi produces no rates of its own. Every number on the board is read from a protocol’s own API or from the Solana chain, stored, and shown with the time it was read. This page lists each source, how often it refreshes, how long the history is kept, and what happens when a source fails.
1. Yield and TVL — every 15 minutes
One fetcher per venue, all on the same 15-minute cycle. Where a protocol publishes an API we read the API; where the truth is only on-chain we read the chain directly.
| Venue | Source | Read from |
|---|---|---|
| Kamino | api.kamino.finance | API + on-chain |
| Jupiter | api.jup.ag | API |
| Exponent | api.exponent.finance | API |
| Save | api.solend.fi | API |
| Project 0 | app.0.xyz | API |
| Loopscale | tars.loopscale.com | API |
| Meteora | amm-v2.meteora.ag · dlmm.datapi.meteora.ag | API |
| Orca | api.orca.so | API |
| Raydium | api-v3.raydium.io | API |
| Perena | api.perena.org | API + on-chain |
| Neutral Trade | neutral.trade | API + on-chain |
| Yield-bearing stablecoins | — | On-chain |
2. Prices and risk inputs
| Input | Source | Refresh |
|---|---|---|
| Stablecoin prices (peg tracking) | api.jup.ag · coins.llama.fi | Every 15 min |
| Token prices | api.jup.ag | Every 15 min |
| Stablecoin safety ratings & depeg events | api.pharos.watch | 4× per hour (:07 :22 :37 :52) |
| Token transfer-safety warnings | api.jup.ag (Shield) | Every 6 hours |
| Token market caps | api.jup.ag | Hourly |
| Program upgrade authority, stablecoin freeze/mint authority | Solana RPC (Helius) | Every 6 hours |
| Protocol TVL / treasury cross-check | DeFiLlama (free tier) | Daily, 04:30 UTC |
Two derived passes run on top of these: APR statistics (volatility and ranges) recompute hourly at :10, and risk scores recompute hourly at :20 — plus immediately after any depeg or transfer-safety signal lands, so a live incident reaches the published grade in roughly 17 minutes rather than waiting for the next hour. See risk methodology.
3. What you see, and how old it is
- Every opportunity carries the timestamp of its last successful read. The Discover table shows it as Updated … under the results.
- Pages are served from a 30-second cache, so a freshly changed rate can be up to 30 seconds behind the database on top of the 15-minute fetch interval.
- The worst case for a routine rate change is therefore roughly 15–16 minutes. Live risk incidents are deliberately faster (see above).
4. How long history is kept
| History | Retention |
|---|---|
| Rate & TVL snapshots | Full resolution for 30 days, then compacted to one daily average per opportunity; daily rows deleted after 365 days. |
| Stablecoin price history | Full 15-minute resolution, never compacted and never deleted — it is what the peg charts and depeg detection run on. |
| Risk scores & grades | Current value only. Each recompute overwrites the previous one, so a past grade cannot be reconstructed. |
5. When a source goes down
- A failed fetch changes nothing. The last successful values stay in place and keep their original timestamp, so a stale rate is visibly stale rather than silently missing.
- An opportunity that disappears from its venue’s feed is marked inactive and drops off the board.
- That deactivation has a deliberate brake: if a fetcher returns nothing at all, or the active set for a venue would drop by more than half in one pass, the deactivation is refused and an error is raised for a human instead. An upstream outage should not empty the catalogue.
- Risk inputs degrade individually. If the market-cap or cross-check feed is unavailable, the model scores on what it has and takes the cautious reading of what is missing — it does not assume the best case.
6. Corrections
If a rate, TVL or grade here disagrees with the venue’s own interface, the venue is right and we have a bug. Report it via the feedback form or support@akashi.finance.