Non-custodial walletless onboarding for Flow DApps

Non-custodial walletless onboarding for Flow DApps

We developed a prototype FCL plugin that enables user onboarding to Flow DApps with social accounts in a non-custodial way.

The problem Non-custodial walletless onboarding for Flow DApps solves

This project enhances the walletles hybrid custody idea presented by Flow.
User logs in the DApp via social account which creates a DApp specific non-custodial wallet for him using Torus/web3auth protocol embedded in DApp UI
Keeps the best UX practices from Flow’s Hybrid custody solution with higher security
Easy to deploy for any DApp using FCL (almost all Flow DApps use it)
Keeps the best dev practices from FCL for the DApp builders
Mitigates DApp regulatory risks and responsibilities that may result from using a custodial walletless solution.
We implemented this for flow example app Kitty Items

Challenges we ran into

We had issues with running own instance of Kitty Items DApp on testnet and we had to spend a lot of time optimizing it.

Another issue we encountered was how to display the different social account logins to user. For this, we used the native FCL autodiscovery functionality and basically hacked in 4 social accounts as wallet providers. In production version this would require a single social accounts login button on the wallet selection modal, which would further expand into all social login options.

Other than that, the implementation was pretty straightforward.

Discussion