We thought of death as something that is never expected. Most of us don't even think about it. We wanted to create a simple mechanism that will send all digital assets to our family's wallet in case something bad happens to us and does it automagically. But then, we thought, another dapp for a user to remember to use... great. If only there was a way to plug this simple logic as an add-on to any dapp... the rest is history :)

What it does

It allows you to create a smart contract wallet as metamask account and use it with any dapp you want. It also has a "dead's man swich". If you stop using that account for any reason for a period of time (i.e. you lost the private key or you are dead), it will send all funds to the predefined wallet, automagically!

How we built it

We borrowed a delegated execution function from the Gnosis wallet, added some custom functionality for "dead's man switch" and other utility methods. Then we built a metamask plugin that deploys that smart contract wallet and creates a custom account inside metamask with deployed smart contract address as an account.

Challenges we ran into

Metamask plugins are in the pre-alpha stage so working on it was quite challenging. Huge shout out to Metamask team for helping us resolve more issues than I can count!

Accomplishments that we're proud of

We are able to run a smart contract wallet inside metamask and use it as it was a regular account. We support generic transactions which means you can go to any Dapp and simply use it, today! Smart contract metamask wallet with recovery that supports all dapps from day one!

What we learned

We have learned a lot about Metamask architecture and plugin design.

What's next for DC Wallet

This plugin is very unstable. We need to work closely with metamask and make the code much more secure and predictable. Also, it's a smart contract so we can keep adding features. Maybe a plugin structure for our metamask plugin :)

Built With

Share this project: