Snapshots, slots and freshness
as_of is when the snapshot was built. Reads are not atomic: observed_slots gives the slot range read and
snapshot_consistency is normally multi_slot. Each leg’s context.as_of_slot says when its amount was exact.
freshness gives age_seconds, stale and max_age_seconds. A stale snapshot comes with refreshing: true and a
refresh_job_id. After an adapter failure, a position may be carried forward from the previous snapshot (flag
carried_forward). Data freshness has the numbers.
Data freshness
How old is what you see?- Snapshot freshness target: 120 s (
SNAPSHOT_FRESHNESS_S). An older snapshot is served immediately withfreshness.stale: trueandrefreshing: true, and a refresh scan starts; pollrefresh_job_idor request again later. While stale,coverage.statusisstaleandtotal_value_usdisnull(coverage_incomplete). - Cold wallets: the first request returns
202;retry_after_secondsis 3 when the scan was kicked at once (otherwise the seconds to the next scheduled run plus 5). Typical scans take 2–6 s. freshness_seconds(0…86,400) sets how old a snapshot you accept. Lower values cause more scans and can hit the cold-scan limit;freshness_seconds=0always marks the stored snapshot stale.- Time and slots:
as_ofis when the snapshot was built;observed_slotsis the slot range read;snapshot_consistency: multi_slotis normal because reads are not atomic. - Price age: each leg has
price_as_of. A built-in on-chain price ispricedfor up to 300 s, a TokenPrices price for up to 900 s; older prices arestale(shown, not counted) up to 24 h and not served beyond that. LST redemption rates are stale from an epoch lag of 3 (a warning at 1–2). Prices refresh every 2 minutes. - Lending interest is valued as of each reserve’s last refresh: the leg’s
context.as_of_slotsays which slot, an old reserve sets theinterest_staleflag, and no interest is projected forward (D-15). - Retention: snapshots are kept 7 days.
- Measured numbers (latency, cold-scan time, RPC calls per scan) are in Performance and freshness.
Captured example
Captured example
GET /v1/solana/wallets/GSyXx6WRm2o6Qu4RWxTH17swLZKpTKQdQTS2uGcus1NF/defi-positions?freshness_seconds=0 → 200 (captured 2026-11-12 from local positions-stale)