Aragon tutorial: Creating a multistakeholder organization

Aragon tutorial: Creating a multistakeholder organization

Aragon is a powerful tool for creating digital organizations. The flexibility provided by the underlying aragonOS smart contract system means that nearly any organization model or governance rules that can be conceived of can be implemented in code and built into an Aragon organization.

Want to know more about Aragon? Read our blog post Governing with Aragon.

In this tutorial I will show how you can use Aragon to create a multistakeholder organization that is governed by its members. A multistakeholder organization is an organization governed by stakeholders from “different social, political, or economic groups”. For example, a neighborhood that wants to unite to solve problems or provide benefits to the local community could create a multistakeholder organization made up of neighborhood residents, business owners, workers, and civil society groups to propose and vote on different activities to focus resources towards.

In this tutorial we will create a multistakeholder organization that is starting off with three stakeholder groups: a local business, an institutional nonprofit, and a grassroots community organization. Each stakeholder group will have an internal process for nominating a representative who will be responsible for relaying information about proposals back and forth from the multistakeholder organization, as well as voting on proposals in the multistakeholder organization. This keeps the multistakeholder organization nimble and allows most members of the stakeholder groups to focus on their normal jobs rather than being constantly distracted by what’s happening in the multistakeholder organization. If at any time a stakeholder group feels that their representative is no longer the best fit for the job, they can swap them out for a new representative. 

Note: It is possible for a stakeholder group to vote on proposals in the multistakeholder organization using direct democracy or any other governance model, but for this example we will use a representative model.

Step 0. Prerequisites

Make sure you have all of the prerequisites necessary to start using Aragon. Namely, for this tutorial you will need an Ethereum provider and at least 0.5 Rinkeby test ETH.

Part 1. Create your stakeholder organizations

As mentioned before, our multistakeholder organization is going to start off with three stakeholder groups: a local business, an institutional nonprofit, and a grassroots community organization. Each of these groups is going to have its own Aragon organization so that they can, at a minimum, nominate a representative who will act on their behalf in the multistakeholder organization.

Each stakeholder organization is going to be configured the same way, so we will perform this step three times, once for each stakeholder organization.

1.1 Go to rinkeby.aragon.org 

We’ll create our organizations on the Rinkeby test network for now. This way if we make any mistakes, it won’t cost us real money and we can easily start over if needed.

1.2 Click the “Connect account” button

Connect your Ethereum account to the Aragon client. A popup may appear asking for your approval. Approve the connection to continue.

1.3 Click “Create an organization”

We’re going to set up each of our stakeholder organizations using the Membership template. With this template, each member of the organization will receive one non-transferable token that represents their membership and provides them with voting rights in the organization. Each member can only hold at most one token. This creates a “one-member-one-vote” governance model for the organization.

1.4 Install optional Agent app

For this setup, we want to make sure that we install the Agent app on each stakeholder organization. The Agent app is an Aragon app that enables Aragon organizations to interact directly with any other smart contract on Ethereum, including other Aragon organizations. This is what will enable each stakeholder organization to act independently inside of the multistakeholder organization.

Click the toggle to enable the Agent app installation then click the “Use this template” button to proceed.

1.5 Complete the setup flow

There are five steps to completing the setup flow for each stakeholder organization.

1.5.1 Choose an ENS name

We have to choose an Ethereum Name Service (ENS) subdomain name for each stakeholder organization. This will uniquely identify each organization on the Ethereum blockchain. I’m going to call our stakeholder organizations business.aragonid.eth, nonprofit.aragonid.eth, and grassroots.aragonid.eth.

1.5.2 Select Voting app parameters

We have to select the parameters we want to use for the Voting app that will be installed on each organization. I’m going to set both the Support % and Minimum Approval % parameters to 50%, which means that more than half of the organization members must vote YES for a proposal to be approved. I’m also going to set the vote duration to 10 minutes. Since this is just a demo organization we want the votes to go quickly.

1.5.3 Select Tokens app parameters

