@verisav/dpp-verifiable-credentials
v1.0.0
Published
Issue and verify W3C Verifiable Credentials for Digital Product Passports. Used at Verisav. EU Business Wallet–ready.
Maintainers
Readme
@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-credentialsOptional (for persistent storage of credentials):
npm install @veramo/data-storeUsage
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 singletonVCService.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
