
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
@sd-jwt/core
Advanced tools
Core library for Selective Disclosure for JWTs (SD-JWT) — RFC 9901.
This package provides types, utilities, encoding/decoding, presentation, and the main SDJwtInstance class — everything needed to issue, present, and verify SD-JWTs. For SD-JWT-based Verifiable Credentials, use @sd-jwt/sd-jwt-vc, which is built on top of this package.
# Using npm
npm install @sd-jwt/core
# Using pnpm
pnpm add @sd-jwt/core
# Using yarn
yarn add @sd-jwt/core
import Crypto from 'node:crypto'
import { SDJwtInstance } from '@sd-jwt/core'
// Bring your own crypto – any Signer / Verifier / Hasher that fits the interface
const { privateKey, publicKey } = Crypto.generateKeyPairSync('ed25519')
const sdjwt = new SDJwtInstance({
signer: async (data) => {
const sig = Crypto.sign(null, Buffer.from(data), privateKey)
return Buffer.from(sig).toString('base64url')
},
verifier: async (data, sig) => {
return Crypto.verify(null, Buffer.from(data), publicKey, Buffer.from(sig, 'base64url'))
},
signAlg: 'EdDSA',
hasher: async (data, alg) => {
return new Uint8Array(Crypto.createHash(alg.replace('-', '')).update(data).digest())
},
hashAlg: 'sha-256',
saltGenerator: async () => Crypto.randomBytes(16).toString('base64url'),
})
// Issue
const credential = await sdjwt.issue(
{ firstname: 'John', lastname: 'Doe', ssn: '123-45-6789' },
{ _sd: ['firstname', 'lastname', 'ssn'] }
)
// Present (disclose only firstname)
const presentation = await sdjwt.present(credential, { firstname: true })
// Verify
const { payload } = await sdjwt.verify(presentation)
console.log(payload) // { firstname: 'John', ... }
Runnable examples are available in examples/sd-jwt/core. Run them from the repository root:
pnpm tsx examples/sd-jwt/core/basic.ts
See the SD-JWT examples overview for the full list.
This library is platform agnostic and works in:
A global TextEncoder and TextDecoder must be available. See the React Native notes if you need a polyfill.
Cryptographic operations (signing, verification, hashing, salt generation) are provided as callbacks. @owf/crypto provides Web Crypto based implementations.
See the Contributing Guide for details on how to contribute to this project.
This project is licensed under the Apache License Version 2.0 (Apache-2.0).
FAQs
SD-JWT RFC 9901 implementation in TypeScript
The npm package @sd-jwt/core receives a total of 0 weekly downloads. As such, @sd-jwt/core popularity was classified as not popular.
We found that @sd-jwt/core demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.