Veramo: uPort’s Open Source Evolution

uPort
uPort
Published in
3 min readMay 4, 2021
Veramo: Performant APIs for verifiable data

When uPort began at ConsenSys in 2015, the self-sovereign identity space was also in its infancy. Early concepts existed as little more than academic theories with few attempts at implementation. Despite the lack of standards or the guidance of a marketplace, uPort began experimenting with our first architecture using smart-contract based identities.

Over time the technical limitations with on-chain identities began to pile up, which led to uPort’s 1.0 architecture and pioneering the use of decentralized identifiers (DIDs) with our open-source libraries. At the time DIDs, together with verifiable credentials (VCs) were proposed W3C standards and are now nearing official status. Dozens of projects are still using several of our popular libraries: uport-connect, uport-credentials, uport-mobile, did-jwt, and did-resolver, to name a few.

While successful, some of these libraries also presented challenges of their own. Maintaining libraries across different tech stacks (web, mobile, backend) became an impediment to the rapid iteration so critical in a space where standards evolve quickly. Around 18 months ago, we began work on the next iteration of our architecture, a project internally known as DAF (DID Agent Framework).

The primary goal of DAF was to create a flexible, modular architecture based around a library of core functionality that would run on each primary stack (web, mobile and backend), and could be easily extended through add-on packages. This approach allows us and the developer community to easily add the application specific functionality they need, whether it be additional DID methods, key management functions, new protocols, and many more possibilities without needing to modify the core library.

Earlier this year, we released the culmination of these efforts, informed by years of open-source work, learning, and iteration, as Veramo.

This next major iteration also makes it necessary to begin deprecating the previous uPort mobile app, libraries, and services. The following is an outline of the schedule and what will be affected. If you currently depend on any of these, or simply have a question or two please send us an email at hello@veramo.io.

uPort Mobile

uPort Mobile will be removed from the Apple AppStore and Google PlayStore as of June 1st, 2021. The code is already open-source and will remain available in an archived github repo.

Libraries and Services

First, we will be archiving the deprecated github repos. Open-source code will still be available for reference, but no further changes/updates will be made. In addition, we will be shutting down hosted services, some of which will cause issues in libraries and/or the mobile app.

Chasqui: a server that allows communication between dApps, mobile apps (like uPort Mobile) and servers. Shutting down Chasqui will cause breaking changes in uPort Mobile and uport-transports. Shutdown date: June 1st, 2021.

Caleuche: an event hub service which allows the backup and sync of uPort mobile app events. Shutdown date: June 1st, 2021.

Pututu: a server that allows dApps and servers to send push notification messages to any uPort Mobile App. Shutdown date: June 1st, 2021.

The services below are related to proxy-contract identities and will be shutdown a couple weeks earlier.

Sensui: uPort Transaction Funding Service. Shutdown date: May 15th, 2021.

Nisaba: provides user verification for the uPort ecosystem. Shutdown date: May 15th, 2021.

Unnu: phone verifier and creator of identities. Shutdown date: May 15th, 2021.

Although we had to make some tough decisions to clear the road the ahead, none of these resources have gone to waste. Each one has played a role in our understanding of the digital identity space which directly led to the creation of Veramo. We’re proud of the result. To dig deeper, check out our documentation and experiments at Veramo Labs.

--

--

uPort
uPort
Editor for

Self-sovereign identity and user-centric data platform on Ethereum