Skip to content

Design Session 8.10.2018 #3

Description

@jamaalm

TLDR: The goal of this post is to get feedback on our first user-flow models on synchronous and asynchronous transactions. This will help move our wallet design forward. We’re specifically looking for feedback on:

Thanks everyone for your help and engagement. We’re excited to move the project forward.

Schedule Note: We'll get into a regular posting rhythm within the next week or so.


@gavinmcdermott and I have been working on a user interaction model for the Grin wallet. We’re focused on designing a desktop wallet for the “next 10%” of users. These people may have a light technical understanding but are not necessarily developers, and they’re people that may have completed a cryptocurrency transaction in the past.

Early Design Principles

1. Abstract away complexity. Grin transactions are actually quite complex compared to Bitcoin transactions, but most users don’t need to be exposed to the details.
2. Design for the next 10% of users. Enable others that may not be as technically competent to transact in easy, seamless ways that are still trust-less.

Practical Assumptions (that impact UX)

1. Most transactions will happen asynchronously. (Implications: this will require an external transaction relayer service)
2. Accepting inbound transactions should happen automatically.

The user-flow diagrams (below) surface the minimum required user inputted information and actions to complete a transaction. There’s a lot of assumptions we’ve made here and many questions we have. We'd appreciate your feedback and questions.

Transaction 1: Synchronous transactions. Both sender and receivers wallets are online.

transaction 1

Transaction 2: Asynchronous transactions.

We believe most transactions will happen this way because sender and receiver may not be online at the same time, or users don’t have access to static IP addresses, and firewalls or secure networks getting in the way, etc. All that is to say, asynchronous transactions require a relayer between the sender and receiver.

transaction 2

Questions

  1. Are there any other types of transactions that we should consider in the design?
  2. For the two transactions we’ve illustrated, are some of our assumptions correct? Are we any data at any step that a user would be required to input?
  3. Are our assumptions correct? Where are there gaps in our understanding?
  4. The fact that there are relayers required for asynchronous transactions, makes us think now is the time to settle on a standard for relayers? Should we set a standard for something like a Grin Relay Interface (GRI)?
    • How can we engage in setting this standard?
    • There are important user-centered questions for the GRI, such as:
      • When a user opens their wallets, can it poll relayer for any partially completed transaction sent from that wallet that are still in a pending state?
      • Can a user cancel a pending transaction that’s sitting at the relayer?
      • Can (and should) a wallet interface with many relayers?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions