First step: Research
Our ambition is not easy. We wanted to innovate and exploit all the possibilities of Etherum to build a decentralized hedge fund.
Several projects try to answer this problem, so we started by studying and find the strengths and weaknesses of each. We found out that most are still too centralized where a single user takes the decisions for all the trades and strategies, and this is not our way. We want to give the possibility to everyone to create a proposal and be a part of a powerful hedge fund.
The logical next step was to turn to existing DAO solutions. After a full market analysis, Aragon seemed like the perfect framework to build our project.
Second step: MVP with Aragon
When we first set out on our Aragon journey, we were filled with high hopes and ambitions. We would be using one of the most advanced, if not the most, DAO frameworks available in the Ethereum ecosystem.
Pretty much everything we were looking for in a DAO framework came right out of the box with Aragon: permissions, smart contract upgradability, DAO templates, both customized and built-in Aragon apps, frontend solutions, etc.
We went into it thinking we could focus on our business logic while Aragon would do all the heavy lifting on the DAO side of things. However, having tried Aragon for several months, here are some of the issues we’ve run into.
In the beginning, we tried using Aragon’s CLI or command-line interface to launch DAOs on Rinkeby using their existing tutorials and documentation. The starting tutorials were able to get us up and running in terms of understanding how Aragon apps work, but we were still a bit clumsy with launching our own DAOs.
Luckily, we made use of the Aragon/1Hive discord where engineers familiar with the Aragon framework were able to help us get out of jams. Aaron became our point of contact and he aspired to bring back the Aragon Experts program. This involved one on one meetings in the beginning to get our DAO vision on track.
We were working on modifying the Aragon Finance app to suit our needs. Customizing the smart contract code was simple enough, but we needed to understand how to publish apps both locally and on testnet using the AragonPM. Once we were able to find a working command to publish Aragon apps, it became easier to install our Aragon apps onto our deployed DAOs. We then began work on building our Aragon template.
We initially had an issue deploying our DAO using the template due to gas issues but with help from Aaron, we learned to break up the deployment into separate transactions to get around the gas issue.
With the template working, we were able to speed up local development because the developer would only need to make changes to the app they were working on and then launch the template to see the end result. While working on the Uniswap Aragon app, we ran into peculiar frontend issues where we simply had to resort to trial and error to get around them. Even after fixing them, we would be plagued by vague frontend issues which would stop us dead in our tracks.
It didn’t help that Aragon OS was running on an older compiler version of solidity (v4) which made it difficult to reconcile with custom Aragon apps that needed to run on later versions of the solidity compiler. It also appeared that we had exhausted support in Discord and with our one on ones with Aaron. There were many times when we felt all alone, especially since Aragon was eventually moving away from Aragon OS to focus on Aragon Governance, its V2 launch.
Using older, brittle Solidity code in Aragon OS made it that much more difficult to maintain and debug code. The relative youth of Solidity during which Aragon OS was built did not help matters. It felt like the Aragon team was ahead of its time, so it was a shame to see the core devs quit the project. It also didn’t help that existing documentation was outdated and sparse.
In the end, we spent three months with 2 full developers and 2 part-time developers and were almost there, but we were faced with a new problem at each turn. It was a frustrating time for all of us because we wanted to do everything possible to offer you an innovative and quality project.
Third step: MVP from scratch
Full of frustration (and knowledge), we made the decision, with everything we had learned thanks to Aragon, to completely develop our own system. We aim to retain the good parts of what we learned while no longer depend massively on other people’s legacy code: we master the whole system.
We started this stage, and we already have very good results, our first MVP is progressing well and this is very motivating for all the team to see real progress.
Furthermore, we can now work on real business code rather than wasting time running third-party code. For example, we are currently working on carrying out trades via Uniswap v3.
As the success of a decentralized hedge fund is based on interactions, and interactions are now too costly to succeed on Etherum, so we studying the possibility to deploy our hedge-fund on another EVM chain. We also are hoping to add more EVM chains as we progress, however, our first priority is to get the system up and running on one important chain before porting it to more.
We hope to be able to give you more information about this new version in the near future. From now on, we will also dedicate a part of our time to post an update frequently. We will also do our best to hurry up on an updated roadmap and a new reward plan for liquidity providers before the release of the MVP project!