A Serverless Discord bot for DAO treasury management. The funds are managed using Enzyme's infrastructure.
A tool to manage the Treasury of a DAO through Discord. The tool's capabilities are the following:
The infrastructure is pretty much all based on AWS Lambda, and so is fully serverless.
I took this project I had built for a previous Gitcoin hackathon as the starting point: https://github.com/EsteFilipe/discord-ethereum-authentication. It's a bot that gives a Discord user a specific role after they successfully authenticate their Ethereum address. The authentication is done through a nonce sent by the backend to the user, which then the user signs using his address key, and finally the backend verifies if the signature is valid for that nonce.
On top of that, for the authentication here I added fetching data from Enzyme to verify that the authenticated address owns shares from the target Enzyme Finance's vault, and whether the address is, or not, the owner of the vault.
Some more technologies I've used:
For the creation of the Discord slash commands I used slash-create.
For the authentication front-end I used scaffold-eth.
The DB to store the authenticated users' data is DynamoDB.
All the calculations and data fetching is done using AWS Lambda (with node.js), and the infrastructure templates were built using AWS SAM.
Scheduling of the poll resolution was done using AWS EventBridge.