Design Problems in the Blockchain Space

One of the reasons blockchain applications have been notoriously difficult to use is because the industry has been led by engineers whose primary focus has been security.

If the technology is to be more widely adopted then we’re going to have to find a balance between the blockchain’s machine requirements and it’s human needs.

Some things we could do to make blockchain applications more intuitive are to stay away from using jargon, providing guidance while people are using applications, ensuring constant feedback during use, and calling attention to one-way doors.

Staying Away From Jargon

Let’s make sure people don’t have to know the lingo to be able to use our apps. The focus should always be on what something lets you do and not how it works.

The danger here is an oversimplification. When we must communicate something specific and complicated, let’s rely on analogies or concepts that people are already familiar with.

Providing Guidance

Almost everyone is “new” to the blockchain so a well-designed application could weave educational information into its normal interactions. This means explaining, in a concise and interesting way, why a user is doing something while she is doing it.

The danger here is information overload, so the idea is to only show people what they need as they need it. Once people learn how to do new things and they’ve engaged with the application then we can progressively reveal more information once it becomes contextually relevant.

Ensuring Constant Feedback

Transactions on the blockchain take much longer than they do in other applications. The expectation of immediacy needs to be managed and people must be afforded clear information on their status and progress during transactions.

The danger here is losing context. I’d weave snippets of information into the interface if it helps, I’ll use temporary pop-ups if I have to, as long as the user always knows what is happening in the moment, what just happened, and what will happen next.

Call Attention to one-way doors

Blockchain transactions are irreversible once they’ve been validated by the network . It is our responsibility to anticipate mistakes and highlight these junctures so that people only ever do what they have intended to.

There are three major types of one-way doors that should be obvious to everyone. Things that are irreversible, things that involve money, and things that could potentially identify a user.

At no point should a user ask themselves if something is safe to do. The interface should have answers before the question comes up.

I understand that these 4 principles are quite generic and apply non-blockchain applications as well. If you are after a more prescriptive list of blockchain specific todo’s checkout Beltans cheatsheet of Web3 Design Principles.

I also think it’s also worth checking out Kevin Fleming’s ‘Designing for Blockchain’article on medium. It’s a great read. And, yes, I stole the one-way doors thing from Kevin. Sorry Kevin.


Now read this

React Component Defaults

I’m giving up stateless functional components for a while. They’re super nice but they’re not worth the refactor when you need a lifecycle method. You could use recompose, which is also super nice, but completely avoidable. Sticking to... Continue →