| Crates.io | circles-sdk |
| lib.rs | circles-sdk |
| version | 0.1.0 |
| created_at | 2025-12-05 12:33:51.395329+00 |
| updated_at | 2025-12-05 12:33:51.395329+00 |
| description | Circles SDK orchestrating RPC, profiles, pathfinding, transfers, and contract runners. |
| homepage | https://circles-rs-book.vercel.app/ |
| repository | https://github.com/deluXtreme/circles-rs |
| max_upload_size | |
| id | 1968105 |
| size | 185,063 |
Rust port of the Circles TypeScript SDK, orchestrating Circles RPC, profiles, pathfinding, transfers, and optional contract runners. Read flows work without a runner; write paths are gated and return MissingRunner until you provide one.
circles-transfers and circles-pathfinder.ws).config::gnosis_mainnet() and a GNOSIS_MAINNET lazy static.use circles_sdk::{config, Sdk};
use alloy_primitives::address;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Gnosis chain (100) mainnet config
let sdk = Sdk::new(config::gnosis_mainnet(), None)?; // runner None => read-only
let avatar = address!("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
let info = sdk.avatar_info(avatar).await?;
println!("avatar type: {:?}", info.avatar_type);
Ok(())
}
basic_read.rs: fetch avatar info/balances/trust and run a pathfind.invite_generate.rs: build invitation secrets/signers and inspect txs.ws_subscribe.rs (feature ws): subscribe with retries + catch-up.ContractRunner to enable write paths (registrations, trust ops, transfers). The SDK stays read-only without one and returns SdkError::MissingRunner.cargo test -p circles-sdkcargo test -p circles-sdk --features wsRUN_LIVE=1 LIVE_AVATAR=0x... cargo test -p circles-sdk -- --ignoredCIRCLES_RPC_URL, CIRCLES_PATHFINDER_URL, CIRCLES_PROFILE_URL.ws module.AdvancedTransferOptions if you need exclusions or simulated balances.cargo doc -p circles-sdk --all-features for rustdoc output.