Crate bittensor_rs

Crate bittensor_rs 

Source
Expand description

§Bittensor Rust SDK

A standalone Rust SDK for interacting with the Bittensor blockchain network.

This crate provides:

  • Connection Management: Connection pooling, health checks, and automatic failover
  • Wallet Management: Key loading, signing, and transaction submission
  • Chain Queries: Metagraph data, neuron info, and subnet information
  • Extrinsics: Weight setting, axon serving, staking, and more

§Quick Start

use bittensor_rs::{config::BittensorConfig, Service};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create configuration
    let config = BittensorConfig::finney("my_wallet", "my_hotkey", 1);
     
    // Initialize the service
    let service = Service::new(config).await?;
     
    // Get the metagraph
    let metagraph = service.get_metagraph(1).await?;
    println!("Found {} neurons", metagraph.hotkeys.len());
     
    Ok(())
}

§Modules

  • config: Configuration types for network and wallet settings
  • types: Core types including Hotkey, Balance, and identity types
  • connect: Connection pooling and health monitoring
  • error: Error types and retry configuration
  • service: Main Service struct for chain interactions
  • discovery: Neuron discovery from metagraph data
  • registration: Chain registration for miners and validators

Re-exports§

pub use config::BittensorConfig;
pub use connect::ConnectionManager;
pub use connect::ConnectionMetricsSnapshot;
pub use connect::ConnectionPool;
pub use connect::ConnectionPoolBuilder;
pub use connect::ConnectionState;
pub use connect::HealthCheckMetrics;
pub use connect::HealthChecker;
pub use discovery::NeuronDiscovery;
pub use error::BittensorError;
pub use error::ErrorCategory;
pub use error::RetryConfig;
pub use registration::ChainRegistration;
pub use registration::RegistrationConfig;
pub use registration::RegistrationConfigBuilder;
pub use registration::RegistrationStateSnapshot;
pub use retry::retry_operation;
pub use retry::retry_operation_with_timeout;
pub use retry::CircuitBreaker;
pub use retry::RetryNode;
pub use service::ConnectionPoolMetrics;
pub use service::Service;
pub use types::account_id_to_hotkey;
pub use types::hotkey_to_account_id;
pub use types::rao_to_tao;
pub use types::tao_to_rao;
pub use types::Balance;
pub use types::Hotkey;
pub use types::MinerUid;
pub use types::ValidatorUid;
pub use utils::create_signature;
pub use utils::normalize_weights;
pub use utils::set_weights_payload;
pub use utils::sign_message_hex;
pub use utils::sign_with_keypair;
pub use utils::verify_bittensor_signature;
pub use utils::BittensorSignature;
pub use utils::NormalizedWeight;
pub use wallet::Wallet;
pub use wallet::WalletSigner;
pub use extrinsics::add_stake;
pub use extrinsics::burned_register;
pub use extrinsics::commit_weights;
pub use extrinsics::delegate_stake;
pub use extrinsics::register_network;
pub use extrinsics::register_network_with_identity;
pub use extrinsics::remove_stake;
pub use extrinsics::reveal_weights;
pub use extrinsics::revoke_children;
pub use extrinsics::root_register;
pub use extrinsics::serve_axon;
pub use extrinsics::serve_prometheus;
pub use extrinsics::set_childkey_take;
pub use extrinsics::set_children;
pub use extrinsics::set_root_weights;
pub use extrinsics::set_subnet_identity;
pub use extrinsics::set_weights;
pub use extrinsics::transfer;
pub use extrinsics::transfer_all;
pub use extrinsics::transfer_keep_alive;
pub use extrinsics::undelegate_stake;
pub use extrinsics::ChildKey;
pub use extrinsics::CommitRevealParams;
pub use extrinsics::ExtrinsicResponse;
pub use extrinsics::ExtrinsicStatus;
pub use extrinsics::RootWeightsParams;
pub use extrinsics::ServeAxonParams;
pub use extrinsics::ServePrometheusParams;
pub use extrinsics::SetChildrenParams;
pub use extrinsics::StakeParams;
pub use extrinsics::SubnetIdentity;
pub use extrinsics::TransferParams;
pub use extrinsics::WeightsParams;
pub use queries::fields as metagraph_fields;
pub use queries::get_balance;
pub use queries::get_metagraph;
pub use queries::get_neuron;
pub use queries::get_neuron_lite;
pub use queries::get_stake;
pub use queries::get_stake_info_for_coldkey;
pub use queries::get_subnet_hyperparameters;
pub use queries::get_subnet_info;
pub use queries::get_total_network_stake;
pub use queries::get_total_subnets;
pub use queries::get_uid_for_hotkey;
pub use queries::subnet_exists;
pub use queries::Metagraph;
pub use queries::NeuronInfo;
pub use queries::NeuronInfoLite;
pub use queries::SelectiveMetagraph;
pub use queries::StakeInfo;
pub use queries::SubnetHyperparameters;
pub use queries::SubnetInfo;
pub use crate::api::api::runtime_types::pallet_subtensor::pallet::AxonInfo;
pub use crate::api::api::runtime_types::pallet_subtensor::pallet::PrometheusInfo;

Modules§

api
API module that includes the generated metadata
config
Bittensor Configuration
connect
Connection Management
crypto
Re-export sp_core for cryptographic operations
discovery
Neuron Discovery
error
Bittensor Error Types
extrinsics
Extrinsics (Transactions)
queries
Chain Queries
registration
Chain Registration
retry
Retry Logic with Exponential Backoff
service
Bittensor Service
types
Bittensor Types
utils
Bittensor Utilities
wallet
Wallet Module

Type Aliases§

AccountId