Collective Governance
Open Source Community Governance Smart Contract
Governance smart contracts are a type of smart contract that allow a community to influence an on-chain governance system or treasury through voting. They can be used to define who participates in the decision-making process, how votes are weighted and counted, and what actions can be taken based on the outcomes. Governance smart contracts can also provide security and transparency for the participants, as well as enable innovation and flexibility for the group or collective.
However, governance smart contracts also face some challenges and limitations. For example, they may require a high level of technical expertise and trust from users, they may be vulnerable to attacks or bugs, and they may not be able to capture all the nuances and complexities of human interactions and agreements. Therefore, governance smart contracts need to be carefully designed, tested and audited before deployment.
Collective Governance attempts to address all of the above concerns by providing an on-chain voting system with flexible plug-and-play community definitions and easy building blocks for creating communities. Communities may each determine the rules for voting and interacting separately from one another without requiring code changes, reviews or deployments. Collective Governance also provides a pluggable mechanism for defining the community itself, possibly as membership in a pre-defined voting pool or as a collective who all hold a particular token.
Collective Governance has been designed from the ground up to be very easy to use. It uses an easily-understandable building block approach to creating a community and managing proposals and voting on that community. Therefore Collective Governance addresses many of the concerns and issues present in existing Governance contracts.
- Getting Started
- JavaScript Examples
- Contract Specification
- Constant
- ProposalBuilder
- ProposalBuilderProxy
- System
- AlwaysFinal
- ConfigurableMutable
- Mutable
- OwnableInitializable
- Versioned
- VersionedContract
- AddressCollection
- AddressSet
- ChoiceCollection
- ChoiceSet
- MetaCollection
- MetaSet
- TransactionCollection
- TransactionSet
- CommunityBuilder
- CommunityBuilderProxy
- CommunityClass
- ProjectCommunityClass
- WeightedCommunityClass
- CommunityClassClosedERC20
- CommunityClassClosedERC721
- CommunityClassERC20
- CommunityClassERC721
- CommunityClassOpenVote
- ClosedProjectCommunityClassProxy
- CommunityClassProxy
- ProjectCommunityClassProxy
- WeightedCommunityClassProxy
- WiredClassProxy
- CommunityClassVoterPool
- VoterPool
- ProjectClassFactory
- TokenClassFactory
- WeightedClassFactory
- ScheduledCommunityClass
- VoterClass
- CollectiveGovernance
- Governance
- GovernanceBuilder
- GovernanceBuilderProxy
- GovernanceFactory
- VoteStrategy
- GovernanceStorage
- MappedMetaStorage
- MetaStorage
- MetaStorageFactory
- Storage
- StorageFactory
- TimeLock
- TimeLocker
- Treasury
- TreasuryBuilder
- TreasuryBuilderProxy
- Vault
- Elector Supervisor
- BSD 3-Clause License
Contract Deployment Details
Sepolia TestNet
Contract |
Ethereum Address |
Version |
Description |
---|---|---|---|
ECDSA |
0xe9e21aaEaEad9c57C1F4c622915fFB54f9Ebe338 |
4.9.0 |
OpenZeppelin signature module |
0x532bdBAa513194B446F49c70b104a0Ab61b9bB7c |
0.9.19 |
Constant library |
|
0xa36e161361A16D75534d565480e62cE474BaC9f3 |
LATEST |
CommunityBuilder Factory |
|
0x9fB5a925E61c31617129B5D030808939DADA99f7 |
LATEST |
Governance Contract Builder |
|
0x49753b58270AE454d4ec555Ff88294a4FAb01660 |
LATEST |
Treasury Contract Builder |
Görli TestNet Deprecated
Contract |
Ethereum Address |
Version |
Description |
---|---|---|---|
Constant |
0xE92C637eC797934574D31D319B4bD1eca182e7F1 |
0.9.7 |
Constant library |
CommunityBuilder |
0x011b543b69236aca83406edc051e8a6dd3bcda1c |
0.9.7 |
CommunityBuilder Factory |
GovernanceBuilder |
0x2c57560BF19b7c088488104D02506D87f63e414C |
0.9.7 |
Governance Contract Builder |
Project Links
JavaScript Reference Implementation