Explaining Group Currency

Group currency are a powerful new primitive for Circles that allows to combine many individual CRC tokens and combine them into a shared single token. This can be useful to:
a) reduce risks to hold CRC as group Circles can be backed/supported by strong groups as in contrast just a single person
b) enable markets/ liquidity - individual CRC are unlikely to be significant enough to be traded while group currency can
c) simplification in pathfinding - we have already experienced technical challenges with successful pathfinding in a growing trust graph - GC can provide layers on top that can simplify pathfinding again
d) reflect existing communities/ groups. While Circles at its core can reflect p2p relationships p2m (peer to many) relationships can be reflected with GC.

Technical Overview:

  1. “Group Owner” (this is a technical term, it does not need to be a single owner, it can be a contract that represents any decision making process including multisigs (Safes) or even complex voting DAOs) determines who the members of the group are and can set a few parameters.

  2. “Group Currency” this is a token contract that represents the group currency (token). This contract is also registered as an “organization” in the Circles trust graph - thus it is possible to send Circles to it like any other organization. However - there is the additional ability to “mint” after a send. A “mint” will transfer CRC token to the “Treasury” (take them out of circulation) but mint the equivalent number of CRC.

  3. “Treasury” When minting Group Currency personal CRC are being send to the treasury. There are different setups possible. The treasury could be a “burn” address (0x00000…) - in this case all personal CRC are permanently taken out of circulation. In another setup at least the group Owner can access them to e.g. migrate the group. In yet another setup it is possible (e.g. Safe + Zodiac exit module) for group currency holders to “redeem” their group currency against individual CRC.

Parameters:

Who is allowed to mint
a) Admin only. In this setup only the group owner can mint. As the group owner can be a contract this allows potentially to define arbitrary rules about how is allowed to mint.

b) Members only. Only members of the group are allowed to mint.

c) Anyone can mint. In this model anyone who has tokens of a group member can mint group currency. This usually means that as long as you have a trust connection to a group member you are able to send member Circles transitively to the group and mint.

Fee:
A fee can be taken during mint. A 5% fee means if you use 100 personal CRC you only mint 95 group currency. It is up the group to decide what to do with the extra 5 personal CRC.


A staging version can be found here: https://staging-circles-groups-safe-app.vercel.app/ (can be used as a “custom Safe app”.)

1 Like

Thanks for this write-up!
If anybody is interested how those parameters are implemented, here are the smart contracts: https://github.com/ice09/circles-contracts/blob/hub-v1-comp/contracts/GroupCurrencyToken.sol

(We can certainly move those contracts to some other repo as well, just let me know!)