Greymass Roadmap - Anchor Wallet

This post will serve as a wiki-style roadmap on the efforts by Greymass to build Anchor, a desktop and mobile wallet for EOSIO blockchains. Anchor is one aspect of our overall roadmap, which can be found here:

While this content of each of these aspects will be technical, it is our hope that it illustrates the inner working of our team and the contributions we have made while advancing this new product and its associated technologies.


Anchor Wallet - who, what, why?

What is Anchor? Anchor is an EOSIO wallet and authenticator made available for both desktop computers and mobile devices. It offers a secure place for EOSIO users to create and store the keys to their accounts, and the ability to securely interact with 3rd party applications.

Why is Anchor needed? Across the entire EOSIO ecosystem there is a need for a unified signature provider (aka wallet) which is easy enough for any user and is something they can trust to protect their security as well as identity. Anchor strives to meet these needs and offer an experience that helps drive adoption of all EOSIO blockchains.

Who is behind the creation of Anchor?: Members of the Greymass team started this project in mid 2018 under the generic name “eos-voter”, and have since evolved the brand into what you see today as Anchor Wallet. Development of this product includes effort from @aaron, @dafuga, and @johan from the Greymass team. Anchor also has two designers (Nick and Max) who are involved in developing the branding, design, and creation of all things visual.

Progress and Roadmap for Anchor Wallet

We will be posting regular updates in response to this post with changes as they occur, as well as maintaining this original post with an overall status of this effort.

Summer 2020:

In Progress

  • Anchor Wallet for iOS: Account Creation
    • This is available within the TestFlight build of our iOS wallet: https://testflight.apple.com/join/huZddLBu
    • We currently are working on an account creation system, which will allow a new user who downloads the app to create an account on select EOSIO networks.
    • The onboarding solution will include a backup scheme for users to help them get started and secure their account.
  • Anchor Wallet for iOS: Advanced Secure Enclave
    • A new feature coming to mobile will be the ability to generate a key within the secure enclave, and associate your account to it.
    • This feature will allow the creation of keys like a hardware wallet does, where no one (even you) will be able to directly access your private keys.
    • User interface will walk users through changing their account permissions to configure their accounts.
  • Anchor Wallet for Android: Development
    • First prototypes are complete and undergoing internal review and testing.
    • External (invite only) beta scheduled to begin this summer.
    • R&D still being done about device compatibility and which Android devices we will support.
  • Anchor Wallet for Desktop: Better importing of accounts
    • The desktop wallet will be modified to have a similar account import process to that of mobile. The user will be prompted to import a private key, and accounts found to match the associated public key can then be imported.
  • Anchor Wallet for Desktop: Rebrand v3
    • Start aligning the design of the desktop wallet to match the design of mobile.
  • Anchor Wallet for all platforms: Unified Signing Request Prompt
    • Create a universal and familiar design for the actual signing request prompts across all platforms.
    • The goal is an easy to understand interface, with both human readable information and raw data.
  • New website for Anchor Wallet to help onboard new users.
    • Designs are in progress, development scheduled for late July or early August.

Completed:

  • Released Anchor Wallet for Desktop (1.1.0 - Release Notes)
    • Anchor Wallet for Desktop: Anchor Link Sessions
      • Integration of the session component of ESR, allowing a more smooth experience similar to that of the iOS build.
      • Allowing Anchor to remain running in the background while the main window is closed handling sessions in the background.
        Added support for anchor-link sessions through the anchor-link-session-manager package.
    • Anchor now has the ability to run in the background, allowing the main interface to close and still have the ability to receive and sign transactions. The application persists in the system tray (Windows/macOS/Linux) or in the dock (macOS).
    • When unlocking the wallet, all wallets may optionally be unlocked at the same time.
    • Accounts can now be manually imported without the need of a key lookup service.
    • Account-based authorities can now be configured during the manual import process.
    • Improved password creation UX during initial wallet setup.
    • More fixes to the Scatter Backup import process.
    • Many bug fixes released between 1.1.0 and 1.1.5.
    • Updated the API performance analysis tool and enabled for WAX.
    • Resolved issues with ABI cache engine and pollution across various blockchains.
    • Fixed cold wallet signing after the upgrade to eosio-core broke the process.
    • Fixed issues surrounding token precision when using multiple accounts, some of which had 0 balances.
  • Released Anchor Wallet for Desktop (1.0.5 - Release Notes)
  • Released Anchor Wallet for iOS (1.0.0)
  • Launch Greymass forums to create a new support platform for Anchor
  • Build iOS components needed to improve mobile wallet capabilities

