At Block.one, we believe in an open innovation model that allows us and others in the EOSIO developer community to collaboratively push the boundaries of what is possible within the industry and EOSIO™ software.
One area we have been actively exploring is the EOSIO wallet ecosystem and the direction of key and password management. In blockchain, wallets (as key managers) serve a critical role in the way users interact securely with blockchain applications. They are a pivotal component in the path towards mass adoption of blockchain-based software and have been a focus of much of our research.
After much consideration, we have decided to release our work related to key management in a way that can be used by existing EOSIO wallets. That means Block.one itself will not be releasing a proprietary wallet at this time. Instead, we are taking this opportunity to release our work as Open Source Software, and by doing so hope to encourage ongoing improvements of the standards in the wallet ecosystem. We will be releasing this work as the first in a series of repos in a form we’re really excited to share for both Block.one and community innovation: EOSIO Labs™.
We are pleased to announce the EOSIO Labs initiative. As we create new tools in the EOSIO family that impact the global community of developers, we have come to recognize the need for a clear distinction between in-house products we are committed to developing, software tools we are committed to growing, and research projects we would like to publish for feedback from others in the EOSIO community to help understand the value they can provide.
EOSIO Labs Release: Universal Authenticator Library
With this announcement, we are open sourcing the Universal Authenticator Library (UAL) GitHub repository. This first step in the EOSIO Labs initiative demonstrates an alternative approach for app developers integrating with an Authenticator (wallets, app explorers, key managers, etc.) by coding to a single, universal API. Furthermore, it offers developers an optional, but opinionated, UI layer so that users get a consistent look and feel independent of the wallet they are using or the site they are on.
As we’ve seen the EOSIO ecosystem evolve over the past year, we’ve been studying how EOSIO-enabled applications interface with wallets, and how that impacts both the developer and user experiences. There has been an explosion in the number of wallets — hardware and software — and this has given users something very valuable: innovation and choice.
But with an ever-increasing number of wallets comes overhead. App developers must integrate with all of those proprietary wallet APIs (or give up and choose not to), and end users face increased uncertainty — even confusion — as transaction signing experiences multiply and diverge. Users may even find that the app they want to use doesn’t work at all with their wallet of choice leading to frustration, fragmentation, and barriers to streamlined adoption.
This work illustrates our direction and thoughts, now available for the wider community to review and consider adopting in their development workflow. We welcome your feedback and will continue to explore and publish more related work in the future.
Working with EOSIO Labs Repositories
The intent of the EOSIO Labs initiative is to more rapidly share our innovations and discoveries with all developers and by doing so increase the value these innovations can deliver to the EOSIO community at large. Open source repositories for projects published under EOSIO Labs are to be considered alpha, released with no firm expectation of future involvement by Block.one. Block.one’s continued contributions and involvement will depend on wider community adoption of such projects.
EOSIO Labs repositories are experimental. Developers in the community are encouraged to use EOSIO Labs repositories (released under MIT license) as the basis for code and concepts to incorporate into their applications. Community members are also welcome to contribute and further develop these repositories. Since these repositories are not supported by Block.one, we may not provide responses to issue reports, pull requests, updates to functionality, or other requests from the community, and we encourage the community to take responsibility for these. However, depending on the adoption of concepts and codebases from within the EOSIO Labs umbrella, select repositories and concepts can graduate over time to supported status to enable such projects to move ahead rapidly. As projects graduate from EOSIO Labs, they will enjoy the support we feel is needed, as afforded to actively maintained EOSIO open source libraries such as Demux, EOSJS and others.
If you are interested in providing feedback and working more closely with our team to improve the EOSIO Labs repositories for developers, you can send our developer relations team an email at email@example.com.
You can also keep up to date with future updates by subscribing to our mailing list on the EOSIO Developer Portal. We are excited to be continually improving the usability of the software for EOSIO developers as we continue laying a foundation for the mass adoption of blockchain technology.
The Future is Open for EOSIO Labs
Going forward through EOSIO Labs, Block.one will continue releasing our thoughts and research on the direction of key and password management. This is just the first of many areas of research we hope to tackle as part of the community. We welcome and encourage your feedback on areas of interest to explore, and look forward to continually growing one of the most vibrant and innovative technology communities in the world.
Disclaimer: Block.one makes its contribution on a voluntary basis as a member of the EOSIO community and is not responsible for ensuring the overall performance of the software or any related applications. We make no representation, warranty, guarantee or undertaking in respect of the releases described here, the related GitHub release, the EOSIO software or any related documentation, whether expressed or implied, including but not limited to the warranties or merchantability, fitness for a particular purpose and noninfringement. In no event shall we be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or documentation or the use or other dealings in the software or documentation. Any test results or performance figures are indicative and will not reflect performance under all conditions. Any reference to any third party or third-party product, resource or service is not an endorsement or recommendation by Block.one. We are not responsible, and disclaim any and all responsibility and liability, for your use of or reliance on any of these resources. Third-party resources may be updated, changed or terminated at any time, so the information here may be out of date or inaccurate.