Overview | Packages | Getting Started | Supported Environments | Contributing | License
To avoid reinventing the wheel, many identity projects share common needs for data types and utility functions. Identity Common TypeScript provides a shared library of TypeScript types and utilities for identity-related projects, promoting consistency and reducing duplication across the ecosystem.
- 🪶 Lightweight: Minimal dependencies to keep bundle sizes small
- 🌐 Platform Agnostic: Works in Node.js, browsers, and React Native
- 🔄 Reusable: Common utilities shared across identity solutions
- 🤝 Interoperable: Ensures compatibility between different identity projects
The project is organized into two main categories:
Generic, reusable utilities that can be used across any identity solution:
| Package | Description | Status |
|---|---|---|
@owf/identity-common |
Base package with common types and utilities | 🚧 In Development |
@owf/jose |
JOSE/JWT implementation with common validation methods | 📋 Planned |
@owf/cose |
COSE/CWT implementation with common validation methods | 📋 Planned |
@owf/x509 |
X.509 certificate parsing, creation, and verification | 📋 Planned |
@owf/token-status-list |
JWT/CWT Token Status List implementation | 📋 Planned |
Tools specific to the European Digital Identity (EUDI) Wallet ecosystem:
| Package | Description | Status |
|---|---|---|
@owf/eudi-lote |
ETSI TS 119 602 Lists of Trusted Entities (LoTE) | 📋 Planned |
@owf/eudi-certificates |
Registration and access certificate verification | 📋 Planned |
@owf/eudi-payment |
ARF TS 12 Electronic Payment SCA extensions | 📋 Planned |
Note: While the EUDI Wallet is built on open standards (OpenID4VC, SD-JWT VC), it requires specific extensions for Trust, Payments, and document signing that are better suited in dedicated packages.
The base package providing common types and utilities for identity applications.
npm install @owf/identity-commonimport { } from '@owf/identity-common'Install the packages you need:
# Using npm
npm install @owf/identity-common
# Using pnpm
pnpm add @owf/identity-common
# Using yarn
yarn add @owf/identity-commonTo contribute or develop locally:
# Clone the repository
git clone https://github.com/openwallet-foundation-labs/identity-common-ts.git
cd identity-common-ts
# Install dependencies (requires pnpm)
pnpm install
# Build all packages
pnpm build
# Run tests
pnpm testThis library is platform agnostic and supports:
- ✅ Node.js (>=20)
- ✅ Browsers (modern browsers with ES2020 support)
- ✅ React Native
Your environment must provide:
URLandURLSearchParamsimplementations- A global
fetchimplementation (or provide it via callbacks)
Because these libraries are platform agnostic, cryptographic operations and other platform-specific functionality must be provided via callbacks:
import { someFunction } from '@owf/identity-common'
// Provide platform-specific implementations
const result = await someFunction({
crypto: {
sha256: async (data) => { /* your implementation */ },
randomBytes: (length) => { /* your implementation */ },
},
fetch: globalThis.fetch, // if not globally available
})This library is designed to work with and support other OpenWallet Foundation projects:
- sd-jwt-js - SD-JWT implementation
- oid4vc-ts - OpenID4VC implementation
- openid-federation-ts - OpenID Federation implementation
- credo-ts - Aries Framework JavaScript
- EUDIPLO - EUDI Wallet implementation
We welcome contributions! Whether you're:
- 🐛 Reporting bugs
- 💡 Suggesting features
- 📝 Improving documentation
- 🔧 Submitting code changes
Please read our Contributing Guide to get started.
Want to add a new package to the monorepo? Check out our guide for adding packages.
This project is licensed under the Apache License Version 2.0 (Apache-2.0).