# @sd-jwt/jwt-status-list

> Implementation based on https://datatracker.ietf.org/doc/draft-ietf-oauth-status-list/

Latest version **0.19.0** (published 2026-01-23) · Apache-2.0 license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install @sd-jwt/jwt-status-list
pnpm add @sd-jwt/jwt-status-list
yarn add @sd-jwt/jwt-status-list
bun add @sd-jwt/jwt-status-list
```

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 0.19.0 |
| Published | 2026-01-23 |
| First published | 2024-05-13 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=20 |
| Dependencies | 3 |
| Unpacked size | 57.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 83 |
| Author | Mirko Mollik |
| Maintainers | blu3beri, openwalletfoundation |
| Keywords | sd-jwt-vc, status-list, sd-jwt |

## Links

- npm: https://www.npmjs.com/package/@sd-jwt/jwt-status-list
- Repository: https://github.com/openwallet-foundation/sd-jwt-js
- Homepage: https://github.com/openwallet-foundation/sd-jwt-js/wiki
- Issues: https://github.com/openwallet-foundation/sd-jwt-js/issues
- npm.io page: https://npm.io/package/@sd-jwt/jwt-status-list

## Dependencies (3)

- [pako](https://npm.io/package/pako.md) ^2.1.0
- [@sd-jwt/types](https://npm.io/package/@sd-jwt/types.md) 0.19.0
- [@sd-jwt/utils](https://npm.io/package/@sd-jwt/utils.md) 0.19.0

## Alternatives

- [@clerk/clerk-expo](https://npm.io/package/@clerk/clerk-expo.md) — 133.6K weekly downloads
- [@pothos/plugin-authz](https://npm.io/package/@pothos/plugin-authz.md) — 12.4K weekly downloads
- [@bounded-sh/client](https://npm.io/package/@bounded-sh/client.md) — 3.2K weekly downloads
- [@luigi-project/plugin-auth-oauth2](https://npm.io/package/@luigi-project/plugin-auth-oauth2.md) — 2.3K weekly downloads
- [@nocobase/plugin-verification](https://npm.io/package/@nocobase/plugin-verification.md) — 2.0K weekly downloads

## Recent versions

- 0.19.0 (latest) — 2026-01-23
- 0.19.1-next.5 (next) — 2026-04-08
- 0.19.1-next.4 — 2026-02-10
- 0.19.1-next.3 — 2026-01-31
- 0.19.1-next.2 — 2026-01-28
- 0.19.1-next.1 — 2026-01-27
- 0.19.1-next.0 — 2026-01-23
- 0.18.2-next.1 — 2026-01-20
- 0.18.2-next.0 — 2026-01-14
- 0.18.1 — 2026-01-14
- 0.18.1-next.2 — 2026-01-14
- 0.18.1-next.1 — 2026-01-12
- 0.18.1-next.0 — 2026-01-11
- 0.18.0 — 2026-01-11
- 0.17.2-next.13 — 2026-01-11
- … 87 more at https://npm.io/package/@sd-jwt/jwt-status-list/versions

## README

![License](https://img.shields.io/github/license/openwallet-foundation/sd-jwt-js.svg)
![NPM](https://img.shields.io/npm/v/%40sd-jwt%2Fhash)
![Release](https://img.shields.io/github/v/release/openwallet-foundation/sd-jwt-js)
![Stars](https://img.shields.io/github/stars/openwallet-foundation/sd-jwt-js)

# SD-JWT Implementation in JavaScript (TypeScript)

## jwt-status-list

An implementation of the [Token Status List](https://datatracker.ietf.org/doc/draft-ietf-oauth-status-list/) for a JWT representation, not for CBOR.
This library helps to verify the status of a specific entry in a JWT, and to generate a status list and pack it into a signed JWT. It does not provide any functions to manage the status list itself.

## Installation

To install this project, run the following command:

```bash
# using npm
npm install @sd-jwt/jwt-status-list

# using yarn
yarn add @sd-jwt/jwt-status-list

# using pnpm
pnpm install @sd-jwt/jwt-status-list
```

Ensure you have Node.js installed as a prerequisite.

## Usage

Creation of a JWT Status List:

```typescript
// pass the list as an array and the amount of bits per entry.
const list = new StatusList([1, 0, 1, 1, 1], 1);
const iss = 'https://example.com';
const payload: JWTPayload = {
    iss,
    sub: `${iss}/statuslist/1`,
    iat: Math.floor(Date.now() / 1000), // issued at time in seconds
    ttl: 3000, // time to live in seconds, optional
    exp: Math.floor(Date.now() / 1000) + 3600, // expiration time in seconds, optional
};
const header: JWTHeaderParameters = { alg: 'ES256' };

const jwt = createHeaderAndPayload(list, payload, header);

// Sign the JWT with the private key, e.g. using the `jose` library
const jwt = await new SignJWT(values.payload)
      .setProtectedHeader(values.header)
      .sign(privateKey);

```

Interaction with a JWT status list on low level:

```typescript
//validation of the JWT is not provided by this library!!!

// jwt that includes the status list reference
const reference = getStatusListFromJWT(jwt);

// download the status list
const list = await fetch(reference.uri);

//TODO: validate that the list jwt is signed by the issuer and is not expired!!!

//extract the status list
const statusList = getListFromStatusListJWT(list);

//get the status of a specific entry
const status = statusList.getStatus(reference.idx);
```

### Integration into sd-jwt-vc

The status list can be integrated into the [sd-jwt-vc](../sd-jwt-vc/README.md) library to provide a way to verify the status of a credential. In the [test folder](../sd-jwt-vc/src/test/index.spec.ts) you will find an example how to add the status reference to a credential and also how to verify the status of a credential.

### Caching the status list

Depending on the  `ttl` field if provided the status list can be cached for a certain amount of time. This library has no internal cache mechanism, so it is up to the user to implement it for example by providing a custom `fetchStatusList` function.

## Development

Install the dependencies:

```bash
pnpm install
```

Run the tests:

```bash
pnpm test
```

---
_Source: https://npm.io/package/@sd-jwt/jwt-status-list · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
