Inspiration

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.

Source code

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.

Built With

Share this project:

Updates