Collectives
See source implementation here.
Establishing a collective hub within the realm of web3, our initiative serves as a centralized space for groups to unite around a shared goal, without the need for a multisig requirement and waiting for approvals. The primary objective is to empower individuals within a group to collectively maintain a unified on-chain identity while retaining the autonomy to take independent actions, without relying on multisig structures for decision-making.
Create
Create a collective
public static async create(caller: ethers5.providers.Web3Provider, poolParam: createPoolsParam, salt : ethers.BigNumberish) {}
Join
Join a collective
public static async join(caller: ethers5.providers.Web3Provider, cMetadata: CMetadata, JoinParam:JoinCollectiveParam) {}
Leave
Leave a collective
public static async leave(caller: ethers5.providers.Web3Provider, cMetadata: CMetadata) {}
isMember
Check if an address belongs to a collective
public static async isMember(caller: ethers5.providers.Web3Provider, cMetadata: CMetadata, member: string) {}
Refund deposit
How to refund your collective deposit
info
When minting through a collective, users have to deposit some funds to the collective address first. If the second minting transaction fails, there is a refund() function that can be called below to retrieve the lost funds that the user deposited to the collective.
public static async refund(caller: ethers5.providers.Web3Provider, cMetadata: CMetadata, recipient: string) {}