Skip to content

Technical Group Details

Runner-dependent: Minting, redemption, and policy changes require writes; the Rust SDK is read-only today. Use this reference for mechanics and UI flows until runner support lands.

Protocol Level Group

The most basic group construct is defined in the Hub contract.

Every group has its own CRC token. Groups have members (defined as accounts they trust); in theory, groups can also trust other groups.

Group vault flow

Minting & Redemption

Minting: If account A is a member of group G, any account that holds A-CRC can turn them into G-CRC at a 1:1 rate. The A-CRC enter the group’s vault.

Redemption: Anyone holding G-CRC can redeem them 1:1 against any CRC currently present in the vault.

Mint and redeem flow

Groups (protocol) - Custom Policies

In the contracts, there are three entry points for groups to be customised.

Mint Policy

An external contract that is called as part of the minting flow. It gives permission or rejects the mint.

Mint policy

Redemption Policy

An external contract is part of the redemption flow. It returns a redemption plan that will be executed if it satisfies certain conditions.

Redemption policy

Burn Policy

An external contract is called when burning. It can veto a burn.

Custom Policies

To register any group, all three policies must be provided; the implementation offers a trivial BaseMintPolicy that is deployed and can be referenced.

Base Group

Base groups add more structure to protocol-level groups: they are collections of contracts deployed per group. In addition to the default groups, they accept these inputs:

  • An owner
  • A service address
  • A fee collection address
  • A set of membership conditions

Base group inputs

Every group also deploys auxiliary contracts, both registered as organisations on Circles.

Base group aux contracts

Base Treasury

All funds from the minting of group tokens are forwarded to this treasury. It trusts the group.

Base Mint Handler

This org mirrors the group’s trust, trusting all the group members.

Base Groups have several advantages

  • Fee collection allows forwarding fees (although no fee collection is enforced via base groups).
  • The service address lets owners automate updating group membership.
  • The base treasury allows redemption along a path.
  • The mint handler lets users mint group tokens simply by sending CRC to an address (abstracting hub interactions).
  • ERC20 deployments reduce hiccups with gas estimation.
  • Membership Conditions (unlike policies, these can be updated by owners) allow sophisticated composition of group membership.

Affiliate Group

As a member of the Circles ecosystem, you can join a primary group while also supporting and interacting with affiliate groups. Affiliates do not necessarily have to be members of groups. They are members who want to support groups through their Circles.

Choosing your affiliate group affects your daily CRC flow and trading options. Choose a group that aligns with your values, interests, and needs.

You’re free to change your primary affiliate group at any time and be affiliated with multiple groups. To set or change your affiliate group:

  1. Navigate to the group you want to select.
  2. Click the star icon in the top right corner of the group page.

Select an affiliate group

Why Affiliate Groups Matter?

  1. CRC Distribution: Your selected affiliate group receives 1/12th of the Circles tokens (CRC) you create daily (2 out of 24 CRC per day).
  2. Competition and Value Creation: Users can freely change their affiliate group at any time, encouraging groups to offer valuable incentives and engagement to attract and retain members.

With group mechanics understood, continue to group validation and use cases to design how your community engages with Circles.