Skip to content

Design a variety of tx approval screen options #329

@danfinlay

Description

@danfinlay

The tx approval screen is a really open ended design challenge, so I'm going to try to formally pose the problem here so new designers can hop in and take their shots.

The Current Behavior

When a Dapp requests that a user signs a transaction to the blockchain, we use a Chrome notification to indicate that transaction to the user.

We recently made a technical breakthrough that allows us to inject arbitrary styled HTML into a portion of the chrome notification usually reserved for an image. Here is our current notification, note it renders the bare minimum text.

Notification version

screen shot 2016-06-26 at 10 49 55 am

If you dismiss this (by pressing the top x), the next time you open MetaMask, you will also be prompted with the transaction. Here's our current view, note it's actually rendered with the same template, just different dimensions:

Extension version

pasted_image_at_2016_06_24_01_19_pm_480

The basic information we want to display

  • The sender account
  • The receiver account
  • The value in ether sent
  • The maximum transaction cost (gas costs)
  • Warnings of potentially malicious contracts
  • Any other efficient visual indications that can be conceived of.

The Challenge

What's our best efficient and aesthetic way to represent a pending transaction? This could be a vote in a democracy, or sending a token (and for standard contract types, we very well might identify those transaction types and visually represent those types of interactions!)

Chrome Notification Constraints

We're using Chrome Rich Notifications, and so we're restricted to the flexibility they provide.

chrome-constraints

  • Fig A: One icon in the top-left, can be styled however we like, but it helps to show who is sending the notification. (80x80px)
  • Fig B: This mandatory block can only have up to four lines of unstyled text. (280x80px)
  • Fig C: An optional block that can be styled as we please with non-interactive HTML. (360x240px)
  • Fig D: Up to two buttons at the bottom that can have text on them.

Current ideas

Addresses are normally 32-character hex strings, but those are both ugly and users are unlikely to read them, so we've been experimenting with visual representations of long numbers, including how we might click them to copy the full address. Feel free to mock up your own!

00-identicon
01-identicon

Once we have efficiently narrow visual account representations, we can start using more horizontal space, like maybe an arrow pointing between accounts to the right.

Another strange & ambitions concept is to show a graph of the contracts that get touched by that transaction, pictured in the below image, below the blue line:

df9d1313-2f80-41f5-92c5-f45116e7cbe1-1-2048x1536-oriented

We could also try to use the concept of "attestations", maybe showing the identity of someone who vouches for this contract's security. It's easier to read that someone approves of something than to understand why you should trust it yourself, which is honestly probably beyond the scope of a tx notification.

Anyways, I hope this inspires some fresh ideas, the Ethereum ecosystem needs them all!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions