![]()
switchboard-on-demand
A Rust library for seamless interaction with Switchboard Oracle accounts on the Solana blockchain.
Overview
switchboard-on-demand provides Rust developers with an efficient and easy-to-use client for integrating Solana-based oracles from Switchboard into their applications. This library empowers developers to leverage decentralized, trustless, and highly reliable oracle data for various applications, particularly in the DeFi and Web3 spaces.
Features
- On-Demand Oracle Data: Fetch real-time, accurate, and tamper-proof data for blockchain applications.
- Custom Oracle Creation: Design and deploy your own oracles tailored to your specific data needs.
- High Fidelity Financial Data: Ideal for applications requiring precise and dependable financial data.
- Privacy-Focused: Operates within confidential runtimes to ensure data integrity and security.
Getting Started
Prerequisites
Ensure you have the following installed:
- Rust (latest stable version)
- Cargo
- Solana CLI tools (if interacting directly with the Solana blockchain)
Installation
Add switchboard-on-demand to your Cargo.toml:
[]
= "0.8.0"
Using on chain
use PullFeedAccountData;
use Decimal;
use Clock;
Oracle Quote Verification
The library includes advanced oracle quote verification functionality through the QuoteVerifier struct. This allows for cryptographically verified data from multiple oracles:
use *;
// Configure the verifier with required accounts
let mut verifier = new;
verifier
.queue
.slothash_sysvar
.ix_sysvar
.clock_slot
.max_age;
// Verify the oracle quote from instruction at index 0
let quote = verifier.verify_instruction_at?;
// Access verified feed data
for feed in quote.feeds
Quote Program Integration
The library now includes support for the dedicated quote program for oracle-managed updates:
use ;
// The quote program ID is available as a constant
let quote_program = QUOTE_PROGRAM_ID;
// Verify quotes from oracle accounts
let verified_quote = new
.queue
.slothash_sysvar
.ix_sysvar
.clock_slot
.max_age
.verify_account?;