Improving the user experience of dapps on Ethereum is essential to onboarding the next million users to web3. Managing your wallet and its existing connection within the scope of these dapps is a necessity for every user. Let’s take a look at existing implementations within the ecosystem in order to amplify these user-centered design decisions.

Salief Lewis


Introduction

Part of the reason the development of the Ethereum ecosystem moves at such high speeds is because of the culture of composability that surrounds it. Building on top of existing protocols allows developers to iterate and experiment with ease. Composability is possible because of the standardization existent in smart contracts. All this to say, a degree of standardization, is essential, yet designing for Ethereum has no such standards.

I’ve recreated a few of my favorite connect wallet implementations in order to highlight features that I love and wish to see ubiquitously. I chose to recreate the artifacts instead of taking a screenshot from each dapp because I feel that the consistency stemming from my own designs allows a reader to more clearly comprehend the features I’m drawing attention to.

What is a wallet?

Ironically, I’m not actually going to answer that question. However, I do believe that dapps need to consider the experience of users who have yet to create an Ethereum wallet. A good place for this reference is within the wallet provider modal when a user is selecting which wallet they will use to connect to a dapp.

Credit: Hop Protocol

Credit: Hop Protocol

For that reason, including that question and a link to an appropriate resource on the wallet provider modal is integral. Additionally (although not pictured here), giving users the ability to suggest less popular wallets that have yet to be integrated with your dapp, is a wise way to promote competition and thus propel innovation.

Available Chains

As the Ethereum ecosystem grows, and more dapps get deployed on Layer 2 and other chains, it is important to communicate to your users if your protocol exists in multiple places. It should not fall on the user to know and remember which chains your dapp lives on.