Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

OpenID4VCI

Python implementation of the OpenID4VCI specification for eduTAP.

This implementation follows the final specification of OpenID4VCI 1.0 (https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html).

Scope: the Issuer role

The specification defines three roles: Wallet, Credential Issuer and Authorization Server. This library implements the Credential Issuer. The Wallet role belongs to Google Wallet, Apple Wallet, the EUDI Wallet and others; we talk to them, we do not implement them.

Whether the Authorization Server is this application or a separate deployment is left open — the issuer metadata field authorization_servers carries either answer.

Credential formats

Adapters exist for the three Credential Format Profiles of Appendix A. Note the exact format identifiers, because they are what a Wallet matches against:

Profile Identifier Reference
ISO mdoc mso_mdoc ISO/IEC 18013-5
IETF SD-JWT VC dc+sd-jwt https://datatracker.ietf.org/doc/draft-ietf-oauth-selective-disclosure-jwt-vc/
W3C VCDM jwt_vc_json, jwt_vc_json-ld, ldp_vc https://www.w3.org/TR/vc-data-model-2.0/

Earlier drafts used vc+sd-jwt for SD-JWT VC. Current profiles — among them the OpenID4VC High Assurance Interoperability Profile 1.0 — use dc+sd-jwt.

Installation

pip install openid4vci

CBOR and COSE are only needed by the ISO mdoc profile, so they sit behind an extra. Install it when you issue mso_mdoc:

pip install "openid4vci[mdoc]"

JOSE is not optional and ships with the base install: key possession proofs, signed issuer metadata and encrypted responses are all JWS/JWE/JWK.

Endpoints and their modules

Section Endpoint Module
4 Credential Offer models/offer.py
5 / 6 Authorization, Token models/oauth.py
7 Nonce models/nonce.py
8 Credential models/credential.py
9 Deferred Credential models/deferred.py
10 Encrypted requests and responses crypto/encryption.py
11 Notification models/notification.py
12 Metadata (issuer and authorization server) models/metadata.py

Status

The model layer is implemented and tested against the specification: every request, response and metadata document of Sections 4 to 12, with the rules the specification states in prose enforced by validators rather than left to the caller.

jwt key proof validation (Appendix F.1) is implemented, as is the FastAPI router serving the Nonce, Credential, Deferred Credential and Notification endpoints and the metadata document. The router owns the protocol mechanics and delegates every decision to an IssuerBackend a deployment provides.

Message encryption (Section 10) and signing are implemented too. The signer is a protocol with a local implementation, so an HSM or a remote signing service can take its place.

Not implemented yet: the credential format adapters (adapters/) and the di_vp and attestation proof types.

Built against the specification source at tag 1.0-final of openid/OpenID4VCI. 1.0 is the Final Specification and is not subject to further revision; 1.1 exists only as a working group draft.

Documentation

Follows Diataxis, builds with Sphinx and MyST:

make docs

Relationship to the platform packages

Wallet vendors accept OpenID4VCI alongside their own proprietary provisioning APIs. The platform packages depend on this library and add only what is vendor-specific — the offer delivery mechanism, the metadata profile a given wallet accepts, and its trust anchors:

edutap.wallet_google_identity  ->  openid4vci
edutap.wallet_apple            ->  (own protocol)

The dependency points one way. Nothing vendor-specific belongs in this package.

Release files for openid4vci 1.0.0a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openid4vci 1.0.0a1
File Size Uploaded
openid4vci-1.0.0a1.tar.gz 71.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openid4vci 1.0.0a1
File Interpreter ABI Platform
openid4vci-1.0.0a1-py3-none-any.whl Python 3 none any Details

Total release size: 124.0 kB

Release files / openid4vci-1.0.0a1.tar.gz

Download URL openid4vci-1.0.0a1.tar.gz
Size 71.4 kB
Tags Source
SHA-256 checksum
How to use checksums
ea578a1792138ca2046fdcd556236c15dc7ea02e423c872377f86c716f7db85c
BLAKE2b-256 checksum
How to use checksums
e8b5f20ffd9c0879f5f31d0fd30f966761b780288403ad90e5ba721ef77d4560
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.

Transparency log

Release files / openid4vci-1.0.0a1-py3-none-any.whl

Download URL openid4vci-1.0.0a1-py3-none-any.whl
Size 52.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a678f399c2dff833693730c03f0dc82ecb4c5766844366b2eb9725ee740ea19b
BLAKE2b-256 checksum
How to use checksums
c2b86aaf693e612e56039a866c54aa24b363e6e2e723956653360ad5eb0b1ff6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0a1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page