Early 2020:

Completed

Unscheduled Tasks:


Additional Information

Metrics - Adoption and Usage

For the sake of privacy of our users, we do explicitly perform any additional tracking of Anchor Wallet uses across the various platforms its available. Some tracking does exist though to illustrate what sort of adoption and usage is happening, which we will outline below.

  • Desktop Downloads: Github offers an API that tracks downloads and tools exist that can track these metrics. For the desktop version of Anchor, you can view download statistics here.
  • Desktop Usage: Anchor for desktop collects no available usage metrics since the only external API it connects with the EOSIO API server the user specifies.
  • iOS Downloads: These metrics are made available to us through Apple’s tools but are not made publicly available. Reviews on the App Store page are publicly available, but not an accurate measurement of usage.
  • Android Downloads: Android is not yet released and no metrics exist yet. This will be updated once a release has been created and distributed.

As of September 16th, 2020, a few metrics exist we can share:

  • Anchor Desktop (1.1.0) has been downloaded 364 times since it’s release on September 11th.
  • Anchor Desktop (1.0.5) has been downloaded 6,189 times since it’s release on June 23rd.
  • Anchor Mobile (iOS, 1.0.0) has approximately 350 weekly users .

Additional information on adoption can be observed by viewing the growing list of applications that have integrated with Anchor:

Resulting Works

The following Github repositories contain the open source work that have been involved with this initiative:

Additional Links:

February 2020

Originally posted as part of an update to the WAX OIG for review in February.

Anchor is the rebranded and reimagined version of the wallet named eos-voter that Greymass launched during the genesis of the EOS blockchain for desktop and is now coming to mobile.

We are currently shifting towards the authenticator model, where the primary purpose of the wallet itself is simply to sign transactions with whatever device you’d like. This route is very similar to the EOSIO Authenticator that Block.one released a tech demo for, but instead we utilize the ESR protocol for the communication layer.

Our goal is to create a standard experience around EOSIO blockchains with a familiar and trustworthy brand.

Current Aaron and Daniel are building Anchor desktop, with Johan leading the iOS initiative. Daniel will begin prototyping out the Android application in the near future. Our designers Nick and Max are busy working on the rebranding effort.

March 2020

Originally posted as part of an update to the WAX OIG for review in March.

Updates / Change Log:
  • UPDATE - (In progress) Release of Anchor Desktop 1.0.0 (RC9 now available)
    • Released RC7, RC8 and RC9 as final round of bug testing continues.
  • UPDATE - (In progress) Version 1 release of Anchor Mobile for iOS (currently in the hands of beta testers via TestFlight, invitations available upon request)
    • Released 2 new versions of the mobile app with various fixes and improvements to the UI/UX.
  • UPDATE - (In progress) New website related to Anchor with guides/tutorials to help users understand the wallet software they are using.
    • The integration of a documentation engine into Gatsby has begun, with initial layouts/build processes being established.

May 2020

Originally posted as part of an update to the WAX OIG for review in May.

4 NEW, 1 COMPLETED, 2 UPDATES

Updates / Change Log:
  • NEW - Build iOS components needed to improve mobile wallet capabilities
  • NEW - Start on Android version of Anchor Mobile
    • Initial prototype has been created and is going through required development
  • NEW - Enabling Scatter imports for Anchor Desktop
    • Experimental build released which is currently being tested
  • NEW - swift-eosio updates to add support for Hyperion and ESR REV2
  • UPDATE - (COMPLETE) Release of Anchor Desktop 1.0.0 (RC9 now available)
    • Released 1.0.0 through 1.0.3
  • UPDATE - (In progress) Version 1 release of Anchor Mobile for iOS
  • UPDATE - (In progress) New website related to Anchor with guides/tutorials to help users understand the wallet software they are using.

