Interacting with the Aragon Voting App through Status
DAOs are a powerful concept for decentralised governance models. However, interacting with a DAO is still mostly limited to desktop browsers with integrated wallets. If we really want to people to self-govern through DAOs, we need to make them more accessible. To do so, I have built an extension for the Status.im messenger that allows users and most notably groups of users access to a shared DAO.
What it does
It is a Status Extension, which is hosted on IPFS and can easily be added to any Status client. The extension implements several 'hooks' for commands inside Status chat windows to interact with an Aragon DAO contract. This implementation does not offer complete control over the DAO, but I have implemented the core functionality of the Aragon Voting App. The available hooks are
show-votesto get an overview of all votes in the DAO,
voteto vote in an existing, ongoing vote and
new-voteto start a new vote.
For simplicity, many parameters of new votes being created, such as the duration, the minimum quorum, etc., are predefined. A more detailed implementation would be able to walk the user through selecting the right parameters.
How I built it
Status extensions are written in Hiccup, a markup language close to Clojure. Status offers an online editor with syntax checking and rudimentary debugging support. Status also provides rough documentation
Challenges I ran into
Hiccup was completely new to me, so getting the hang of the relationship of hooks, events and views was challenging at first. Later I occasionally ran into issues that were hard to explain, for example caused by wrong indentation. Some issues I still cannot explain. Some functionality that would have been handy were not available in the official Status release.
Accomplishments that I'm proud of
The core functionality of the Aragon Voting App is implemented. The hooks work in any Status chat message, so people can combine voting activity with discussions.
What I learned
I learned a lot about the Aragon smart contracts, and of course Hiccup. Due to the experimental state of Status extensions, I am unsure how much of that knowledge will still be valid a year from now.
What's next for DAO To Go
I would like to build a full-fledged mobile UI for Aragon.