Circles SDK Overview (Rust)
The Rust SDK mirrors the TypeScript SDK surface with strong typing and Alloy
integration. It is no longer a read-only port: read flows work without a
runner, and write flows are enabled by attaching a ContractRunner.
Crates and roles:
circles-sdk: recommended application entrypoint; typed avatars, runners, registration, invitations/referrals, and higher-level orchestration.circles-types: avatars, trust, tokens, events, query DSL, config, and shared types.circles-pathfinder: pathfinding + contract-ready flow params.circles-rpc: RPC client with methods for query, balances, events, groups, trust, invitations, transaction history, and token helpers.circles-transfers: ordered tx assembly for path-based transfers, replenish, and group-token redeem flows.circles-profiles: profile service helpers.circles-abis/circles-utils: generated contract bindings plus demurrage and conversion helpers.
What works now:
- Query profiles, balances, trust relations, groups, memberships, holders, token balances, invitations, and paged history.
- Pathfinding and flow matrix preparation at both the RPC and local-crate level.
- Event fetching/decoding (HTTP; WS with feature flag).
- Path-based transfers, direct transfers, replenish flows, and group-token mint/redeem planning.
- Human, organisation, and base-group write helpers for trust, profile updates, personal minting, registration, and invitations/referrals.
- Native execution through
EoaContractRunnerand single-ownerSafeContractRunner. SafeExecutionBuilderfor canonical Safe payload/hash preparation before external signing.
Still in progress:
- browser-provider Safe signing/submission
- remaining TS convenience-surface polish
- referrals backend auth/service follow-up work