Git Product home page Git Product logo

dapp-usability-checklist's Introduction

dapp-usability-checklist

A dapp usability checklist

This is a checklist of usability items that dapp product teams can use as a quick reference when designing and building their products. This is not meant to be a list of requirements. Your dapp may not require certain items. This is also not an exhaustive list. Please send pull requests with contributions!

Onboarding Support

  • If you decide to not support mobile browsers, ensure you are checking for this and warning users of mobile browsers
  • Warn the user when they are in an unsupported browser
  • Warn the user when they do not have a wallet -- e.g. MetaMask -- installed
  • Tell the user they need to unlock their wallet
  • Tell the user they need to authorize their wallet (EIP-1102)
  • Make sure user is on the right network
  • Make sure the user has Ether

Transaction Support

  • Notify the user if there is a transaction in MetaMask's queue waiting for confirmation or rejection
  • Notify the user if they reject the transaction from the MetaMask window
  • Warn the user when it appears they are about to execute a duplicate transaction
  • Warn on insufficient funds

Transaction Notifications

  • Notify a user when a transaction is pending
  • Notify a user when a transaction has succeeded
  • Notify a user when a transaction has failed
  • Notify a user when a transaction is taking longer than expected

Gas Estimation

  • Give users a choice in plain english for what their gas price should be in terms of how long the transaction will take
  • Warn users if their gas is set much higher than needed (i.e. helping prevent against a developer bug that adds a few zeros to the gas price by accident, for example)
  • Warn users if their gas is set super low during times of high network congestion (i.e. so that future, higher nonce, transactions are not blocked)

Error Handling

  • Catch & parse MetaMask errors, and alert users what is happening in easy to understand language

Mobile Support

  • If your dapp supports mobile, make sure you don't tell people to install MetaMask

Network Status

  • Tell users the overall state of the network (e.g. red/yellow/green notificaton)

Resources

Contributions

Have ideas? Please send us a pull request!

dapp-usability-checklist's People

Contributors

cmeisl avatar ryana avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.