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
andoutcome 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.