Skip to content

evernym/mobile-sdk

Repository files navigation

Mobile SDK

Introduction

Self Sovereign Identity is a lifetime portable identity for any person, organization, or thing that does not depend on any centralized authority and can never be taken away. Self-sovereign identity is a two-party relationship model, with no third party coming between you and the organization, now considered your “peer”.

SSI is possible today with DIDs and Verifiable Credentials.

Verifiable Credentials

Verifiable Credential (VC) is the new format for interoperable digital credential being defined by the W3C Verifiable Claims Working Group. Verifiable credentials conform to the W3C’s Verifiable Credentials Data Model, and they facilitate interactions using a pattern called the triangle of trust:

Issuers create credentials, usually by having JSON docs digitally signed in a special way. Holders store them, and verifiers ask for proof based upon them. Verifiable presentations that Holders provide to Verifiers are packages of evidence—either credentials, or data derived from one or more credentials—built by holders to satisfy a verifier’s requirements. Verifiers learn with certainty which issuers have attested something by checking digital signatures against a verifiable data registry (typically, a blockchain).

What's here

The set of guidelines and tools in this repository will help you to build mobile identity agents to hold verifiable credentials in a self sovereign identity ecosystem. These identity agents will be compatible with standards such as:

These tools depend on the Evernym Consumer Agency SaaS service to act as a communication mediator in the cloud which provides a persistent address for communication and herd anonymity. Access to the Consumer Agency is provided to Evernym customers (see the section "Getting Help").

Getting Help

Evernym provides commercial support to customers. If you would like help from Evernym, please contact us.

Supported operating systems for Android and IOS

  • Android 6+ 32 bit & 64bit
  • iOS 11+

Getting Started

Connecting and exchanging encrypted data between an Agency (server side) and an Edge Client (mobile application) consists of several steps and is supported by a secured, encrypted protocol library (VCX).

Going through this tutorial we will create a simple application which will allow us to accept and present verifiable encrypted credentials.

Before starting, please read the Base Concepts document containing explanations for terms that will be frequently used in this guide.

  1. Create a new App
  2. Configure application storage
  3. Initialize Wallet and Cloud Agent on a specific Agency (web server)
  4. Receive messages from the Cloud Agent
  5. Establish a connection with another user
  6. Accept offered credential
  7. Respond to a proof request
  8. Exchange secured structured messages
  9. Handle Connection Invitations with attached messages

Mobile SDK Flow

Additional Sources:

Helpful links

Acknowledgements

This effort is part of a project that has received funding from the European Union’s Horizon 2020 research and innovation program under grant agreement No 871932 delivered through our participation in the eSSIF-Lab, which aims to advance the broad adoption of self-sovereign identity for the benefit of all.