ERC3000Registrycontract serves as the central registry for all Govern DAOs. Every DAO spawned through a properly-implemented
GovernFactorywill register the new DAO in the "official" registry. The registry takes care of doing these things:
GovernQueuepair assigning it a name on the blockchain. This means that instead of assigning an ENS name, this is left to the user, as the name itself will be saved in the contract's storage.
GovernQueueFactoryproduce their respective contract instances:
GovernQueue. The intended usage is to create a new GovernQueue, and feed the resulting address, along with an
ERC3000Registryaddress to GovernFactory. The latter will then produce a new
Governcontract, register it to the desired
ERC3000Registrywith the chosen name, and set up a standard set of permissions.
Governis the DAO's executor and vault of the organization. It will be responsible for executing the actions that have been scheduled through the queue and holding the organization's funds. While the smart contract is extremely simple (<80 LOC), it can effectively call any external smart contract, which means it's basically a smart account which is governed by the DAO.
GovernQueueis by far the most critical contract to understand, as it's the main point of interaction with the DAO and the Aragon Protocol. This is what most users will interact with directly—it holds the DAOs configuration parameters, and its where actors can schedule, execute, veto and challenge actions.
GovernQueuecan be configured, meaning you can change these parameters:
GovernQueuewill make the Govern contract execute the actions.
Governhave their own ACLs.