Aragon Button: Interact with DAOs everywhere

Problem

Interacting with Aragon organizations right now requires the usage of the Aragon client.

Sometimes, developers or even users may want to integrate Aragon into their existing dapp or app (even a Web2 app) without having to tell their users to open a new tab with the Aragon client.

Put it other way, right now Aragon adoption is very mololithic: you either buy all-in, or you don’t.

Solution

The solution could be to integrate a button that performs actions like voting, submitting a finance request, etc. in any existing frontend or app.

The flow would be similar to Stripe Checkout, where developers or even users can copy and paste a line of code and let the tool handle the hard parts. In this case, an Aragon Button could be a voting button, to vote yes for a given proposal on a DAO. But it could be configurable with parameters to perform any given action that a DAO exposes to the world via its installed Aragon apps.

Security considerations

One main reason why the Aragon client is great is because of security. Users just need to trust that they are getting the right Aragon client frontend, and then the client takes care of:

  • Describing outgoing transactions via Radspec, so users know what they are signing
  • Communicating with the signing provider/wallet to trigger the signing popup
  • Sandboxing Aragon apps from the client, so a malicious app cannot tamper the signing process

All of this could be built into an Aragon Button popup, so when the user clicks Vote on an Aragon Button, a popup is opened with the mainnet.aragon.org URL, giving users the trust they need.

They could also run it in a fully decentralized way if they have something like Frame installed, in which case they would load it directly from Aragon’s decentralized package manager from aragonpm.eth .

User Experience

Check out the prototype on Figma.

For developers and users

To make this kind of integrations happen, we would need something like aragonAPI Lite. This would be a lite version of aragonAPI/aragonJS that allows developers to easily fetch the state from their Aragon organization. Maybe that’s done by running aragonJS on their servers, and since the user already trust their frontend that wouldn’t be an issue. Users can also open the organization in the Aragon client to verify the organization’s state, if they don’t trust the developer’s website.

For users, we could also envision a widget generator (similar to the 0x Instant Configurator) that allows users to select:

  • An Aragon organization (e.g. governance.aragonproject.eth )
  • The app to interact with (e.g. Voting )
  • The parameters (e.g. vote #10 and outcome yes )

That’d then generate HTML code that could be added into a WordPress blog or even a tweet.

Summary

Aragon Button allows users to interact with Aragon organizations from any website or app, and allows developers and makers to integrate Aragon functionality without having to redirect users into the Aragon client.

12 Likes

This was sort of the headless wrapper idea that was scrapped. I think it’s pretty cool.

2 Likes

Just a thought not sure weather this is possible. I imagine interacting with DAOs (DAPPs) within my phone. My private key is stored on my phones TEE by services like rivetz.com. When I then click on vote the TEE of my phone and the blockchain are communicating directly with each other and the Trusted Display from the TEE shows me what the blockchain says. So I just have to type in the ammount of tokens i want to stake and click vote and thats it. You only see a field to type in a number and a button vote and when you click on it you have voted no pop up needed.

Not sure whether a TEE can decode data to display a transaction’s metadata, but sounds interesting

This would be really cool. Then you could integrate Aragon DAO related actions into things like community forums or games. This would make the experience much more dynamic and improve the UX 10X (along with expanding the possible use cases for DAOs 10X as well)

1 Like

I would really like to keep working on the Aragon Button.
This is what I did during the ETHBerlin hackathon, just a very simple Proof Of Concept:

If anyone wants to join and contribute (please do!), feel free to let me know. This is my Telegram handle: @Bitcoinera.

As a design I am thinking of making it very lite, all-in-one library. Also as simple as possible. Maybe make a version with web3 included and another one without, so developers can decide one of the two and therefore avoid web3 versions incompatibilities. But I am afraid I miss out completely the security aspect of it.

Please feel free ping me here or through telegram for any suggestions.
I have confidence this is a great project for Aragon.

4 Likes

I can imagine that the guys from rivetz could have an answer to that. The CEO has knowledge https://www.bloomberg.com/profile/person/1486300
https://www.mwcbarcelona.com/speaker/steven-sprague/