JSPM

vc-govern

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3
  • Score
    100M100P100Q30023F
  • License MIT

Web5 verifiable credentials manager

Package Exports

  • vc-govern
  • vc-govern/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (vc-govern) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

vc-govern

Web5 verifiable credentials manager.

vc-govern facilitates the issuance and verification of verifiable credentials (VCs) and the generation of presentations. It leverages the capabilities of the @web5/credentials and @web5/dids libraries for creating and handling decentralized identifiers (DIDs) and verifiable credentials.

Installation

Using npm?

  npm install --save vc-govern

Using yarn?

  yarn add vc-govern

Usage

  // commonjs
  const { vcGovern } = require('vc-govern');

  // esm
  import { vcGovern } from 'vc-govern';

  const issuer = /* ... */; // Portable DID of the issuer
  const subject = /* ... */; // Portable DID of the subject
  const data = /* ... */; // Data to be included in the verifiable credential

  // Issue Verifiable Credential
  const vcJwt = await vcGovern.issueVerifiableCredential({
    issuer,
    subject,
    data,
    type: 'TestVerifiableCredential', // Optional, it is used to describe the type of credential being created.
  });

  // You should store the issued verifiable credential somewhere save

  // Presentation Definition
  const presentationDefinition: PresentationDefinitionV2 = /* ... */;

  // Verifiable Credential JWTs
  const vcJwts: string[] = /* ... */;

  // Generate Presentation
  const presentation = vcGovern.generatePresentation(presentationDefinition, vcJwts);

  // Verify Verifiable Credential
  const verificationResult = await vcGovern.verifyCredential(vcJwt, true);

  // Verify Verifiable Credentials within Presentation
  const verificationResults = await vcGovern.verifyCredentialFromPresentation(presentation, true);

API

issueVerifiableCredential(issueVerifiableCredentialParams: IssueVerifiableCredentialParams): Promise<string | undefined>

Issues a verifiable credential (VC) to a subject.

  • issuer: Portable DID of the issuer.
  • subject: Portable DID of the subject.
  • data: Data to be included in the verifiable credential.
  • type: Optional string or string array specifying the type of the credential.

Returns a signed JWT token representing the created verifiable credential.

generatePresentation(presentationDefinition: PresentationDefinitionV2, vcJwts: string[]): any

Generates a presentation from a presentation definition by performing a presentation exchange (PEX).

  • presentationDefinition: The presentation definition provided by the verifier.
  • vcJwts: Verifiable Credential JWTs.

Returns a presentation.

verifyCredential(vcJwt: string, includeParsedData: boolean): Promise<CredentialVerificationResult>

Verifies a signed verifiable credential JWT.

  • vcJwt: The verifiable credential JWT to be verified.
  • includeParsedData: A boolean indicating whether to include parsed credential data in the result.

Returns an object representing the evaluation of the result and the credential data if requested.

verifyCredentialFromPresentation(presentation: any, includeParsedData: boolean): Promise<CredentialVerificationResult[]>

Verifies signed verifiable credentials within a presentation.

  • presentation: The submitted presentation.
  • includeParsedData: A boolean indicating whether to include parsed credential data in the result.

Returns an array of objects representing the evaluation of the result and the credential data if requested.

Notes

  • The expirationDate property is skipped due to a bug preventing the creation of VCs with the expiration date property set.

License

vcGovern is licensed under the MIT License. See LICENSE for more information.