Skip to content

interop-alliance/data-integrity-core

Repository files navigation

Data Integrity and SSI Types (@interop/data-integrity-core)

Node.js CI NPM Version

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:

Install

  • Node.js 20+ is recommended.

NPM

To install via NPM:

npm install @interop/data-integrity-core

Development

To install locally (for development):

git clone https://github.com/interop-alliance/data-integrity-core.git
cd data-integrity-core
npm install

Usage

import { IVerifiableCredential, IVerifiablePresentation } from '@interop/data-integrity-core'

// for example, in an Express route definition:
const vp = req.body.presentation as IVerifiablePresentation

Import 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

  • IVerifiableCredential and IVerifiablePresentation
  • IOpenBadgeCredentialV3 (for OBv3 VCs)
  • IDIDCoreDocument and its children, IDIDDocument_v1_0 and IDIDDocument_v1_1
  • IKeyPair key description interface and its children, such as IVerificationKeyPair2020 and IKeyAgreementKeyPair2020
  • AbstractKeyPair abstract class (IKeyPair + signers, verifiers, and so on)
  • ISigner
  • IDocumentLoader and IRemoteDocument.
  • IZcap and related interfaces (IRootZcap, IDelegatedZcap, IZcapLike, and ICapabilityDelegationProof)
  • IJWE and related JOSE types (IRecipient, IEPK, IKeyResolver, IKeyAgreementKey, IHMAC)
  • IEDVDocument and related EDV types (IEncryptedDocument, IEDVConfig, IEDVChunk, IIndexEntry, IEDVQuery)

Contribute

PRs accepted.

See CONTRIBUTING.md -- code style and contribution conventions.

If editing the Readme, please conform to the standard-readme specification.

License

MIT License © 2026 Interop Alliance.

About

TypeScript types and definitions for the SSI ecosystem - cryptographic keys, DIDs, Verifiable Credentials, zCaps and related concepts.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages