The problem Dash Mon[k]ey solves
Idea
The idea is to have a suite of financial tools and bots to act on your behalf and make you money. Eventually, the project accomplishes three (inter-related) goals for the users —
- Manage their keys and addresses
- Teach users about financial tools and value vs money, by applying concepts
- Run algorithms (trades, arbitrage, liquidity providers, etc.) on behalf of the user for passive income(s)
ETH Odyssey implementations
- Manage user addresses and keys
- Use Unmarshal to monitor user addresses
- Monitor the market and receive conditional notifications
- Deploy the project on a remote device and interact with a webapp
- Self host a discord bot that sends notifications and can interact with the project
- Create and deploy trading recipes on Uniswap
note the implementation is janky and mostly unusable currently. However, the code along with the docs should provide a picture of what I intend to build. Of course, with one of the conditions being a solo project, building a solid usable and secure application will take time. I intend to continue this project longer term, which you can read more about here. Additionally, if you'd like to support me and enable me to pursue this project, you can also fund the grant on gitcoin. Finally, since I am graduating from college soon, I am also looking for grant opportunities and mentorship!
Challenges I ran into
I ran into quite a few challenges over the course of the hackathon, some overcome, some not.
Code related challenges
- modules With so many modules planned, and a goal of being simple plug and play, it was quite a challenge to figure out the structure of the project and how objects and data would flow within the code.
- keys Managing user keys is a challenge. When all money can be used with a string of characters, it is quite easy to be held hostage or simply forget the string. So, Dash Mon[k]ey is designed to be deployed on a separate device wherein the keys are stored securely. Additionally, the project is also designed to include injected web3 providers (metamask, etc.), and also employ smart wallets to maintain security.
- UI/UX The first issue with this is my low level of experience with the same, especially for non developer users. To address this, the application uses a parser that can be sent a command either via the discord bot or the Flask webapp. Smaller templates for each module are also built with basic bootstrap elements.
- tests I had no time to write unit tests, and unfortunately I am not in the habit of writing tests parallelly.
Non code related challenges
- scope As mentioned above, the design of the project eas honestly one of the biggest challenges. However, once finalised, development is typically less time consuming, since a majority of the work then becomes quick copy pasting.
- health The pandemic has not been easy, not for anyone. Battling health issues to get some code written on a day was quite hard. The erratic nature of my commit history is evidence of that.
- building solo One of the goals of Dash Mon[k]ey is education. While for the users of the project that refers to education of the financial tools, but for developer, ie me, it is also a way to concretely learn tech frameworks and tools and create boilerplates. Since the scope is huge, building solo is also naturally quite hard.