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 settingstypes: Core types includingHotkey,Balance, and identity typesconnect: Connection pooling and health monitoringerror: Error types and retry configurationservice: MainServicestruct for chain interactionsdiscovery: Neuron discovery from metagraph dataregistration: 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