@digitalcredentials/vc-status-list

9.0.0 • Public • Published

Bitstring Status List v1.0 Library (@digitalcredentials/vc-status-list)

Build status NPM Version

An isomorphic Verifiable Credential Bitstring Status List v1.0 library for Node, browsers and React Native.

Creating a StatusList2021Credential

const sl = require('@digitalcredentials/vc-status-list');
const jsigs = require('@digitalcredentials/jsonld-signatures');
const {Ed25519KeyPair} = require('@digitalcredentials/crypto-ld');
const vc = require('@digitalcredentials/vc');
const {securityLoader} = require('@digitalcredentials/security-document-loader');

const documentLoader = securityLoader().build()

const key = new Ed25519KeyPair({
  "id": "did:key:z6MknUVLM84Eo5mQswCqP7f6oNER84rmVKkCvypob8UtBC8K#z6MknUVLM84Eo5mQswCqP7f6oNER84rmVKkCvypob8UtBC8K",
  "controller": "did:key:z6MknUVLM84Eo5mQswCqP7f6oNER84rmVKkCvypob8UtBC8K",
  "type": "Ed25519VerificationKey2018",
  "privateKeyBase58": "CoZphRAfAVPqx9f54MRUBtmjD4uY6KPxQQKsE3frUbZ269tBD4AdTQAVbXHHgpewh4BunoXK8dotcUJ6JXhZPsh",
  "publicKeyBase58": "92EHksooTYGwmSN8hYhFxGgRJVav5SVrExuskrWsFyLw"
});
const suite = new Ed25519Signature2018({
  key,
  date: "2019-12-11T03:50:55Z",
});
const id = "https://example.com/credentials/status/3";
const list = await sl.createList({length: 100000});
const encodedList = await list.encode();
const slCredential = {
  "@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/vc/status-list/v1"],
  id,
  issuer: "did:key:z6MknUVLM84Eo5mQswCqP7f6oNER84rmVKkCvypob8UtBC8K",
  issuanceDate: "2021-03-10T04:24:12.164Z",
  type: ["VerifiableCredential", "StatusList2021Credential"],
  credentialSubject: {
    id: `${id}#list`,
    type: "StatusList2021",
    encodedList,
  },
};
let verifiableCredential = await vc.issue({
  credential: {...slCredential},
  suite,
  documentLoader,
});

Created a Credential which uses a StatusList2021

// see imports above
const credential = {
  "@context": [
    "https://www.w3.org/2018/credentials/v1",
    "https://www.w3.org/2018/credentials/examples/v1",
    "https://w3id.org/vc/status-list/v1",
  ],
  id: "https://example.com/credentials/3732",
  type: ["VerifiableCredential", "UniversityDegreeCredential"],
  issuer: "did:web:did.actor:alice",
  issuanceDate: "2021-03-10T04:24:12.164Z",
  credentialStatus: {
    id: "https://example.com/credentials/status/3#94567",
    type: "StatusList2021Entry",
    statusListIndex: "94567",
    statusListCredential:
      "https://did.actor/alice/credentials/status/3",
  },
  credentialSubject: {
    id: "did:web:did.actor:bob",
    degree: {
      type: "BachelorDegree",
      name: "Bachelor of Science and Arts",
    },
  },
};
let verifiableCredential = await vc.issue({
  credential: {...credential},
  suite,
  documentLoader,
});

Package Sidebar

Install

npm i @digitalcredentials/vc-status-list

Weekly Downloads

3,210

Version

9.0.0

License

BSD-3-Clause

Unpacked Size

34.9 kB

Total Files

11

Last publish

Collaborators

  • kezike
  • klemoie
  • codenamedmitri
  • kimhd
  • uligall
  • alexander.muehle
  • stuartf
  • jchartrand
  • kiliankae