bedrock-vc-issuer

12.0.0 • Public • Published

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

  • Node.js 12+ is required.

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 (or main.js, as appropriate):

require('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

Package Sidebar

Install

npm i bedrock-vc-issuer

Weekly Downloads

0

Version

12.0.0

License

none

Unpacked Size

147 kB

Total Files

27

Last publish

Collaborators

  • msporny
  • dlongley
  • davidlehn
  • mattcollier
  • gannan