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.
Spring 2021:
In Progress
- Anchor Wallet for Android: Early Access Release
- An early access release will be available on the Play Store with all networks enabled.
- 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.
Completed
- Anchor Wallet for Desktop: 1.2.0 through 1.2.2 released
- Added optional transaction fees for users who are out of resources (EOS, Telos, and WAX).
- Redesigned Resources section to support the new PowerUp model.
Winter 2021:
- Anchor Wallet for Desktop: 1.1.6 through 1.1.12 released
- ESR Rev3 is now implemented allowing multi-chain identity requests.
- Fuel and Ledger now work together
- Resolved many issues involving connectivity between dapps and Anchor.
- Anchor Wallet for iOS: Account Creation Released
- The iOS version now features paid account creation for EOS, Telos and WAX.
- Anchor Wallet for Android: 0.3.0 through 0.11.0 beta releases.
- The first alpha version of the app is now being tested by a small group of external testers!
- Implemented sandboxed ricardian contract parser.
- Rebuild the entire UI with a new design to match that of normal Android applications.
- Reworked how the app responds to the physical device buttons to match a normal Android experience.
- Working to integrate deep linking techniques for Android mobile to mobile integrations.
- New website for Anchor Wallet to help onboard new users.
Fall 2020:
- Anchor Wallet for Android: Development Started
- First alpha has been released to external testers.
- Bug fixes are underway as we move to a public release.
- Anchor Wallet for iOS: Account Creation
- This is available within the TestFlight build of our iOS wallet: Join the Anchor Wallet – Developer beta - TestFlight - Apple
- 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.
- New website for Anchor Wallet to help onboard new users.
- Designs are in progress, development scheduled for late July or early August.
Summer 2020:
- Anchor Wallet for iOS: Account Creation
- This is available within the TestFlight build of our iOS wallet: Join the Anchor Wallet – Developer beta - TestFlight - Apple
- 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 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.
- 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.
- Anchor Wallet for Desktop: Anchor Link Sessions
- 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
- General EOSIO Library: GitHub - greymass/swift-eosio: Library for swiftly working with EOSIO blockchains on Linux, macOS and iOS with ESR support
- EOSIO Key Encryption Library: GitHub - greymass/swift-eosio-key-encryption
- Library to work with scrypt: GitHub - greymass/swift-scrypt: Swift bindings for libscrypt
Early 2020:
- Anchor Wallet (iOS) updated onboarding process to the most simple user experience possible.
- Anchor Wallet (Desktop) version updates, release notes: 1.0.1, 1.0.2, 1.0.3, 1.0.4
- Started open beta for Anchor Wallet (iOS/Mobile)
- Release Anchor Wallet (Desktop), available April 13th, 2020.
- Rebrand/Reimagine of Anchor before the official 1.0.0 release.
- Integrate 5ms worth of free transactions from Fuel into Anchor Desktop.
- Anchor Wallet (Desktop) integration of the eosio-signing-request REV2 library for app communication.
Unscheduled Tasks:
- Feature list and issues within our Github issues: scheduled independantly
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 April 22nd, 2021, a few metrics exist we can share:
- Anchor Desktop (1.2.2) has been downloaded ~3,100 times since it’s release on April 15th.
- Anchor Mobile (iOS, 1.1.0) has approximately ~2,300 monthly installations.
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:
- GitHub - greymass/anchor: EOSIO Desktop Wallet and Authenticator
- GitHub - greymass/anchor-link-session-manager: WORK IN PROGRESS - Session management for signature providers when receiving requests using the Anchor Link protocol
- GitHub - greymass/eosio-core: BETA RELEASE - Library for working with EOSIO blockchains
- GitHub - greymass/eosio-signing-request: Library to assist in creating and digesting EOSIO Signing Requests (ESR)
- GitHub - greymass/swift-eosio: Library for swiftly working with EOSIO blockchains on Linux, macOS and iOS with ESR support
- GitHub - greymass/swift-scrypt: Swift bindings for libscrypt
- GitHub - greymass/swift-eosio-key-encryption
Additional Links:
- Official Site: https://greymass.com/anchor
- iOS Releases (App Store): ‎Anchor Wallet on the App Store
- Desktop Releases: Releases · greymass/anchor · GitHub