Managing Group Membership
The Rust SDK does not currently expose a single high-level “group invite” facade matching the app language, but it does expose the concrete membership and admin primitives behind those flows.
Read helpers:
Sdk::group_members(group, limit, sort_order)Sdk::group_holders(group, limit)- lower-level
groupMembershipsandgroupsquery access viacircles-rpc
Write/admin helpers on BaseGroupAvatar:
trust_add/trust_removetrust_add_batch_with_conditionsset_membership_conditionset_owner,set_service,set_fee_collection
Example: trust a batch of members with condition checks
use std::sync::Arc;
use alloy_primitives::address;
use circles_sdk::{Avatar, EoaContractRunner, Sdk, config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let runner = Arc::new(
EoaContractRunner::connect(
"https://rpc.aboutcircles.com/",
"0xYOUR_PRIVATE_KEY",
)
.await?,
);
let sdk = Sdk::new(config::gnosis_mainnet(), Some(runner))?;
let group = address!("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
let alice = address!("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
let bob = address!("cccccccccccccccccccccccccccccccccccccccc");
if let Avatar::Group(base_group) = sdk.get_avatar(group).await? {
let submitted = base_group
.trust_add_batch_with_conditions(&[alice, bob], 4_102_444_800)
.await?;
println!("submitted {} tx(s)", submitted.len());
}
Ok(())
}