Facets
This page provides details about the facets currently implemented in the SecureSECO DAO. The facets are categorized based on their functionality and technicality.
Not sure what a facet is? Check out the previous page to learn more.
Governance
Partial Voting
This facet builds upon Aragon's token voting functionality. Instead of allowing wallets to vote once with their entire voting power, this facet enables multiple voting instances where individuals can vote multiple times with a portion of their voting power. It also supports different proposal types and allows for capping the voting power of a single wallet. The concept behind partial voting is that not all proposals require strong opinions, and individuals may prefer to have a moderate influence on the vote.
Partial Burn Voting
This facet extends partial voting by burning the voting power used in each vote. If a proposal fails to reach the participation threshold, the burned tokens can be made refundable based on configuration. Partial burn voting ensures that individuals only vote on proposals they truly care about, with the amount of voting power corresponding to their level of interest.
Partial Burn Voting Proposals
This facet introduces partial burn voting to the proposal creation process. When creating a proposal, a portion of the proposer's voting power is burned. If the created proposal passes, the burned tokens can be made refundable. Partial burn voting proposals incentivize individuals to put effort and thought into their proposals, discouraging frivolous or low-quality submissions.
Structures
Multiple governance structures have been defined to enable seamless interaction between different plugins. These structures ensure compatibility with existing plugins by implementing a standardized structure interface.
Membership
These structures define the criteria for identifying wallets as members of the DAO and store member-related information, such as ranks.
Base
All membership plugins are based on the IMembership
(opens in a new tab) interface of Aragon.
Extended
This interface extends the base membership structure by providing additional functionality to check if a wallet was a member at a specific timestamp and retrieve a list of wallets that have been members at any point in time. This information can be utilized to iterate over all members at a given timestamp on-chain.
Tiered
The tiered membership structure assigns a tier to each member instead of a binary yes/no value. These tiers can be used to grant additional permissions or benefits to members based on their achievements or qualifications.
Whitelist
The whitelist membership structure allows adding wallets directly to the whitelist, enabling them to become members even if they don't meet the standard membership requirements.
Voting Power
These structures determine the voting power associated with each wallet and handle the dynamics of gaining or losing voting power.
Base
The base governance structure provides information about the total voting power at a given block number and the voting power of a specific wallet at a given block number.
Mintable
This interface allows minting voting power to a wallet using a token ID and/or amount, depending on the voting token interface used (ERC20, ERC721, or ERC1155).
Burnable
This interface enables burning voting power from a wallet by specifying an amount. The implementation defines how this amount maps to token IDs and quantities.
Token
ERC20
Governance ERC20
This token functions identically to Aragon's Governance ERC20 contract but has been converted into a facet.
Governance ERC20 Burnable
This facet extends the functionality of Governance ERC20 by allowing the token to be burned.
Governance ERC20 Disabled
This facet modifies Governance ERC20 to enable disabling specific functionalities. It is commonly used to create non-transferable and/or non-delegatable tokens.
ERC721 and ERC1155
Support for these token types is planned for future implementation. The existing code has been designed with compatibility in mind, ensuring smooth integration with the implemented facets in the future.
Claiming
Time-based
This facet enables time-based rewards that can be claimed by DAO members. A tiered version of this facet allows different rewards based on member tiers. It also includes a configurable maximum amount of claimable tokens to prevent inactive members from claiming a large sum after a prolonged period of inactivity.
One-time
The one-time claiming facet allows members to claim a reward once. The basic version allows a single claim per wallet for DAO members. Additionally, an advanced version permits users to claim rewards for each verification they successfully pass.
Monetary ERC20
This facet provides an option for a monetary token alongside the governance token. It allows an alternative method of rewarding individuals in the DAO. The monetary token is stored in the DAO treasury, and certain functionalities may require the DAO to approve the Diamond Governance contract to spend funds on its behalf. Two options are currently available for the monetary token: a fixed supply that mints all tokens to the DAO treasury upon creation or an augmented bonding curve mechanism.
Variable Growth
This feature supports linear, exponential, and constant growth multipliers. It allows rewards or numbers to increase over time based on a specific variable.
Permissions
Permission management determines which wallets are authorized to perform certain actions within the DAO.
AragonOSx
Currently, the permission provider used in the DAO is AragonOSx, utilizing the grant functionality. The implementation allows for easy integration of additional permission providers in the future and permits members to use custom permission providers if desired.
Other
Verification
The Diamond Governance plugin implements Member Verification (opens in a new tab), which enables wallets to become DAO members by verifying their one-year-old GitHub account or proof of humanity.
GitHub Pull Request Merger
This facet allows the DAO to merge pull requests on GitHub. DAO members gain the ability to maintain the GitHub repository without relying on a centralized team of reviewers. Initial setup instructions can be found on the GitHub repository (opens in a new tab).