Skip to content

Instantly share code, notes, and snippets.

@yemel
Last active August 29, 2015 14:05
Show Gist options
  • Save yemel/affd50061f93c2e617eb to your computer and use it in GitHub Desktop.
Save yemel/affd50061f93c2e617eb to your computer and use it in GitHub Desktop.
Copay v1.0

Copay v1.0

The present document describes the proposed changes to Copay.

Design

Be competitive. Win market share. Redesigned with a user-centered approach. Great proof-of-concept, move from the prototype stage to something usable.

Design aspects

Current problems

  • The need to remember several passwords (one peer wallet).
  • The need to administrate and securely store several backups (one peer wallet).
  • Only can receive notifications of activity from one wallet at a time.
  • Switching between wallets it's a PITA.
  • The lack of a proper transaction history or account balance report.
  • Unfriendly for no-technical people (Displays a lot of: IDs, Outputs/Inputs, Timestamps).
  • Encourages addresses reuse.

Design Goals

  • Friendly for human beings, no technical knowledge required.
  • Designed for personal AND shared wallets.
  • Offer relevant information about your money and how you spend it.

Proposed changes

  • Creates a user profile, with name and picture.
  • A user can have several wallets, to store personal and shared founds.
  • A user handles only one password.
  • A user manages only one backup file for his account (updated regularly)
  • Notifications works at the profile scope, across all wallets.
  • Hide addresses wherever it's possible and focus on the user cases.

Technical

Copay should be an open source wallet library, with pluggable implementations of backing services (e.g. storage, networking, blockchain). This library will be used by the web, desktop and mobile distributions of copay, but also by smart agents and third party software providing services like risk-analysis, two-factor authentication/signing, etc.

Copay API

  • Works on node and on the browser.
  • Asynchronous and event oriented interface (Promises/A+).
  • Modular and pluggable implementations.

View Code

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