Our Aragon Use

Our Use of Aragon

We will delve into how we integrate and utilize Aragon OSx in our system. While we have created our own custom frontend and Diamond Governance SDK (opens in a new tab), and thus, do not use the Aragon SDK, the SecureSECO DAO is built upon a foundation laid by the Aragon OSx smart contracts.

Aragon OSx

Our DAO is built on the Aragon OSx contract. This serves as the base contract, which is generated by Aragon.

Here is a breakdown of what this contract handles:

Permissions

Aragon OSx contracts handle permissions mapping. Here, an address can have a permission of another smart contract, enabling plugins to interact securely with each other. A permission consists of an address that has the permission, the contract where which the permission can be used, and the permission id.

Action execution

Action execution is a permission that is granted to the governance plugin. This enables the governance plugin to execute actions on behalf of the DAO when consensus is reached.

Storage of treasury

The Aragon OSx contract stores the treasury tokens in the DAO smart contract, allowing them to be withdrawn as an action.

Plugins

Aragon OSx contracts facilitate plugins, which is a mapping of other smart contracts to which permissions are granted to interact with the DAO or other plugins. Currently, we have one plugin: The overarching Diamond plugin that contains a lot of facets to provide our desired functionality. This structure was chosen to enhance the modularity of the DAO and make it easier to add new features.

Base security systems

The core Aragon OSx contract also has some base security systems to protect the DAO. It has been audited for security flaws over 3 times. Some of the audit reports can be found on their GitHub repository (opens in a new tab).

Flexibility and modularity

Because of our Diamond governance SDK, our reliance on Aragon OSx is minimal. This grants us the flexibility to switch to another DAO base contract, or even create our own later. We can continue using the same Diamond, only needing to transfer our treasury. As the members, token holders, and proposals are all stored in the Diamond, we would not lose any data in such a transition.