Open Sourcing Identity Manager

Open Sourcing Identity Manager

What is it?

The Tangle Labs Identity Manager is an open source utility library that acts as a wrapper around most IOTA Identity functions that provides an easier and more comprehensive experience for you to manage your identities.

It is a fundamental part of all Tangle Labs products that we have developed to make identity more comprehensive and approachable for more casual devs wanting to work with identity without diving in too deep - it has sane defaults and helper functions which just make sense! Our initial development was specifically to help support the work we are doing with tixit after realising that identity can be overwhelming for a lot of devs who are not too familiar with it. So, we built out a wrapper library that solves this issue!

The repository can be found here

We are currently open sourcing the Identity Manager at v0.1.2 right now and it will be expanding it's functionality over the course of time, keeping up with any future IOTA Identity and Stronghold releases.

Further to its core functionality for the simple management of your DID, the Identity Manager also combines the power of IOTA Stronghold and Tangle Labs DVID (Domain Verifiable Identity) developments.


DVID

DVID verification connects your DID to a record on a domain's DNS, inspired by the DKIM protocol, you can add your DID to a text record on the domain's DNS and during verification of a credential the issuer's DID is resolved from the DNS record of the domain mentioned in the id field in the credential. Adding another layer of human verifiable proof of origin to a Verifiable Credential.

How to get started?

Identity Manager is published on NPM and can be easily installed using

$ yarn add @tanglelabs/identity-manager

or

npm install @tanglelabs/identity-manager

a few examples can be found in the examples folder along with the fully detailed API Reference

IdentityManager uses Identity's Stronghold bindings to securely store your keypair. The manager instance handles everything related to Stronghold and secrets while the IdentityAccount which is returned with loading or creating a DID handles everything related to a DID and credentials.

Here is an example for how to create an identity using IdentityManager.

import { IdentityManager } from "@tanglelabs/identity-manager";

async function run() {
  // Instantiate a new instance of Identity Manager
  const manager = IdentityManager.newInstance({
    filepath: process.env.FILEPATH,
    password: process.env.PASSWORD,
  });

  // Create a did with the alias of `identity-alias`
  const did = await manager.createDid("identity-alias");
}

run();

This development and article were written by Merul Dhiman