vc_issuer_sdk
TypeScript icon, indicating that this package has built-in type declarations

0.0.38 • Public • Published

DID and Verifiable Credential SDK

This SDK enables the management of Decentralized Identifiers (DIDs) and Verifiable Credentials (VCs). It supports creating, verifying, and revoking credentials.

Supported signatures:

  • ECDSA
  • BBS+

Installation

To install the SDK, use yarn:

yarn install

Usage

Below is an example on how to issue, verify, and optionally revoke a verifiable credential using the BBS+ signature scheme.

Example: Issue and Verify a Verifiable Credential

import { BbsDID, createBbsCredential, verifyVC, revokeVC } from "path_to_sdk";

// Issuer's private key and setup
const issuerPrivateKey = "private_key_here";
const issuer = new BbsDID(privateKey);

// Holder's DID
const holderDid = "did:example:b34ca6cd37bbf23";

// Creating a credential with BBS+ signature
const claims = { kyc: "passed" };
const revocationRegistryAddress = "0x77Fb69B24e4C659CE03fB129c19Ad591374C349e";
const didRegistryAddress = "0x312C15922c22B60f5557bAa1A85F2CdA4891C39a";
const provider = new ethers.JsonRpcProvider(process.env.TEST_BLOCKCHAIN_URL);
const options = {
  revocationRegistryAddress,
  provider,
  didRegistryAddress,
} as VerificationOptions;
const credential = await createBbsCredential(issuer, holderDid, claims, ["KYCCredential"], unknown, options );
console.log("Credential Issued:", credential);

// Verifying the credential
const verificationResult = await verifyVC(credential);
console.log("Verification Result:", verificationResult);

// Optionally revoke the credential
await revokeVC(credential.id, issuer.did, issuerPrivateKey);

// wait for 10 seconds for the transaction to be mined onchain
await new Promise((r) => setTimeout(r, 10000));

// And check again: expected failure as credential has been revoked
const verificationResult = await verifyVC(credential);
console.log("Verification Result:", verificationResult);

Testing

For local testing, ensure you have Foundry installed and running. This will simulate Ethereum blockchain interactions required for some SDK functions.

Readme

Keywords

none

Package Sidebar

Install

npm i vc_issuer_sdk

Weekly Downloads

39

Version

0.0.38

License

MIT

Unpacked Size

218 kB

Total Files

29

Last publish

Collaborators

  • nik-t3