Hello everyone,
We’ve been musing on Aragon ecosystem organization as a concept and come up with an idea of the Org Unit tree. We’d be really grateful for feedback. In case similar ideas have been highlighted or worked on before, please let us know.
Issue
- In a large organization (30+ members) the majority of members have to participate in every vote, irrespective of its scale and significance.
- Since all members are peers, they can equally cast votes in votings not related to their expertise (e.g. techies can participate in marketing-related voting and vice versa)
- Organization activities are not decomposed, there is no division into teams and units.
- Organization efficiency may go down due to the above stated problems.
Proposal
We suggest decomposing the current organization structure in a form of an Organizational Unit (OU) tree, thus making it endlessly scalable. The OU structure would be applicable to relevant future DAOs.
Each unit will be able to interact with its instances of the existing Aragon applications. For example, a unit will have its own budget and act accordingly. Budgeting will be a transfer of funds from the Finance app of the parent OU to the subsidiary Finance apps according to the standard Aragon rules, i.e. via decision of the parent OU head. Voting takes place if the parent OU head is a committee (there is a separate MiniMeToken and Voting). If the parent OU head is one person, he makes the transfer himself.
Such approach will immediately solve issues 1, 2 and 3, as there’ll be a separate committee to manage each unit and handle specific issues it is experienced in.
Narrowing the circle of voters could increase decision-making efficiency. In particular, one person can lead a child OU and there is no need to vote at all (e.g. small routine tasks or non-costly service payments). This would maximize efficiency and solve problem 4.
DAO Contracts
- Kernel - one, rights - root OU
- ACL - one, rights - root OU
- OU tree
- Each OU in the tree has its own set of necessary contracts
- OU contract
- Vault
- Finance
- MiniMeToken (optional)
- TokenManager (optional)
- Voting (optional)
- …
- Leaves are created and deleted dynamically
- Each OU in the tree has its own set of necessary contracts
OU
Roles
- SETTINGS_ROLE - controls the main settings
- MANAGE_SUB_OU_ROLE - management of child OUs (creating, changing their basic settings, deleting)
Basic settings
- OU head - sole address / committee (has its own token and voting)
- ability to create child OUs - bool
- ability to transfer committee tokens - bool
- ability to divide committee tokens - bool
- OU name - string
OU Actions
- management of child OUs (creating, changing basic settings, deleting)
- access to OU resources, with corresponding access control
Default configuration for root OU creation
All rights are transferred to the voting committee of the root OU members, as it is in the organization at the moment.
Default configuration for child OU creation
Rights are distributed as follows:
- SETTINGS_ROLE - parent OU
- OU contract update - parent OU
- OU contract rights control - parent OU
- act on behalf of OU - OU head
- managing OU applications, except for the OU itself - OU head
- OU application rights management, except for the OU itself - OU head
Technical details
Since OUs can be created and deleted dynamically, current DAO and application set templates should be adapted for a dynamic call, otherwise dynamic analogues should be written.
Also, you will need to adapt Dapp interface core to navigate an OU tree organization.