We have to set the parameters for the Tokens app. I’m going to make the token name for each organization VOTE TOKEN and make the token symbol VOTE. In the Token Holders field I’m going to paste my own Ethereum address. I could click the “Add more” button to add the Ethereum addresses of other members of the organization, but for simplicity I’ll leave it with just my address for now.

1.5.4 Review setup settings

We have an opportunity to review all of the settings we just entered for our organization. Everything looks good so I’m going to click “Launch your organization”.

1.5.5 Launch the organization

We have to sign and broadcast the transaction to create the organization. If you decide to add multiple tokenholders to the organization on the Tokens app section of the setup flow, you may have to sign and broadcast more than one transaction.

Now we’re ready to go! Click “Get started” to go to the organization you just created.


After repeating these steps three times – once for each stakeholder organization – we will have each of the organizations that will make up the multistakeholder organization and we can move on to the next part of the tutorial.

Part 2. Create the multistakeholder organization

The steps completed to create the multistakeholder organization are going to be almost exactly the same as creating each individual stakeholder organization. The only differences will be the ENS name and the initial tokenholders that I select.

For the ENS name, I am going to call the multistakeholder organization multistakeholder.aragonid.eth.

When it’s time to add the initial set of tokenholders on the Tokens app section of the setup flow (Step 1.5.3 above) we are going to enter the Agent address of each stakeholder organization, for a total of three initial tokenholders.

To find the address of the Agent app for each stakeholder organization, navigate to the organization in the Aragon client then go to “Organization” under the “System” section of the sidebar in the Aragon client. 

Click on the Agent app address then copy and paste it into the Token Holders field on the Tokens app settings page when setting up the multistakeholder organization. Click “Add more” to add the Agent addresses of each other stakeholder organization.

Review and confirm the details, then launch the multistakeholder organization. Since there are three initial tokenholders, we must sign and broadcast two transactions to complete the setup.

And now we have our multistakeholder organization.

Part 3. Nominate stakeholder representatives

In this part we will nominate a representative in each stakeholder organization. As mentioned before, this representative will be responsible for taking proposals from their organization to the multistakeholder organization, relaying information between the multistakeholder organization and their own stakeholder organization, and voting on proposals in the multistakeholder organization on behalf of their stakeholder organization.

This part is optional; a multistakeholder organization could decide that all of the members of the stakeholder organizations should be fully involved in the governance process, and so participation is based on a direct voting model rather than a representative model. There are many ways this could be set up. But for this example, we’ll use a representative model.

We will complete this part of the tutorial for each stakeholder organization.

3.1 Propose a representative

To propose a representative, we’re going to create a proposal that gives the representative’s Ethereum address permission to execute actions using the Agent app of the representative’s organization.

Note: The permission to execute actions using the Agent app can be a powerful permission that would, for example, give permission to the representative to unilaterally transfer any assets managed by the Agent app, if it manages any assets at all. This permission is best granted only in an organization where the Agent app is not used to manage assets, and is only used to vote in a multistakeholder organization as in this tutorial. If an organization wants to participate in a multistakeholder organization this way and manage assets using the Agent app, it’s best to set up a separate organization specifically for this purpose.

3.1.1 Go to the Permissions app of the stakeholder organization

Click “Permissions” under the System section of the sidebar in the Aragon client to open the Permissions app.

3.1.2 Click “New permission” and configure new permission

On app “Agent” assign to entity “Custom address” “(paste address of the representative)” permission to perform action “Execute actions”. Click “Add permission” then sign and broadcast the transaction.

3.2 Approve proposal to give the representative the necessary permission

After you sign and broadcast the transaction to create the new permission giving the representative the ability to execute actions using the Agent app, a proposal will be created in the Voting app. Based on the parameters we set for the Voting app in each stakeholder organization, over half of the members must vote YES for the proposal to be approved. Go to the Voting app and vote YES on the proposal. If there are other members, have them vote YES as well.


Now the representative has the permission to execute actions on behalf of the organization using the Agent app.

Part 4. Set up Frame + Agent

