Best Practices in Blockchain App UX Design
Tags: blockchain, programming, javascript, beginners
Published: 2020-08-03 12:39:54

Communication, communication, communication. Blockchain introduces new challenges that can either make users feel empowered and educated or defeated and alienated. The difference between empowerment and defeat can be boiled down to two main factors: communicating with users and hiding unnecessary blockchain jargon. We've compiled a list of best practices to help craft great user experiences to leave users feeling educated and empowered.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/tzk9tszujpvwkluqszhq.png)

#1. Don't make users pay transaction fees
**Do ‒ Have the app pay gas fees for transactions**

Not only are gas fees difficult for users to understand, but paying for transactions also requires users to have cryptocurrency such as ETH, which is not realistic for most mainstream users.

**Don't ‒ Clutter the UI with gas fee-related warts**

In most applications, gas fees should be tucked away, but still accessible. An example of this might be providing gas fee-related information under an "Advanced" tab.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/01y9x7j5yqgo079swbky.png)

#2. Set user expectations
**Do ‒ Set user expectations that their transaction could fail**

On a blockchain, transactions can be valid and allowed, but still fail. Setting expectations and communicating to users that their desired action is "Being Submitted" rather than "Successful" is an important distinction that can hep avoid frustration in the case that the transaction does fail.

**Don't ‒ Assume that every submitted transaction will complete**

Assuming every transaction will complete can lead to frustration. No one likes to be told "Success!" just to be told "Failed" moments later. Communicate accurately and don't assume that every transaction is going to be a success.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/2tskq0xx7jdym6myeev5.png)

#3. Simplify the UI
**Do ‒ Make the interface super simple**

For applications targeting mainstream users, try to keep new controls, information, and options to a minimum. Oftentimes blockchain applications will include information that, while technical can be provided, is absolutely unnecessary. Unnecessary information in blockchain can alienate users and make them feel uncomfortable.

**Don't ‒ Make the user think about how to use the interface**

Create intuitive applications that model existing paradigms that users are already accustomed to. Just because you can include the Ethereum address of a user doesn't mean you should! New is good, but consider introducing only one or two new elements ‒ too many can create confusion and frustration.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/gh61z3plw9pyq2tishc6.png)

#4. Show clear transaction results
**Do ‒ Provide a clear interface for reporting transaction results**

People want to feel informed. Providing a clear interface where users can see the progress of a transaction helps ease the mind and make the user feel comfortable.

**Don't ‒ Intersperse transaction results where the user might miss them**

Hiding transaction results or placing them in unsuspecting parts of the UI not only feels frustrating, it also introduces a level of ambiguity that is particularly frustrating, given that transactions are immutable. When there's no "Undo" button, the stakes for knowing the progress of a given transaction are much higher ‒ make it easy for users to find the details.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/76aus52c5hr0zf7vbsjc.png)

#5. Warn users about context changes
**Do ‒ Warn the user if the app context or account has changed**

Context changes can be difficult to communicate, especially when so much happens on the client-side with blockchain apps. Make sure that you have alerts and other ways of communicating to users when the context changes. Again, this goes back to keeping the user informed.

**Don't ‒ Continue a workflow if the app context or account changes**

Navigating blockchain can be difficult in-and-of itself. Communicate context changes and make sure to confirm that users want to continue with a given workflow in the instance of a context or account change.

___

Blockchain can be confusing for mainstream users. Following best practices to simplify the user experience boils down to effective communication with users and hiding unnecessary blockchain jargon.

‍

> *Blockchain app development can be confusing, using great tools can make it easier. These best practices (and more!) are built into [DappStarter](https://www.decentology.com/dappstarter), [Decentology](https://www.decentology.com/)'s full-stack blockchain application generator.*

> *More best practices for blockchain app development (3 part series):*
* *[Smart Contract Best Practices](https://www.decentology.com/guides-and-tutorials/smart-contract-dos-and-donts)*
* *[Blockchain App UX Best Practices](https://www.decentology.com/guides-and-tutorials/blockchain-app-ux-best-practices)*
* *[Tips to Avoid Costly Mistakes in Blockchain App Development] (https://www.decentology.com/guides-and-tutorials/5-tips-for-blockchain-app-development)*