Multi Sig Delegation Wallet

Multi Sig Delegation Wallet

A customize multisig wallet to manage your crypto assets with the option to require a predefined number of signature and where signers can delegate their power to other signers.

The problem Multi Sig Delegation Wallet solves

This is a multisig wallet with the added functionality of delegation where signers of a wallet can assign their voting rights to another signer.

  • Multi-Sig: Create a new wallet with multiple signers(members) with equal voting rights at the start.
  • Delegation: Signers can temporarily grant their voting rights to another signer, increasing the receivers voting weight.
  • Wallet Balance: Anyone (signer or not) can add balance to the wallet by sending crypto to its address.
  • Create Transaction: Any signer who has not delegated their rights can create a transaction (transfer tokens to some other wallet) but it will only execute once at least 51% of signers approve the transaction.
  • Any ERC20 Token: This wallet supports all ERC20 tokens and not just the native ones.
  • NFTs: This wallet can not only just store ERC20 tokens but ERC721 and ERC1155 as well.🤩

Challenges we ran into

Some of the challenges we ran into:

  • Contract from Scratch: We have written the Smart Contracts from scratch and this took a lot of time.
  • Integrating TheGraph and Covalent API: We are fetching on-chain data using both the graph and covalent APIs. Integrating them both in the backend to merge the data was a real-time consumer.
  • Unstopabble Domains: We integrated the UD's Reverse Resolution in our dapp and realized that users have to update their records multiple times even though it has already been updated.
  • EPNS: We faced issues while writing code for Channel Opt-in/Opt-out as the SDK by EPNS was not written in TS and the frontend framework was throwing a lot of errors.

Tech Stack

  • Unstopabble Domains: Integrated Login with Unstopabble Domains, Domain Resolution & Reverse Resolution in our dapp.
  • IPFS/Filecoin: Used NFT.Storage to store Signer's metadata, Wallet metadata & NFT metadata.
  • Covalent: Used Covalent APIs to fetch token metadata from the blockchain.

Discussion