Smart Contract Wallets ๐Ÿ‘‰ Migration / Interoperability

I have been thinking a lot about what the future of wallets look like and how we streamline the on-boarding of new users and Iโ€™ve come up with a few thoughts. I would like to start a dialogue with everyone and see how others in the space see the future. I also feel like there is a lot of fragmented and duplicate work is going on right now and it would be great to consolidate our efforts a bit.

I believe smart contract wallets will eventually account for the majority of wallets in use. I think Universal Login is a great example of how weโ€™ll use smart contract wallets in the future. I foresee smart contract wallets becoming what we know today as our bank account and it will be ubiquitous with storing money.

Weโ€™re a long way from that and I think there are a couple core issues that need to be overcome to reach this.

First off, on-boarding needs to be easy. It is unrealistic to get new users into dapps and expect them to signup for the dapp and a wallet at this time. The dapp should be able to create a contract wallet for their user and store an ephemeral key on their device. Once the user decides its time to upgrade to a real wallet, that contract should either be able to plug directly into a real wallet interface or it should be able to be migrated to a more fully featured contract like Gnosis Safe.

All wallet contracts should implement a core set of features. Every dapp on the planet should be able to interact with any smart contract wallet, regardless of what extra modules / feature are included. In this same vein, smart contract wallets should be mobile. If one day the wallet provider I use does something I donโ€™t like, I should be able to pack up my contract and move everything over to a different provider with little friction. I imagine it like being able to move all your money / personal info / history from one bank to another at the press of a button.

In order to address the issues Iโ€™ve raised, it seems like there are two avenues we can take: migrations & interoperability. Iโ€™d argue we need both.

Interoperability (between dapps and wallet UIs) is the ideal route to take, because it doesnโ€™t rely on issuing a new contract wallet. However, I think that if this is the only route we explore we will end up in a corner by ourselves with a bunch of modules. I believe that also setting a standard for migrating between contract wallets early will avoid this and allow development to continue and improve the experience without restrictions.

This was a bit of a brain dump, I look forward to hearing what some others in this space are thinking! Please direct me to any existing EIPs or discussions that may be relevant.

I totally agree with you! everything comes back to the idea of actor/asset model. We are going to publish in a couple of days an article about moving from a crypto-centric model to user-centric framework for blockchains.

Can you elaborate on the actor/asset model? And who is publishing this article?

it is related to this topic:

I can invite you to the draft document if you want?

You can shoot me an email at: antoine AT