ERC3000Registry
contract serves as the central registry for all Govern DAOs. Every DAO spawned through a properly-implemented GovernFactory
will register the new DAO in the "official" registry. The registry takes care of doing these things:Govern
⟷ GovernQueue
pair 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.GovernFactory
and GovernQueueFactory
produce their respective contract instances: Govern
and GovernQueue
. The intended usage is to create a new GovernQueue, and feed the resulting address, along with an ERC3000Registry
address to GovernFactory. The latter will then produce a new Govern
contract, register it to the desired ERC3000Registry
with the chosen name, and set up a standard set of permissions.Govern
is 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.GovernQueue
is 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.GovernQueue
can be configured, meaning you can change these parameters:GovernQueue
only):execute
method and GovernQueue
will make the Govern contract execute the actions.GovernQueue
and Govern
have their own ACLs.0x0000000000000000000000000000000000000001
.0xffffffffffffffffffffffffffffffffffffffff