July 2020

10 NEW, 5 COMPLETED

Updates / Change Log:
  • NEW (In Progress) - Anchor Wallet for iOS: Account Creation
    • We currently are working on an account creation system, which will allow a new user who downloads the app to create an account on select EOSIO networks.
    • The onboarding solution will include a backup scheme for users to help them get started and secure their account.
  • NEW (In Progress) - Anchor Wallet for iOS: Advanced Secure Enclave
    • A new feature coming to mobile will be the ability to generate a key within the secure enclave, and associate your account to it.
    • This feature will allow the creation of keys like a hardware wallet does, where no one (even you) will be able to directly access your private keys.
    • User interface will walk users through changing their account permissions to configure their accounts.
  • NEW (In Progress) - Anchor Wallet for Android: Development
    • First prototypes are complete and undergoing internal review and testing.
    • External (invite only) beta scheduled to begin this summer.
    • R&D still being done about device compatibility and which Android devices we will support.
  • NEW (In Progress) - Anchor Wallet for Desktop: Anchor Link Sessions
    • Integration of the session component of ESR, allowing a more smooth experience similar to that of the iOS build.
    • Allowing Anchor to remain running in the background while the main window is closed handling sessions in the background.
  • NEW (In Progress) - Anchor Wallet for Desktop: Better importing of accounts
    • The desktop wallet will be modified to have a similar account import process to that of mobile. The user will be prompted to import a private key, and accounts found to match the associated public key can then be imported.
  • NEW (In Progress) - Anchor Wallet for Desktop: Rebrand v3
    • Start aligning the design of the desktop wallet to match the design of mobile.
  • NEW (Completed) - Released Anchor Wallet for Desktop (1.0.5 - Release Notes)
  • NEW (Completed) - Released Anchor Wallet for iOS (1.0.0)
  • NEW (Completed) - Launch Greymass forums to create a new support platform for Anchor
  • UPDATE (Completed) - Build iOS components needed to improve mobile wallet capabilities
  • UPDATE (Completed) - swift-eosio updates to add support for Hyperion and ESR REV2

August 2020

3 UPDATES

September 2020

3 UPDATED

  • UPDATE (In Progress) - Anchor (Android): Preparing an early alpha
    • Added interface for sliding to approve or deny transactions (matching iOS).
    • Refinement of transaction approval interface.
    • Polishing user interface in preparation of public alpha.
  • UPDATE (Complete) - Anchor (iOS): Account Creation Beta Released
    • Implemented and released TestFlight version of Account Creation for Jungle 3.
    • Added ability to export export backup sheet for account.
    • Added ability to restore an account from a backup sheet
    • Reworked initial app installation to prompt for importing of key, creation of account, or restoration of backup sheet.
    • Integrated in-app purchase for account creation flow.
  • UPDATE (Complete) - Anchor (Desktop): Version 1.0.6 renamed to 1.1.0, 1.1.1 through 1.1.5 released as bug fix builds.
    • Added support for anchor-link sessions through the anchor-link-session-manager package.
    • Anchor now has the ability to run in the background, allowing the main interface to close and still have the ability to receive and sign transactions. The application persists in the system tray (Windows/macOS/Linux) or in the dock (macOS).
    • When unlocking the wallet, all wallets may optionally be unlocked at the same time.
    • Accounts can now be manually imported without the need of a key lookup service.
    • Account-based authorities can now be configured during the manual import process.
    • Improved password creation UX during initial wallet setup.
    • More fixes to the Scatter Backup import process.
    • Many bug fixes released between 1.1.0 and 1.1.5.
    • Updated the API performance analysis tool and enabled for WAX.
    • Resolved issues with ABI cache engine and pollution across various blockchains.
    • Fixed cold wallet signing after the upgrade to eosio-core broke the process.
    • Fixed issues surrounding token precision when using multiple accounts, some of which had 0 balances.