Key DID libraries
The Key DID libraries include the resolver and multiple providers to provide a simple way for developers to get started using the DID client with the did:key
method.
Available libraries
- The Key DID resolver allows a DID JSON-RPC client to resolve accounts using the
did:key
method - The Key DID provider ED25519 allows applications to create and use Key DID accounts for ED25519 keypairs. This provider supports encryption.
- The Key DID provider secp256k1 allows applications to create and use Key DID accounts for secp256k1 keypairs. This provider does not supports encryption.
Key DID resolver
The key-did-resolver
module is needed to resolve DID documents using the did:key
method.
Installation
npm install key-did-resolver
Usage
import { DID } from 'dids'
import { getResolver } from 'key-did-resolver'
async function resolveDID() {
const did = new DID({ resolver: getResolver() })
return await did.resolve('did:key:...')
}
Key DID providers
Different libraries implement a provider for the did:key
method based on different cryptographic primitives. These providers may have different possibilities, for example key-did-provider-ed25519
supports encryption while key-did-provider-secp256k1
does not.
Key DID provider ED25519
This is the recommended provider for the key:did
method in most cases.
Installation
npm install key-did-provider-ed25519
Usage
import { DID } from 'dids'
import { Ed25519Provider } from 'key-did-provider-ed25519'
import { getResolver } from 'key-did-resolver'
// `seed` must be a 32-byte long Uint8Array
async function authenticateDID(seed) {
const provider = new Ed25519Provider(seed)
const did = new DID({ provider, resolver: getResolver() })
await did.authenticate()
return did
}
Key DID provider secp256k1
This provider does not support encryption, so using methods such as createJWE
on the DID
instance is not supported.
Installation
npm install key-did-provider-secp256k1
Usage
import { DID } from 'dids'
import { Secp256k1Provider } from 'key-did-provider-secp256k1'
import { getResolver } from 'key-did-resolver'
// `seed` must be a 32-byte long Uint8Array
async function authenticateDID(seed) {
const provider = new Secp256k1Provider(seed)
const did = new DID({ provider, resolver: getResolver() })
await did.authenticate()
return did
}