Governance

The flexibility of aragonOS allows fundraising-enabled organizations to endorse a wide variety of governance structures: from a personal DAO where an individual manages a continuously funded organization supported by patrons [similar to patreon], to a community project where token holders are expected to actively participate in key governance decisions. Though, to streamline the use of Aragon Fundraising, we implemented a default governance template.

Groups

Aragon Fundraising default governance template identifies two set actors: the board and the shareholders.

Board

The board token holders are the ones being funded by the fundraising campaign. They are represented through a custom BOARD token and a dedicated voting app set to be used as a multisig. Their privileges are intentionnaly limited to protect shareholders. Thus, they only have the following rights.

Handling board members. The board decides on who is to be included / excluded from the board [through its TokenManager].

Opening presale. The board decides on when the presale [and thus the fundraising campaign] is to be open.

Handling fundraising proceeds. The board decides on what use is to be made of the fundraising proceeds which are periodically transferred to their discretionnary Vault / Finance app.

Opening votes. The board decides on when new votes should be open for shareholders to enforce decisions over the organization.

  • Mint BOARD tokens and revoke vestings via the multisig voting app

  • Initiate and execute payments from the DAO's Finance app

  • Update the beneficiary address of the tap.

Shareholders

The share holders are the one contributing to the fundraising campaign. They are represented through a SHARE bonded-token [that can be bought and redeemed through the Aragon Fundraising interface] and a voting app. They hold most of the rights over the organization.

Handling system. Shareholders decide on which apps are to be installed, which apps are to to upgraded and how permissions are to be set.

Handling fundraising parameters. Shareholders decide on whether / how beneficiary, fees, collateralization settings and collaterals taps should be updated.

Rationale

This architecture grants [most of] the governance rights to shareholders [to protect their investment]. There is thus a need to mitigate situations where a shareholder owning more than 50% of the shares would own the whole organization. This is why SHARE based votes [i.e. most of the organization decisions] can only be open and initiated by the board.

Permissions

DAO

Handles generic organization permissions

Entity

Permission

Grantee

Manager

Kernel

APP_MANAGER

Voting [SHARE]

Voting [SHARE]

ACL

CREATE_PERMISSIONS

Voting [SHARE]

Voting [SHARE]

Board

TokenManager

Handles board membership

Entity

Permission

Grantee

Manager

Token Manager [BOARD]

MINT

Voting [BOARD]

Voting [BOARD]

Token Manager [BOARD]

BURN

Voting [BOARD]

Voting [BOARD]

Voting

Handles and enforces board decisions

Entity

Permission

Grantee

Manager

Voting [BOARD]

CREATE_VOTES

Token Manager [BOARD]

Voting [BOARD]

Voting [BOARD]

MODIFY_QUORUM

Voting [BOARD]

Voting [BOARD]

Voting [BOARD]

MODIFY_SUPPORT

Voting [BOARD]

Voting [BOARD]

Vaut and Finance

Handle board funds

Entity

Permission

Grantee

Manager

Vault

TRANSFER

Finance

Voting [BOARD]

Finance

CREATE_PAYMENTS

Voting [BOARD]

Voting [BOARD]

Finance

EXECUTE_PAYMENTS

Voting [BOARD]

Voting [BOARD]

Finance

MANAGE_PAYMENTS

Voting [BOARD]

Voting [BOARD]

Share Holders

TokenManager

Handles shares minting and burning [and thus share holders membership]

Entity

Permission

Grantee

Manager

Token Manager [SHARE]

MINT

MarketMaker

Voting [SHARE]

Token Manager [SHARE]

BURN

MarketMaker

Voting [SHARE]

Voting

Handles and enforces share holders decisions

Entity

Permission

Grantee

Manager

Voting [SHARE]

CREATE_VOTES

Token Manager [BOARD]

Voting [SHARE]

Voting [SHARE]

MODIFY_QUORUM

Voting [SHARE]

Voting [SHARE]

Voting [SHARE]

MODIFY_SUPPORT

Voting [SHARE]

Voting [SHARE]

Fundraising Apps

Reserve [Agent]

Handles reserve pool funds

Entity

Permission

Grantee

Manager

Agent

SAFE_EXECUTE

Voting [SHARE]

Voting [SHARE]

Agent

ADD_PROTECTED_TOKEN

Controller

Voting [SHARE]

Agent

REMOVE_PROTECTED_TOKEN

NULL

NULL

Agent

EXECUTE

NULL

NULL

Agent

DESIGNATE_SIGNER

NULL

NULL

Agent

ADD_PRESIGNED_HASH

NULL

NULL

Agent

RUN_SCRIPT

NULL

NULL

Agent

TRANSFER

Tap, MarketMaker

Voting [SHARE]

MarketMaker

Handles buy and sell orders

Entity

Permission

Grantee

Manager

MarketMaker

ADD_COLLATERAL_TOKEN

Controller

Voting [SHARE]

MarketMaker

REMOVE_COLLATERAL_TOKEN

Controller

Voting [SHARE]

MarketMaker

UPDATE_COLLATERAL_TOKEN

Controller

Voting [SHARE]

MarketMaker

UPDATE_BENEFICIARY

Controller

Voting [SHARE]

MarketMaker

UPDATE_FORMULA

NULL

NULL

MarketMaker

UPDATE_FEES

Controller

Voting [SHARE]

MarketMaker

OPEN_BUY_ORDER

Controller

Voting [SHARE]

MarketMaker

OPEN_SELL_ORDER

Controller

Voting [SHARE]

Tap

Controls the flow of funds from the reserve pool to the board's discretionary vault

Entity

Permission

Grantee

Manager

Tap

UPDATE_CONTROLLER

NULL

NULL

Tap

UPDATE_RESERVE

NULL

NULL

Tap

UPDATE_BENEFICIARY

Controller

Voting [SHARE]

Tap

UPDATE_MAXIMUM_TAP_INCREASE_PCT

Controller

Voting [SHARE]

Tap

ADD_TAPPED_TOKEN

Controller

Voting [SHARE]

Tap

REMOVE_TAPPED_TOKEN

NULL

NULL

Tap

UPDATE_TAPPED_TOKEN

Controller

Voting [SHARE]

Tap

WITHDRAW

Controller

Voting [BOARD]

Controller [Aragon Fundraising]

Forwards all transactions to the relevant modules [API contract]

Entity

Permission

Grantee

Manager

Controller

UPDATE_BENEFICIARY

Voting [BOARD]

Voting [BOARD]

Controller

WITHDRAW

Voting [BOARD]

Voting [BOARD]

Controller

UPDATE_FEES

Voting [SHARE]

Voting [SHARE]

Controller

UPDATE_MAXIMUM_TAP_INCREASE_PCT

Voting [SHARE]

Voting [SHARE]

Controller

ADD_COLLATERAL_TOKEN

Voting [SHARE]

Voting [SHARE]

Controller

REMOVE_COLLATERAL_TOKEN

Voting [SHARE]

Voting [SHARE]

Controller

UPDATE_COLLATERAL_TOKEN

Voting [SHARE]

Voting [SHARE]

Controller

UPDATE_TOKEN_TAP

Voting [SHARE]

Voting [SHARE]

Controller

OPEN_BUY_ORDER

Any

Voting [SHARE]

Controller

OPEN_SELL_ORDER

Any

Voting [SHARE]