Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Latest commit 54505e8 Jun 5, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Release v0.3.0 Jun 5, 2019
src chore: support ipfs@0.35.0 Jun 5, 2019
.babelrc fix: add fallback if ipfs is not passed when registering Jun 4, 2019
.gitignore Initial commit Feb 24, 2018
LICENSE Update LICENSE Jan 22, 2019 README: Fix typo in code demo Mar 14, 2019 Release v0.3.0 Jun 5, 2019
codecov.yml Added circle/codecov Apr 16, 2018
package-lock.json Release v0.3.0 Jun 5, 2019
package.json Release v0.3.0 Jun 5, 2019
yarn.lock Fix lookup method fix #5 Jun 29, 2018

µPort DID Resolver

Greenkeeper badge

This library is intended to resolve µPort DID documents. µPort is a thin identity protocol that uses ipfs and ethereum to publish and rotate the cryptographic keys used by an identity. Currently it only supports creating and resolving identities, but not updating them.

It supports the proposed Decentralized Identifiers spec from the W3C Credentials Community Group.

It requires the did-resolver library, which is the primary interface for resolving DIDs.

Resolving a DID document

The resolver presents a simple resolver() function that returns a ES6 Promise returning the DID document.

import resolve from 'did-resolver'
import registerResolver from 'muport-did-resolver'


resolve('did:muport:QmRhjfL4HLdB8LovGf1o43NJ8QnbfqmpdnTuBvZTewnuBV').then(doc => console.log(doc))

// You can also use ES7 async/await syntax
const doc = await resolve('did:muport:QmRhjfL4HLdB8LovGf1o43NJ8QnbfqmpdnTuBvZTewnuBV')


{ '@context': '',
  id: 'did:muport:QmRhjfL4HLdB8LovGf1o43NJ8QnbfqmpdnTuBvZTewnuBV',
   [ { id: 'did:muport:QmRhjfL4HLdB8LovGf1o43NJ8QnbfqmpdnTuBvZTewnuBV#signingKey',
       type: 'Secp256k1VerificationKey2018',
       owner: 'did:muport:QmRhjfL4HLdB8LovGf1o43NJ8QnbfqmpdnTuBvZTewnuBV',
       publicKeyHex: '02756bca1edf0d0e263851b95e7963b4721d82c2e84c9d7f8a380f899dff8f721c' },
     { id: 'did:muport:QmRhjfL4HLdB8LovGf1o43NJ8QnbfqmpdnTuBvZTewnuBV#managementKey',
       type: 'Secp256k1VerificationKey2018',
       owner: 'did:muport:QmRhjfL4HLdB8LovGf1o43NJ8QnbfqmpdnTuBvZTewnuBV',
       publicKeyHex: '0214ca1c21dfa6bb2550a8559e83817ebd82cfbb8dbda56757f4c0517dde9c52ff' },
     { id: 'did:muport:QmRhjfL4HLdB8LovGf1o43NJ8QnbfqmpdnTuBvZTewnuBV#encryptionKey',
       type: 'Curve25519EncryptionPublicKey',
       owner: 'did:muport:QmRhjfL4HLdB8LovGf1o43NJ8QnbfqmpdnTuBvZTewnuBV',
       publicKeyBase64: 'uYGr6nD/c/2hQ3hNFrWUWAdlNoelPqduYyyafrALf2U=' } ],
   [ { type: 'Secp256k1SignatureAuthentication2018',
       publicKey: 'did:muport:QmRhjfL4HLdB8LovGf1o43NJ8QnbfqmpdnTuBvZTewnuBV#signingKey' } ],
  muportData: { nym: 'lala', symEncryptedData: {} } }
You can’t perform that action at this time.