The representative now has to set up their Ethereum provider so that they can interact with the multistakeholder organization using their stakeholder organization’s Agent app. Currently Frame is the only Ethereum provider that has native support for interacting on behalf of an Aragon organization using the Agent app.

1. Install Frame

Visit https://frame.sh/ and install the Frame desktop app. You can also install the Frame browser extension if you want to be able to use Frame with other Ethereum applications.

2. Add your Ethereum wallet to Frame

Start the Frame desktop application. Click the arrows at the top of Frame to change to the Settings menu. Next to “Connection” change “Mainnet” to “Rinkeby”. Click the arrows at the top again to go back to the main page. Click the “+” button and add your Ethereum account to Frame. This should be the same Ethereum account that has the address nominated as the stakeholder representative. You can select from multiple options to add your account depending on how you are storing your account.

3. Add the stakeholder organization’s Agent

Once you (the representative) have added your personal Ethereum account to Frame, click the “+” button in Frame again to add another account. Scroll down to where it says “Smart accounts” and click “Add Aragon account”. Type the name of your organization (the stakeholder organization the representative is acting on behalf of) then click “Next”.

Select the Ethereum account that holds your stakeholder organization token, then select the specific address holding the token (the same Ethereum address selected to be the representative).

Frame will show a success message, then you will be taken back to the main account selection screen in Frame where you can select the Aragon account to act with.

4. Create and vote on proposals in the multistakeholder organization

Using Frame + Agent and acting as their stakeholder organization, representatives can now create and vote on proposals in the multistakeholder organization. The proposals can do almost anything a proposal in any other Aragon organization can do: add or remove tokenholders, withdraw funds, change permissions, install or upgrade apps, etc.

Note: Due to a software limitation that prevents acting as an organization within another organization, the only type of proposal not currently directly supported in a multistakeholder organization like this are Agent app proposals. One way that you can work around this limitation is to give representatives the “Create new vote” permission on the Voting app in the multistakeholder organization. Then, representatives can create new votes on behalf of the multistakeholder organization using the multistakeholder organization’s Agent app, as described above using Agent + Frame except acting as the multistakeholder organization instead of the representative’s stakeholder organization. Once the vote is created, the members of the multistakeholder organization can cast their votes on the Agent proposal. If one of the stakeholder organizations ever changes its representative, then the “Create new vote” permission can be revoked from the old representative and assigned to the new one.

Once a proposal is created, the representative can use Frame + Agent to cast a vote on behalf of their stakeholder organization using the multistakeholder organization’s Voting app.

Success!

We are now done setting up a multistakeholder organization using Aragon!

You can learn more about how to use Aragon for your organization at the Aragon Help Desk.

If you have any questions or feedback you are invited to start a thread in the Aragon Forum or join the Aragon community chat on Discord.

Governing with Aragon

Governing with Aragon

A lack of frameworks for coordinating across national borders. Struggles for resources between departments. Money missing from the cash box.

These are issues faced by all types of organizations, from startups and grassroots community groups to multinational companies and NGOs. The issues stem from people problems first, but are made worse by outdated technology.

The balkanization of financial systems means collaboration between people of different nationalities can be difficult or prevented altogether.

Departments competing for resources lack visibility into what the needs are of each other and the rest of the organization.

Multiple people need to pull money from the cash box to pay the group’s expenses, so it’s hard to control access and hold everyone to account.

We have been able to accomplish a lot with the tools still relied on by many organizations to govern and allocate resources. But it’s also clear that there is room for improvement.

An introduction to Aragon

Aragon is software that brings shared control, flexible permissions, and internet-wide access to money, domain names, video game items, financial assets – digital resources of all types, even organization governance itself.

Shared control means that it’s no longer necessary to entrust control of vital resources to a single person. Whereas traditional software requires giving at least one person “Admin” control over an organization’s digital resources, Aragon provides the ability to decentralize control among multiple people, even entire communities. In this way, administration powers are truly shared rather than concentrated in one person.

Flexible permissions mean that if the existing governance rules aren’t working, they can quickly be changed to better suit the organization’s needs. Not only is control over the organization’s resources shared, but control over the governance rules is also shared. Since the rules are written in computer code, changing the rules can be as easy as voting to approve an app update.

