Unified Wallet And Dapp Interaction - Beacon
The user experience of Web3 applications is not on the same level as their Web2 counterparts. The entry hurdle for new users to be onboarded to decentralized applications (dapps) has been cited as one of the major requirements towards acceleration of mass user adoption. Setting up a wallet, wanting to interact with a new application and realizing that the flow to connect to the application is either non-existent or completely different, is immensely frustrating for users. This frustration leads to users drop off, before even interacting with the application.
Challenge
The user experience for wallet and dapp interaction in the Polkadot ecosystem varies from application to application. Due to the nature of Polkadot’s technology stack with Parachains and agile coretime in the near future, the challenge for Polkadot-related project is somewhat amplified when it comes to support for wallets and their interaction capabilities.
Parachains have the ability to expose multiple environments to end-users: native Polkadot SDK, EVM, WASM and others.
In the beginning PolkadotJS saw the creation of a simplified browser extension wallet, that allowed users to quickly onboard to a completely new technology and in extension explore the state of the various chains with the PolkadotJS App and interact with them. PolkadotJS is a powerful developer tool and is perfect for newly bootstrapped Polkadot SDK chains.
Unfortunately, some public perception stuck and even though there are amazing wallets like Talisman , SubWallet , Nova Wallet and others, a subset of users still view the PolkadotJS Extension and App as the go-to-wallet and criticize the user experience.
Ambition
Wallet interaction should be familiar for users and provide a user experience that is replicated across all applications in the Polkadot ecosystem.
- Users can easily connect to an application with their favorite wallets, the same user experience is provided for wallets such as:
Browser extensions, Mobile wallets, Desktop wallets, Web wallets, Hardware wallets
- The user-facing interface is unified for all environments supported in the Polkadot ecosystem, including: Polkadot SDK chains, Polkadot SDK chains with an EVM environment, Polkadot SDK chains with a WASM environment
- Application developers have one Typescript SDK that they can easily integrate into their dapps with a few lines of code.
- Applications developers can configure their integration to their need, change the end-user interface e.g., featured different wallets, utilized dark mode and much more.
- The SDK is compatible with multiple transport layers, the layers responsible for passing messages between the application and the wallet, supported are: Browser Extension Message Passing, Beacon peer-to-peer (p2p) network, WalletConnect
Feedback
We would love to get your feedback on this proposal.
Find more details in the full proposal
Hi, thanks for the proposal. I've a hard time understanding what you really want to solve. Starting from the preamble: users being frustrated "realizing that the flow to connect to the application is either non-existent or completely different". What do you mean by non-existent? A Dapp without a connect button? I wonder what studies you've made to come to this conclusion. The standard for Dapp connection in Polkadot isn't perfect, but I don't think it's bad either, WalletConnect is also perfectly working.
It sounds like you are trying to mimick what wagmi does as a front-end library, but shoehorning in your own new standard (Beacon p2p? yet another standard, why?) and wallet (Airgap right?). Rather than building yet another one, why not help libs like Polkadot onboard: https://github.com/paritytech/polkadot-onboard or Polkadot cloud https://polkadot.cloud/extensions-provider that was already supported by the treasury and seem less biased as they have no wallet organization behind?