Resident Mobile Application (Draft)


The Resident Mobile Application can be used by residents to securely store, share and receive digital credentials. The current version of this application supports only Android OS. This will later be extended to support iOS too.
The digital credentials generated by the mobile application follow the Verifiable Credentials data model. To learn more, read Verifiable Credentials Data Model.
The mobile application's repo is called Inji and the corresponding backend that works as an intermediate between Inji and MOSIP platform is in Mimoto repo.

Installing the application

The process flow for installation and first launch is given below
After installing the application, the user will need to set a app lock code for it. The current version supports a PIN based lock. The first launch will also establish a security check with Google SafetyNet Attestation API (for Android) and the equivalent for iOS. For more details, refer the User Guide.

Generating and storing of credentials

A resident can generate a Verifiable Credential(VC) by either using a UIN or a VID. Also, they can generate credentials for their family or friends on the same phone.
Detailed steps on generating and sharing credentials are given in the user guide here.
The process of generating a credential is shown below

Sharing of credentials

In Phase 1, the credentials are shared in peer-to-peer model with another instance of the application. The data exchange between devices is done using Google Nearby Connections API. This API uses a combination of Bluetooth (BT), Bluetooth Low energy (BLE) and Wifi to achieve seamless, low-latency, high-throughput communications without requiring pairing of devices.

How peer-to-peer connection is established

A QR code is generated and displayed on the requesting party's mobile application. A sample QR code json content is given below
"cid": "1ejpu",
"pk": "819176777955C098B78BAF949084A4484AEC5A769CED2307D59E46DC85A0F758"
where cid is a randomly generated connection ID which is used as a device identifier and pk is a randomly generated public key.
Once a sharing phone scans the QR code of the requesting/relying party, a connection is established between the two devices. When the requesting party has to connect to another device, a new QR code is generated.
The process flow for QR code scan is given below
The process flow for receiving the credentials is given below

Roadmap for mobile application

  • The development of resident mobile application has been split into 3 phases as shown below.
  • Phase 1 has been completed and is made available as alpha release.

Build and install

The resident mobile application code can be downloaded from Detailed steps to build Inji to generate an apk are given here. The output apk can then be installed on smart phones.
Note: To download the alpha release, use the 0.8 tag of Inji. The alpha release works on both and 1.2.0(LTS) version of the platform. Corresponding Mimoto version can be downloaded and used.