stakewiz-rs 0.1.0

Unofficial Rust client for the Stakewiz API - Solana validator analytics
Documentation

stakewiz-rs

Unofficial Rust client for the Stakewiz API — Solana validator analytics, Wiz Score, epoch info, and more.

Installation

[dependencies]
stakewiz-rs = "0.1"
tokio = { version = "1", features = ["full"] }

Quick Start

use stakewiz_rs::{StakewizClient, QueryParams};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = StakewizClient::new();

    // Get a validator by vote account
    let v = client.get_validator("GE6atKoWiQ2pt3zL7N13pjNHjdLVys8LinG8qeJLcAiL").await?;
    println!("{} — APY: {:.2}%", v.name.unwrap_or_default(), v.apy_estimate.unwrap_or(0.0));

    // Get all stake accounts (includes deactivated)
    let stakes = client.get_validator_stakes("LSTmLs1DENX82ihc7jU134mydiV3NDEPXsRrekAY6Ys").await?;
    println!("Stake accounts: {}", stakes.len());

    // Query params: sort & limit
    let params = QueryParams::new().sort_desc("epoch").limit(10);
    let epoch_stakes = client.get_validator_total_stakes("GE6atK...", Some(&params)).await?;

    // Current epoch
    let epoch = client.get_epoch_info().await?;
    println!("Epoch {}{:.0}s remaining", epoch.epoch, epoch.remaining_seconds);

    Ok(())
}

API Coverage

Category Endpoint Method
Validators GET /validators get_validators()
GET /validator/{id} get_validator()
GET /validator_delinquencies/{id} get_validator_delinquencies()
GET /validator_total_stakes/{id} get_validator_total_stakes()
GET /validator_epoch_stakes/{id} get_validator_epoch_stakes_summary()
GET /validator_stakes/{id} get_validator_stakes()
GET /validator_wiz_scores/{id} get_validator_wiz_scores()
GET /validator_vote_success/{id} get_validator_vote_success()
GET /validator_skip_rate/{id} get_validator_skip_rate()
Cluster GET /cluster_stats get_cluster_stats()
Wiz Score GET /wiz_score get_wiz_score_weightings()
Epoch GET /epoch_info get_epoch_info()
GET /epoch_history/{epoch} get_epoch_history()
GET /all_epochs_history get_all_epochs_history()
Other GET /stake_validators_by_withdraw_authority/{pk} get_stake_validators_by_withdraw_authority()

Custom HTTP Client

use reqwest::Client;
use std::time::Duration;

let http = Client::builder()
    .timeout(Duration::from_secs(30))
    .build()?;

let client = StakewizClient::with_http_client(http);

License

MIT