Access staking, validator, and governance information
The GovernanceApi provides methods for querying staking information, validator details, and network governance state. All methods are in the suix namespace.
use sui_sdk::SuiClientBuilder;use sui_types::base_types::SuiAddress;use std::str::FromStr;#[tokio::main]async fn main() -> Result<(), anyhow::Error> { let sui = SuiClientBuilder::default() .build("https://fullnode.mainnet.sui.io:443") .await?; // Get system state let system_state = sui.governance_api() .get_latest_sui_system_state() .await?; println!("Current Epoch: {}", system_state.epoch); println!("Reference Gas Price: {}", system_state.reference_gas_price); println!("Total Stake: {}", system_state.total_stake); println!("Active Validators: {}", system_state.active_validators.len()); // Get reference gas price let gas_price = sui.governance_api() .get_reference_gas_price() .await?; println!("Gas Price: {} MIST", gas_price); // Get stakes for an address let address = SuiAddress::from_str("0x...")?; let stakes = sui.governance_api() .get_stakes(address) .await?; for stake in stakes { println!("Stake: {} SUI with validator {}", stake.principal, stake.validator_address); } // Get validator APY let apys = sui.governance_api() .get_validators_apy() .await?; println!("Validator APYs for epoch {}", apys.epoch); Ok(())}