Visually distinguish between on and off-chain data

Because users should always know which data points are public.

While many decentralized applications run their whole infrastructure within the blockchain, many dApps tie part of their flow to a centralized server. What does this mean for end users? What should they be aware of when it comes to data storage? This is a challenge UX Designers must keep in mind when working with dApps.

Traditionally, applications won’t inform a user when performing an action or registering how the data they enter in the application will be stored. But since storing data (fully / or hashed) on the chain means it will be immutable and public - one of the primary reasons for using the chain - a new approach is needed. In addition, since there is a cost associated with writing to the chain and processes will take longer, some dApps will store some part of the process off-chain. This hybrid approach introduces new challenges to user experience design. Below are some guidelines to keep in mind when designing for these use cases.

Give users control of their data and alert them of data points that will be traceable or permanent

Users should be alerted in advance if an action they are about to take in the dApp will be traceable or permanent.

Peepeth — a descentralized microblogging platform — alerts users during the onboarding process that some of their information will be public forever, their transactions will be traceable and their account copy will be permanently added to the Blockchain.

Bake warnings in-context during the user’s flow.

datum — a data marketplace powered by blockchain — allows users to earn money by sharing data from social networks, wearables or smart home IoT devices securely and anonymously.

Education around how data is stored and shared in the dApp is presented upfront in the marketing site. In addition, it’s included in-context during in-app transactions to help reduce user fear & build trust.

Localtrail, a concept for a supply chain blockchain app to track NYC produce from farm to restaurant, abstracts away the blockchain as much as possible as it does not help their primary users (non-technical senior farmers) carry out main tasks.

In the farmers sign-up flow we don’t see the hash of the blockchain transaction, the participants’ address, the block ID containing his/her transaction, the link to the block in which the transaction is being mined, or even acknowledgement that the transaction data was stored on the blockchain.

While this makes for a smooth UX, knowledge of the fact that the collected information will be forever traceable should be provided both in-context before confirming the action, and as consolidated information accessible in the menu.

Provide a clear path to consolidated information.

Users should be able to review consolidated information regarding what’s traceable from the actions they carried in the dApp.

Cryptokitties —a blockchain based virtual game that allows players to purchase, collect, breed and sell various types of virtual cats— does that by providing access to all in-app transactions .

Balance Manager— a wallet for all of the world’s currencies and tokens. — provides a quick path to a breakdown of all transactions with ERC-20 tokens, indicating asset type, transaction status, quantity spent and equivalent $ price at the moment, and total cost.

Preserve users’ identity data by keeping it off-chain.

Users should have control over their identity data and have the ability to choose whether they want to identify themselves online or remain fully anonymous.

It’s risky to leave it up to users to fully understand the implications of storing data in the blockchain and assume they won’t make mistakes when it comes to managing it or carry out actions that can’t be undone.

It’s also unreasonable to assume that blockchain systems are not going to be at risk of being hacked/exposed in the future. That’s why it’s better to hope for the best but plan for the worst when it comes to saving users’ personal identity credentials, and store these off-chain.

uPort — an open identity system for the decentralized web — aims to minimize users’ digital footprint by storing users data off-chain in a user-managed vault that can be hosted locally on a smartphone, on a private identity hub, or both. In addition, the uPort Wallet application gives complete control to users over their identity data by providing a simple consent interface for dapps to request private data from users, and for users to approve or reject this request.