Please describe your proposed solution.
We are developing a basic Web3 Single Sign-On (SSO): a service that will enable Cardano dApps to onboard Web2 users just by logging in using Google, Facebook and other social account login. The service creates an invisible crypto wallet in the background without the user even knowing about it. With this Catalyst proposal, we will be able to enhance the product with the features needed for a secure and seamless Web2-like user experience.
We validated our product with major Cardano dApps targeting the mass market and their feedback was extremely positive.
How does this help Cardano?
It allows any Web2, non-crypto, beginner user (who doesn’t have a wallet and doesn’t understand crypto) to onboard into a Cardano dApp in seconds without the hassle of setting up a crypto wallet.
By removing these barriers to entry, we make Cardano dApps instantly accessible to the mass market and make Cardano their gateway to Web3. Once the user gets familiar with the Web3 world, they can easily migrate to a typical crypto wallet for more advanced functionalities.
How NuFi Web3 SSO works
- A user navigates to a dApp and chooses a social account to log in with (or gets a one-time code by email)
- When the user logs in, a non-custodial wallet is created for them invisibly behind the scenes (using Web3Auth and NuFi wallet technology) and the user is connected to the dApp in a matter of seconds
- Once connected, the user can confirm dApp transactions, manage assets, swap tokens and buy ADA using a wallet widget embedded inside the dApp
Plus: a dApp can directly sell digital assets to the user using a fiat on-ramp or fiat checkout and the assets are delivered to the user's NuFi Web3 SSO wallet where they are immediately visible in the widget.
It’s fully frictionless (nothing to install or write down) so the onboarding process takes less than 10 seconds and doesn’t include any crypto terminology (so a user may not even know they’re using the blockchain).
About the embedded SSO wallet
Web3 SSO embeds a wallet widget directly inside the dApp. From this widget, a user can approve dApp transactions (the widget will pop up automatically to prompt the user, and every transaction initiated by the dApp has to be confirmed). The SSO wallet widget is embedded in the dApp but the dApp does not have access to the private keys representing the SSO wallet; a user’s complete private keys are stored only on the user's device and only for the duration of the session.
NuFi Web3 SSO Beta Version – Coming January 2024 (self-funded)
We first proposed a Single Sign-On solution in Project Catalyst Fund10 but we didn’t receive funding. However, because of the overwhelmingly positive response from Cardano projects, we started developing the solution ourselves. We will begin releasing early versions of NuFi Web3 SSO for testing in January 2024.
In the beta version, only core functionalities are implemented in the wallet widget:
- Show user’s balances of ADA and Cardano tokens (fungible and non-fungible)
- NFT gallery
- Support dApp transactions confirmation flow
- See own Cardano address (and copy to clipboard)
- Change connected Account (if the user has more than one account, this option is disabled by default)
The rest of the non- functionalities will be available through the full NuFi web wallet (e.g. if the user clicks the “Swap” button in the widget, it will launch NuFi web wallet in a new web browser tab, log the user in automatically, and redirect to the appropriate section of the wallet).
You can see a working prototype in the video below, and you can try the prototype yourself here.
<https://www.youtube.com/watch?v=5cq79MUhDuY>What is this Catalyst Fund11 proposal for?
We are seeking Project Catalyst funding to enhance NuFi Web3 SSO from a beta version to a full product with a broad range of functionalities.
This update will embed key functionality so that a user – directly from whatever dApp they are using and without needing to leave the page – can swap Cardano tokens, purchase ADA, manage assets and more directly in the wallet widget.
We’ll also improve security (by enabling two-factor authentication and seed phrase backup), and allow dApps to customize the NuFi SSO widget look and feel to match the design of the dApp.
V2 FEATURES:
Add new functionalities inside the wallet widget:
- Cardano DEX aggregator (e.g. DexHunter), Fiat on-ramp (buy ADA with card)
- Settings, Transaction details/history and/or Session history (complete or within session)
- Transaction status tracking and presenting, non-blocking transactions
<u>Impact</u>: a user can swap Cardano tokens, manage assets and buy ADA without leaving the dApp’s page
Improve security:
- Seed phrase export (for backing up or migrating a wallet; the user will be able to restore their SSO wallet in any Cardano wallet using a seed phrase)
<u>Impact</u>: seed phrase backup ensures the wallet can always be restored and funds are always recoverable
Allow dApps to customize the embedded wallet widget (via a dashboard):
- Customize the wallet widget appearance (preset schemes or custom font/colors)
- Choose the position of the wallet widget, and if it should auto-hide or not
- Add a project’s logo in the wallet widget
- Pin (i.e. prioritize) a project’s token or NFT in the token list/NFT gallery so it is shown first
- Provide basic usage statistics for the dApp
<u>Impact</u>: Cardano projects will be able to customize their integration to provide the most seamless UX possible
Complete customization and own widget server instance; projects with very specific requirements (games, perpetual dexes, etc) can ask for full customization of the widget. For example, they can completely change the UI, add buttons directly executing specific smart contract transactions and more.
Mobile optimization of the wallet widget to enable the use of NuFi Web3 SSO in mobile-friendly dApps.
Security
NuFi Web3 SSO is non-custodial and utilizes state-of-the-art technology:
- Web3auth: a non-custodial service that provides social account/email login options, manages authentication, and securely stores a user’s private key using distributed decentralized key storage.
- Distributed, decentralized key storage: The user’s private key is split into shards and stored securely by nodes of a decentralized Torus network operated by Web3Auth. When the user authenticates to nodes by logging in, the private key shards are fetched to the user’s device, where they are re-assembled into a complete private key (which never leaves the user’s device and isn’t ever shared with the dApp). Web3Auth’s decentralized network nodes operate the Distributed Key Generation, Proactive Secret Sharing and Key Assignment protocol, and consist of geographically distributed and diverse business institutions:
- 2FA (coming in later version): The user can enable Two-Factor Authentication (2FA) to add an extra layer of security to their wallet. With this layer enabled, the security of the wallet is higher than the security of a standard seed phrase wallet.
Risks
<u>The risk</u>: User loses access to the social or email account associated with their wallet.
<u>Risk mitigation</u>: NuFi has developed functionality that extracts the seed phrase of an SSO wallet and gives a user the option to download an encrypted backup file or write down the seed phrase to store offline. With this, a user can restore their wallet in the event that they lose access to the social/email account associated with it. Furthermore, the seed phrase can be used to restore the wallet into a non-custodial Cardano wallet when the user is ready to use a conventional mnemonic wallet.
<u>The risk</u>: Web3auth service or the underlying Torus decentralized cryptographic material storage network gets compromised.
<u>Risk mitigation</u>: We will be prompting users who cross an asset value threshold to activate the seed phrase backup if they haven't already (and, in later versions, enable 2FA protection). If the user backs up the SSO wallet's seed phrase before the Web3Auth service is compromised, the wallet is safe.
<u>The risk</u>: NuFi wallet is compromised.
<u>Risk mitigation</u>: We have a high bar of security measures in place to prevent this. This includes thorough code reviews, an internal audit of critical wallet components, a rigorous release process, careful selection and regular review of code dependencies. We are strong advocates of hardware wallets and therefore we would prompt users with high balances to switch to a regular NuFi wallet combined with Ledger or Trezor.
How can a dApp start using NuFi Web3 SSO?
A Cardano dApp with existing CIP-30 support can integrate the NuFi Web3 SSO SDK with a few hours of development work.
The cost of using the relay
NuFi Web3 SSO will be free to use up to a certain number of monthly users. The cost of the service should be not more expensive than 0.1$ per monthly active user. We expect our main revenues to be from in-app crypto-to-crypto swaps and fiat on-ramp (for which we receive a small percentage of the provider’s service fee as commission).