Dear Ergo Community,
In this post, I would like to explain a project on top of Ergo’s Distributed Signatures capability. This idea has arisen from the discussion here on the forum by Kushti.
It was cool to see a working example of distributed signatures But the process to sign such transactions collectively is somehow complex for non-technical people and even tedious for technical ones. The aim of this project is to make this process as user-friendly and automated as possible to make it usable by everyone.
After some discussion with Kushti over email on what is potentially needed, I started developing. Now after several weeks, the code is almost ready for a demo.
This project contains two separate apps, server, and client.
The server is accessible by everyone who can propose ideas and ask for funds from a team.
Proposal page of the server, anyone can propose ideas by creating a proposal for a specific team
On the other hand, every team member has to set up the client app which will be in charge of interacting with their secret, node, explorer, and server to create the necessary proofs for approved proposals.
Client app interface, members can approve or reject each proposal
If a proposal is marked as fully approved (enough approvals have been collected based on the team’s signature), then client apps will generate necessary proofs and transactions in the background without needing any intervention by members.
some logs in client app for generating tx, simulating and assembling the final tx
Proposing entities can follow their proposal’s status in the server web pages.
proposal page of Ergo Foundation team, one proposal is approved and paid automatically by client apps
The above pictures are real processes of approving one proposal which was done in literally a few seconds. The generated tx can be found here which is an example of 4-out-of-6 threshold signature.
The code is not fully complete and needs improving but I welcome everyone for testing. You can find the server app here, and the client app here.
I have tried to keep the app and the whole process as simple and easy-to-use as possible to make it practical for real-world scenarios. I appreciate any suggestions on how to improve.