Skip to content

Verisav/dpp-verifiable-credentials

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@verisav/dpp-verifiable-credentials

Issue and verify W3C Verifiable Credentials (VCDM 2.0) for Digital Product Passports.
Built on Veramo. EU Business Wallet–ready. Used in production at Verisav.

Install

npm install @verisav/dpp-verifiable-credentials

Optional (for persistent storage of credentials):

npm install @veramo/data-store

Usage

Issue a Verifiable Credential

import { getVCService } from '@verisav/dpp-verifiable-credentials'

const vcService = getVCService()

const dpp = {
  '@type': 'ProductPassport',
  gtin: '1234567890123',
  name: 'Product XYZ',
  manufacturer: {
    euid: 'EU-FR-123456789',
    name: 'Fabricant XYZ',
  },
}

const vc = await vcService.issueVerifiableCredential({
  dpp,
  issuerEuid: 'EU-FR-123456789',
  expirationDate: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000).toISOString(),
})

console.log('Issued VC:', vc.proof.jws)

Verify a Verifiable Credential

const result = await vcService.verifyVerifiableCredential({ credential: vc })

if (result.valid) {
  console.log('Issuer:', result.issuer)
  console.log('Claims:', result.claims)
} else {
  console.error('Verification failed:', result.error)
}

Configuration

Set VERAMO_SECRET_KEY in production (e.g. openssl rand -hex 32).

By default the agent uses in-memory storage. For production persistence, pass a database connection to createVeramoAgent({ dbConnection }) and install @veramo/data-store.

API

  • getVCService() – Returns the singleton VCService.
  • VCService#issueVerifiableCredential(options) – Issues a VC for a DPP.
  • VCService#verifyVerifiableCredential({ credential }) – Verifies a VC.
  • VCService#dppToVerifiableCredential(dpp, issuerEuid) – Convenience wrapper for issue.
  • createVeramoAgent({ dbConnection?, kmsSecretKey? }) – Build a custom Veramo agent (e.g. with DB).

References

License

MIT

About

Issue and verify W3C Verifiable Credentials for DPP. Used at Verisav. EU Business Wallet–ready.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors