Extensions give form.

Extension contracts give a DAO its form. Extensions provide a DAO with its governance structure and enable it to take certain actions. They assume the “sending context” of the DAO, and therefore can create state change. After initial deployment, extensions can be enabled or disabled via proposals passed by the DAO.

Extensions will vary by DAO use case with different enabled extensions creating different structures for different types of DAOs. Examples of extensions include:

  • Vault: Create a treasury for the StackerDAO.

  • Membership: Allow proposal submission for the DAO to be gated by specific fungible token contracts, NFT contracts, or whitelisted wallet addresses.

  • Voting rules: Determine a percentage of voters needed for quorum and for proposal approval.

  • Treasury management: enable the DAO to stack tokens, stake tokens, interact with DeFi protocols, buy/sell NFTs, mine PoXL tokens, and more.

  • Token issuance: Create a governance token or membership NFT and manage its issuance.

  • Protocol governance: Manage the smart contracts of an underlying protocol, like a DeFi protocol.

Since extensions become part of the DAO, they have privileged access to everything else included in the DAO. Extension interoperability is enabled by a common authorization check. Privileged access is granted when the sending context is equal to that of the DAO or if the contract caller is an enabled DAO extension. This allows for extensions that depend on other extensions to be designed. They can be disabled and replaced at any time making StackerDAO fully polymorphic.

Last updated