Permission settings in the Saint Fame organization at https://mainnet.aragon.org/#/sf

Internet-wide access means that slow or inflexible control of money and other digital resources due to balkanized legal and financial systems is a thing of the past. Just as chat apps make it easy for people all over the world to send each other messages and collaborate over the internet in an instant, Aragon makes it easy for individuals and organizations across the globe to use the internet to share ownership of resources and make decisions together.

We have seen in the examples at the beginning of this post what can go wrong when technology limits the ways that organizations can self-govern. What might an improvement over the old ways of doing things look like?

Governance as an app

Aragon is software that runs in web browsers that are Web3-enabled using either a browser extension or native Web3 integration. Web3 is a new set of internet protocols enabling collaboration and ownership without central authorities. The Web3 protocols that Aragon makes use of today are Ethereum and IPFS.

Whereas older “Web 2.0” applications such as Twitter and YouTube are run by central companies who have full control over the application and its users, newer Web3 applications can be built so that users remain in control of their data and their financial assets. These new capabilities offered by Web3 protocols are what enable Aragon users to share control over their organization’s resources.

With Aragon, users can create a digital representation of their organization complete with tools for managing membership and resources in the organization, as well as a system for managing who has permission to perform various actions, such as spending funds or adding new members.

The Aragon Network Governor Council at https://mainnet.aragon.org/#/network/

Aragon organizations can expand their capabilities using software extensions called “Aragon apps”. Aragon apps provide users the ability to easily manage different aspects of the organization, from adding and removing members, to spending funds, to voting on proposals, and more.

A special app called the Agent app enables an Aragon organization to interact directly with any other Ethereum application, so the organization itself can be treated as a first-class citizen of Ethereum. This means that the organization can take out a loan, register a domain name, stream salaries to workers by the second, even own land in virtual reality, all under the shared control of the organization’s members. Nearly everything about an organization can now be governed directly by its members, no matter where they might physically be in the world – just add internet!

Newfound trust and capabilities

With the new technology pioneered by Aragon and the broader Web3 community, organizations can transcend previous limitations and operate both more securely and with greater freedom than ever before. Where organizations used to have to trust an individual to responsibly manage the finances, now everyone in an organization can be given the opportunity to review expenditures and vote on whether or not to approve a transfer. In larger organizations, responsibility can be delegated to a specific team or small working group. Controversial decisions can be arbitrated by an Aragon-native dispute resolution system if needed, saving time and money over traditional courts and offering a solution for cross-border disputes.

Since all of the actions that can be performed in an Aragon organization are recorded on the Ethereum public ledger, Aragon organizations are transparent by default. Every vote, every payment, every membership or permission change are all publicly visible and verifiable. This makes Aragon particularly well suited for any organization that has transparency and accountability as core values, such as nonprofits and public communities.

Aragon Association finances at https://mainnet.aragon.org/#/budget

It is even possible for Aragon organizations to come together to form a new entity – a multistakeholder group, industry association, coalition, or similar organization of organizations. This enables organizations to pool their resources and tackle common challenges with minimal bureaucracy and legal overhead, even unlocking new opportunities in situations where barriers in the traditional legal or financial systems might have prevented collaboration. 

For example, a grassroots civic community in Africa can partner with an NGO in Europe and a church group from Australia to pool funds for a clean water project, and each organization can have direct input and oversight in how the funds are spent. The lack of financial infrastructure or the presence of legal complexity need no longer be barriers to getting things done and fulfilling important missions. Aragon can help organizations route around these problems by providing alternative finance and governance infrastructure.

Making the abstract concrete

In the next post I’ll help make some of the abstract concepts discussed here more concrete by showing how to create a multistakeholder organization using Aragon. In the meantime, I invite you to try Aragon for yourself by creating a test organization on the Rinkeby test network. If you have any feedback or questions, you can drop by the Aragon community chat and tag me in a message to the #support channel – my username in the chat is @light.