Provenance: storage, shadow, simulation
Where a price you read comes from, and what it promises.
| Source | What it is | Where you get it |
|---|---|---|
storage | The price recorded on chain by the feed's last refresh. | The API (source: "storage"). |
| simulation | What a refresh would record now, simulated without sending it. | Before a refresh, to preview it. |
| shadow | The same computation, run off chain by Mimir's indexer from the accounts it reads. | The Mimir App, and the API when it answers source: "shadow". |
recorded | The history of stored prices. | The API history routes. |
The same computation, off chain
Shadow reuses Mimir's oracle computation core: the feed's definition, component quantities and quote conversions. At the same slot, with the same account state, feed configuration and computation version, shadow and the on-chain program compute the same price. Pool accounts change as transactions run, so a shadow price from newer pool data can differ from the last stored one.
No off-chain price sends a transaction, pays a fee, or changes the feed's stored price. None of them is a new on-chain observation: to act on a price on chain, refresh the feed in your transaction .
Prices are in USDC. A SOL-quoted feed is converted through Mimir's own SOL/USDC feed, never an outside price.