Practical overview
When it fits
Use Doppler when an application needs a compact Solana feed with publisher-controlled updates, explicit ordering and a fixed-size schema.
Who it is for
- Solana developers building applications that consume on-chain price feeds
- DeFi builders needing sequenced oracle updates
- Publishers of fixed-size non-price data on Solana
Documented uses
- Publish a price or generic fixed-size payload on-chain
- Enforce strictly increasing update sequences
- Read packed feed data from the SDK or another Solana framework
- Construct custom transactions from Doppler instructions and budget information
Requirements & limits
The repository is public and MIT-licensed. The documented clients include Rust SDK usage and TypeScript packages.
- Payloads are fixed-size and described by a shared manifest.
- Updates require an admin signature and a strictly increasing sequence.
- The documented update cost is 21 compute units for a u64 feed and 25 for the Price payload.
- Unix-millisecond sequences enable the documented freshness helper; other sequence conventions require a different freshness design.
- The SDK exposes raw instructions and budget information for custom transaction assembly.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Set up and use a Doppler price feed
Load a Price manifest, deploy the feed, publish a sequenced update and read it through the documented Rust SDK.
Before you start
- A Doppler manifest such as doppler.json with an admin, seed and Price fields.
- The Doppler SDK and the documented Solana Rust crates.
- An RPC endpoint and an admin signer.
Steps
Load the manifest with DopplerClient::::load and provide the RPC client and SendOptions.
Call deploy().send with the admin signer to write the program and create the feed account.
Call update with a Unix-millisecond sequence and Price payload, then send it with the admin signer.
Call read to obtain the sequence and packed Price value; use price_no_older_than when the feed sequence follows the SDK's Unix-millisecond convention.
Expected outcome
A deployed feed can receive sequenced Price updates and expose the stored value and sequence to a reader.
Guide limitations
- The documented freshness helper assumes Unix-millisecond sequences; feeds using another sequence convention need time in their payload or do not provide that freshness interpretation.
- The payload type must match the manifest fields; the SDK reports a mismatch during load.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 1 October 2026
- Original website title
- blueshift-gg/doppler · Official homepage title · retained in its source language

