- “It isn’t transparent if you don’t know where & how to look.” - “It isn’t transparent if it requires a humongous effort to find, see, and verify the data.” - “It isn’t transparent if 99% of users are deterred from wanting to look.” - “If it isn’t transparent it can’t be trusted!”

Beltran Berrocal, Web3 Design Principles.

This article really struck a chord with me. Whenever I explain decentralized applications to friends who are curious, it is very hard for them to understand the value in it and how they differ from centralized apps, even more so if they are not in tech. In order to deliver on the blockchain’s promise of transparency and verifiability, we have to provide users with tools to understand what they are interacting with and how it is different to a centralized application. We mustn’t fall into the trap of hiding a dapp’s unique properties, thinking it will make users feel more comfortable and drive mass adoption. We must embrace these properties and present them in a way that makes users learn, understand, and value decentralization.

Beltran’s article proposes a tool that can help us move in the right direction, and this article introduces an implementation I’ve started to work on.

The Chain View

It all starts with a wrapper component for your dapp.

<ChainView />

This wrapper does a few things.

It checks that `web3` is loaded and that your account is unlocked. If it can’t find `web3` it will let you know. If it can’t find an account, maybe because your MetaMask is locked, it will let you know.

It wraps your app in custom `redux` provider so that the components talked about later in this article work.

It renders a togglable side panel for configuring different parts of `chainstrap`.