Creating multisig transactions requires some way of sharing the transactions and signatures among the participants
At BroClan we have implemented a synchronization service to propagate this information, I propose separating this module and deploying it as an open API for all Multisig wallets to use freely.
This is the total amount allocated to Open Multisig Synchronization Service.
-
No
NA
By deploying an open API for multisig wallets and transactions we, as an ecosystem, gain 2 things.
1) Developers can integrate the API when they are creating a new multisig wallet
2) Users can cooperate and participate by using their own multisig software solution. This will allow users to pick the software that best fits them and seamlessly cooperate with everyone else.
The sinc accepts wallet descriptors, and it accepts transaction + signature bundles as inputs freely, this way transactions created by anyone that is not a member of the multisig are rejected instantly safeguarding users from fishing spam attacks.
For fetching transactions the API will request the connecting member sign a message proving they own the corresponding key, after verification is completed, an access token is given for future logins and all new transactions relevant to this key are promoted to him.
By having robust multisig infrastructure ,we will open the doors to larger and more serious investors.
By making the underline rails of the multisig wallet space open for all, we allow easier international cooperation since members can use software tailored to their own needs, including but not limited to language , accessibility, Hardware wallet support, cold storage, local data provider etc.
By the amount of multisig wallets adopting and integrating the service.
By how easy it is to integrate into a new product.
To make auditing the project state easier, and the outputs of the project more specific, it is separate into 4 distinct milestones, each with its own deliverables and workload.
1) Separate out the Sync service from the BroClan software and deploy it
2)Implement long polling for developers that do not want to use web sockets
3)Implement transaction sign-in for HD-Wallets
4)Create a JavaScript library for the client side integration
I have developed a Multisig Wallet for Cardano that is already operational.
This functionality has been implemented and tested.
I have over 10 years experience in Linux operation and experience operating a high performance pool since the first days fd Cardano, deploying and maintain a high reliability service is trivial to me.
Additionally I have 2 years of JavaScript/Nodejs/MongoDB experience and given that the MVP of the product is already completed.
The approach is feasible, it is proven by being already operational on BroClan.
The main goals of the project are:
1) To make developing a multisig wallet for Cardano easier
2) To allow cross play between users of different multisig Wallet software.
Milestone 1) Separate out the Sync service from the BroClan software and deploy it
Key Activities: setup new gitHub project, split the sync logic code of BroClan to the new project, deploy on a test environment, test using BroClan and direct calls
Timeline: 2 weeks
2)Implement long polling for developers that do not want to use web sockets
Key Activities: Implement alternative fetch and authentication stream using RestAPI endpoints instead of websockets, test and verify, deploy to production
Timeline: 1 weeks
3)Implement transaction sign-in for HD-Wallets
Key Activities: Setup alternative proses flow where a transaction is signed to authenticate a client, setup an indexer for the backend to find utxos and to submit the signed transactions.
Timeline: 1 week
4)Create a JavaScript library for the client side integration
Key Activities: Create new github repo, implement all the functionality required to use the API (Submit, authentication, polling, web sockets), create npm package, test with BroClan and manual usage, create Documentation page with full functionality overview.
Timeline: 2 weeks
Each milestone has its own specific deliverable.
1)Separate out the Sync service from the BroClan software and deploy it
Deliverable : A running API service accessible to all and a corresponding GitHub project with its code.
2)Implement long polling for developers that do not want to use web sockets
Deliverable : The existing API service with the added capability of being able to login and fetch using only https requests (no websockets)
3)Implement transaction sign-in for HD-Wallets
Deliverable: the ability's to login to the service using a hardware wallet, or a software wallet that does not support message sighing, add multitenancy support to avoid having users pay repeatedly every time they switch devices.
4)Create a JavaScript library for the client side integration
Deliverable: an npm package that you are able to easily install into your JavaScript project and the corresponding GitHub repository.
Infrastructure costs :
Given that we are working with very light data packages, and the multisig space is in its very early stage on Cardano, the following computational resources should be enough for the first 2 years of operation. Hopefully transaction sighed login should bring enough revenue to expand and maintain the service after the 2 years are completed.
MongoDB Atlas instance:
€9/month * 24 Months = €216
API Host node €20/month * 24 = €480
1)Separate out the Sync service from the BroClan software and deploy it
EE: 40 hours
2)Implement long polling for developers that do not want to use web sockets
EE: 40hours
3)Implement transaction sign-in for HD-Wallets
EE: 40 hours
4)Create a JavaScript library for the client side integration
EE: 40 hours
160Hours * €50/Hour = €8000
Total : €8,696 ~ 33300 ADA
The 1700 ADA is put aside for incentivizing Developers to use this product and unexpected expenses.
Given that a lot of the grunt work is already done the Cardano solution can get this up an running for a bit cheaper that it would be if it was to be build on demand.
By implementing this we allow cross play around multisig wallets.
And by having this available it means teams that are building multisig wallets from this point foreword will not need to build it by them self.
Leandros Holleman- Project manager, Developer and SysAdmin
I am a 1 man team and given the limited scope of the project I can handle it on my own.