@interop/data-integrity-core
v8.1.0
Published
TypeScript types, definitions, and base classes for the SSI ecosystem - cryptographic keys, DIDs, proofs, Verifiable Credentials, zCaps and related concepts.
Readme
Data Integrity and SSI Types (@interop/data-integrity-core)
TypeScript types and definitions for the SSI ecosystem - cryptographic keys, DIDs, Verifiable Credentials, zCaps and related concepts.
Table of Contents
Background
If you're implementing the Verifiable Credential specification in TypeScript, chances are that you're using a type definition for VerifiableCredentials and VerifiablePresentations. Many VC-related projects (Sphereon's Veramo, LEF's LearnCard, Transmute's Verifiable Data) include the type definitions in their monorepos.
We saw a niche for a standalone library that exported just the type definitions, hence this repository.
See W3C Verifiable Credentials Data Model specification.
Inspired by / incorporates elements of other VC Typescript libraries:
- https://github.com/Sphereon-Opensource/veramo (
/packages/core/src/types/vc-data-model.ts) - https://github.com/transmute-industries/verifiable-data (
/packages/vc.js/src/types/) - https://github.com/learningeconomy/LearnCard (
/packages/learn-card-core/src/types/) - Existing type definitions in DCC libraries (in
learner-credential-walletand others)
Install
- Node.js 20+ is recommended.
NPM
To install via NPM:
npm install @interop/data-integrity-coreDevelopment
To install locally (for development):
git clone https://github.com/interop-alliance/data-integrity-core.git
cd data-integrity-core
npm installUsage
import { IVerifiableCredential, IVerifiablePresentation } from '@interop/data-integrity-core'
// for example, in an Express route definition:
const vp = req.body.presentation as IVerifiablePresentationImport everything from the package root. The root entry point
(@interop/data-integrity-core) re-exports every type, interface, and class
in this package, and is the recommended single import path. The package is
types-only with "sideEffects": false, so importing from the root is fully
tree-shakeable.
The subpath exports (/did, /keypair, /loader, /vcdm, /zcap) are
optional and exist only for narrower imports; each re-exports a subset of what
the root already provides. You never need a subpath to reach a type listed
below.
Exported Types/Interfaces
IVerifiableCredentialandIVerifiablePresentationIOpenBadgeCredentialV3(for OBv3 VCs)IDIDCoreDocumentand its children,IDIDDocument_v1_0andIDIDDocument_v1_1IKeyPairkey description interface and its children, such asIVerificationKeyPair2020andIKeyAgreementKeyPair2020AbstractKeyPairabstract class (IKeyPair + signers, verifiers, and so on)ISignerIDocumentLoaderandIRemoteDocument.IZcapand related interfaces (IRootZcap,IDelegatedZcap,IZcapLike, andICapabilityDelegationProof)IJWEand related JOSE types (IRecipient,IEPK,IKeyResolver,IKeyAgreementKey,IHMAC)IEDVDocumentand related EDV types (IEncryptedDocument,IEDVConfig,IEDVChunk,IIndexEntry,IEDVQuery)
Contribute
PRs accepted.
If editing the Readme, please conform to the standard-readme specification.
License
MIT License © 2026 Interop Alliance.
