| Crates.io | mycelium_tfchain_client |
| lib.rs | mycelium_tfchain_client |
| version | 0.1.0 |
| created_at | 2025-12-31 13:58:43.712828+00 |
| updated_at | 2025-12-31 13:58:43.712828+00 |
| description | A Rust client for interacting with TFChain using dynamic metadata (no compile-time codegen required) |
| homepage | |
| repository | https://github.com/threefoldtech/tfchain_client |
| max_upload_size | |
| id | 2014758 |
| size | 454,927 |
A Rust client library for interacting with the ThreeFold Grid infrastructure.
This library provides two main modules:
| Module | Description |
|---|---|
| tfchain | TFChain blockchain client with dynamic metadata support |
| explorer | TFGrid Explorer API client with optional Redis caching |
Add to your Cargo.toml:
[dependencies]
mycelium_tfchain_client = "0.1"
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
Query the blockchain directly for twins, farms, nodes, and balances:
use mycelium_tfchain_client::{Client, KeyPair, KeyType};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let keypair = KeyPair::from_phrase(KeyType::Sr25519, "your mnemonic here", None)?;
let client = Client::new("wss://tfchain.grid.tf:443").await?;
if let Some(info) = client.get_balance(&keypair.account_id()).await? {
println!("Balance: {} TFT", info.free as f64 / 10_000_000.0);
}
Ok(())
}
Query the Grid Proxy API for nodes, farms, and grid statistics:
use mycelium_tfchain_client::explorer::GridExplorerBuilder;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let explorer = GridExplorerBuilder::new().mainnet().build()?;
let stats = explorer.get_stats().await?;
println!("Grid has {} nodes", stats.nodes);
// Find nodes for a VM with 4 cores, 8GB RAM, 100GB disk
let nodes = explorer.find_nodes_for_vm(4, 8, 100, Some(5)).await?;
for node in nodes {
println!("Node {} - ${:.4}/hr", node.id, node.price_usd);
}
Ok(())
}
Run the examples:
# TFChain client example (requires TFCHAIN_SECRET env var)
cargo run --example mainnet
# Explorer client examples
cargo run --example tfgrid3-explorer-client
cargo run --example tfgrid3-explorer-client-highlevel
| Network | URL |
|---|---|
| Mainnet | wss://tfchain.grid.tf:443 |
| Testnet | wss://tfchain.test.grid.tf:443 |
| Devnet | wss://tfchain.dev.grid.tf:443 |
| Network | URL |
|---|---|
| Mainnet | https://gridproxy.grid.tf |
| Testnet | https://gridproxy.test.grid.tf |
| Devnet | https://gridproxy.dev.grid.tf |
Apache-2.0