Shadow: prices without a transaction
Explore a feed, follow a price or build a terminal without sending a refresh transaction for every update.
Shadow is the offchain pricing mode of Mimir's indexer. It reads onchain account data and calculates a feed's price outside Solana, for applications that need to display the result rather than record it onchain.
The same pricing logic, offchain
Shadow reuses Mimir's oracle calculation core, following the feed's definition, component quantities and quote conversions. Explorers and terminals can use that calculation without rebuilding the pricing logic themselves.
At the same slot, with the same account state, feed configuration and calculation version, Shadow and the onchain oracle calculate the same price.
This compares the same inputs within that slot: pool accounts can change as transactions execute. A Shadow price based on newer pool data can differ from the last price recorded onchain.
For example, a terminal can follow the AI Chips reference as its inputs change, including the MRVL/SOL conversion, without asking someone to refresh the feed onchain just to display a new price.
No refresh transaction to display a price
An offchain calculation does not submit a Solana transaction, pay an onchain refresh fee or change the feed's stored observation. Reading the result does not require a wallet signature. Hosting and data-service pricing are separate from these onchain costs.
This is different from simply reading the feed account: an account read returns the last recorded observation; Shadow calculates a result from the account data it has read. Its observation time matters, since pool state can change between that calculation and a later onchain refresh.
Choose the path for your application
| What you are building | Price path |
|---|---|
| An explorer showing feeds and their compositions | Shadow for offchain display. |
| A terminal or dashboard following prices | Shadow for updates without a refresh transaction. |
| An onchain action that consumes an updated oracle price | Refresh the feed, then consume it in the same transaction. |
The two paths work together. A trading interface can display a Shadow price while the transaction uses an onchain refresh for execution. A displayed Shadow result is not itself a newly recorded onchain observation.
Connection details and client examples will accompany the SDK documentation.
Next: refresh and consume onchain, or understand price freshness.