As ICON is growing, more and more teams from all over the world are joining. ICON is currently lacking of a way to manage funds with a remote team in a safely and trustless manner. ICONSafe is the first multisig wallet SCORE and GUI that solves this issue.
What it does
ICONSafe is a team wallet with advanced user managment. It is able to track tokens balance over time which is a unique feature that no other service provides. It is also able to send and receive any type of transactions. All outgoing transactions require confirmations from the wallet owners based on a vote before being executed. An outgoing transaction may contain multiple sub-transactions which are executed at the same time, so it is possible to create complex operations suiting for all type of situations.
How I built it
The SCORE design is inspired from the ICON Project Multisig Wallet, I rewrote everything from scratch in order to use SCORELib and add many features such as balance tracking and token management, wallet owner advanced management and multi-subtx transactions execution.
The GUI code is based on the Gnosis Safe code, it uses the React framework in order to provide the best UI experience.
Challenges I ran into
The development of this tool led to an interesting discussion about context rollback in SCORE, which has been solved thanks to the help of the ICON devs community.
Accomplishments that I'm proud of
The ICONSafe UI is the most beautiful UI I made so far, and the ICONSafe SCORE the most advanced SCORE I developed. This tool is being polished so we can use it internally in the ICONation team.
What I learned
This project helped to improve SCORELib, and also my SCORE and React programming skill.
What's next for ICONSafe
More ICONSafe Apps needs to be developed in order to easying the transaction building process. Right now, there is only the Transaction Builder App. In that app, the user needs to input the contract address, and call the method with the correct parameters. It may be a little be scary for non-technical users, so a dedicated App integrated in ICONSafe for a specific contract (e.g. IISS) will be welcomed.
The Address Book is not yet ready and will help building and reading the transactions.
More Wallet providers (Ledger and Magic in priority) needs to be implemented.
Yeouido Demo : https://iconsafe.net
Instructions for the demo
Open https://iconsafe.net , and click on "Open Safe".
Here's the demo Safe Contract : cxcce6d7105c5b36b1d4cdc47cf93d86cfb317d0cf
Import the following private key to ICONex (connected to Yeouido): edfedfaaf6e041eb3f33f083bc1e9b5f876c144b9a31cd44075c376c24b4f33f
Connect to this wallet in ICONSafe - this wallet is pre-configured to be an owner of the safe.
Feel free to do anything! Add, modify, remove owners and change safe settings, read and write transactions.