digitalbazaar / bedrock-vc-issuer

Bedrock Verifiable Credentials issuer software
Other
1 stars 3 forks source link

Bedrock Verifiable Credentials Issuer API module (bedrock-vc-issuer)

Build Status NPM Version

A VC Issuer API library for use with Bedrock applications.

Table of Contents

Background

Security

TBD

Install

NPM

To install via NPM:

npm install --save @bedrock/vc-issuer

Development

To install locally (for development):

git clone https://github.com/digitalbazaar/bedrock-vc-issuer.git
cd bedrock-vc-issuer
npm install

Usage

In lib/index.js:

import '@bedrock/vc-issuer';

Note: The use of bedrock-web-vc-issuer client is recommended, to create instances.

Issuer HTTP API

This module exposes the following API endpoints.

DID Authentication - POST /vc-issuer/authenticate

Example request:

{
  "presentation": {
    "type": "VerifiablePresentation",
    "holder": "<account controller's DID>",
    "proof": {
      "challenge": "<challenge is required>",
      "type": "...",
      "proofPurpose": "authentication",
      "created": "...",
      "verificationMethod": "<key id>",
      "proofValue": "..."
    }
  }
}

Issue a Credential - POST /vc-issuer/issue

Authorization header is required.

Example request:

{
  "credential": {
  }
}

Example response:

{
  "verifiableCredential": {
  }
}

Instance Issue Credential - POST /credentials/:profileAgentId/issueCredential

Example request:

{
  "credential": {
  },
  "options": {
    "proofPurpose": "assertionMethod",
    "assertionMethod": "<key id>",
    "verificationMethod": "<key id>",
    "credentialStatus": {
      "type": "RevocationList2020Status"
    }
  }
}

Update Credential Status - POST /credentials/:profileAgentId/updateCredentialStatus

Example request:

{
  "credentialId": "...",
  "credentialStatus": {
    "type": "RevocationList2020Status"
  }
}
HTTP 200 OK

Publish RLC - POST /vc-issuer/instances/:instanceId/rlc/:rlcId/publish

Uses either bedrock-passport authentication, or an Authorization header bearer token.

Example request:

{
  "profileAgent": {
  }
}

Example response:

HTTP 204 No Content

Get RLC - GET /vc-issuer/instances/:instanceId/rlc/:rlcId

No authz required.

Contribute

See the contribute file!

PRs accepted.

If editing the Readme, please conform to the standard-readme specification.

Commercial Support

Commercial support for this library is available upon request from Digital Bazaar: support@digitalbazaar.com

License

Bedrock Non-Commercial License v1.0 © Digital Bazaar