Skip to content

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 EoaContractRunner and single-owner SafeContractRunner.
  • SafeExecutionBuilder for 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