Skip to content

EUDI Wallet Reference Implementation – Repositories

The EUDI Wallet Reference Implementation uses a modular architecture with business-agnostic, reusable components that evolve incrementally and can be reused across multiple projects. This document provides an overview of the key repositories of the EUDI Reference Implementation.

The EUDI Wallet Reference Implementation includes the following components:

Libraries

Wallet Core (Android) and Wallet Kit (iOS) Coordinator Libraries

Repository Description
Wallet Core (Android) Implementation of the EUDI Wallet Core library for Android that serves as a coordinator layer between the Wallet UI App and the Wallet libraries. Currently, it coordinates issuing, proximity and remote presentation libraries.
Wallet Kit (iOS) Implementation of the EUDI Wallet Kit library for iOS that serves as a coordinator layer between the Wallet UI App and the Wallet libraries. Currently it coordinates issuing, proximity and remote presentation libraries.

Proximity Sharing iOS Libraries

Repository Description
mDoc Security (iOS) Implementation of mDoc security mechanisms according to ISO/IEC 18013-5.
mDoc Data Transfer (iOS) Implementation of the mDoc data-transfer library according to ISO/IEC 18013-5.
mDoc Data Model (iOS) Implementation of the mDoc data model according to ISO/IEC 18013-5.

Proximity Sharing Android Libraries

Repository Description
mDoc Data Transfer (Android) This library provides a set of classes to manage the transfer of documents in a EUDI ISO/IEC 18013-5 Android Wallet.

Remote Presentation iOS Libraries

Repository Description
Presentation Exchange (iOS) Implementation of DIF Presentation Exchange v2 specification in Swift.
SIOPv2 & OpenID4VP protocols (iOS) Implementation of SIOPv2 and OpenID4VP protocols (wallet's role) in Swift.
SD-JWT (iOS) SD-JWT library for creating and verifying SD-JWT in Swift.

Remote Presentation Android Libraries

Repository Description
Presentation Exchange (Android) Implementation of DIF Presentation Exchange v2 specification in Kotlin.
SIOPv2 & OpenID4VP protocols (Android) Implementation of SIOPv2 and OpenID4VP protocols (wallet's role) in Kotlin.
SD-JWT (Android) SD-JWT library for creating and verifying SD-JWT in Kotlin.

Issuing iOS Libraries

Repository Description
OpenID4VCI (iOS) Implementation of credential management supporting the OpenID4VCI protocol.

Issuing Android Libraries

Repository Description
OpenID4VCI (Android) Implementation of credential management supporting the OpenID4VCI protocol.

Wallet Data Storage and Cryptographic Management iOS Libraries

Repository Description
mDoc Document Storage (iOS) Storage for keys and wallet documents.

Wallet Data Storage and Cryptographic Management Android Libraries

Repository Description
mDoc Document Storage (Android) This library provides a set of classes to manage documents and their cryptographic keys in a EUDI Android Wallet.

Revocation Libraries

Repository Description
Token Status List (Kotlin) Statium is a Kotlin multiplatform library supporting JVM and Android platforms. It implements the Token Status List Specification and allows callers to check the status of a 'Referenced Token' as defined in the specification, effectively enabling applications to verify if tokens are valid, revoked or in other states.
Token Status List (Swift) Statium is a Swift library for iOS and macOS. It implements the Token Status List Specification and allows callers to check the status of a 'Referenced Token' as defined in the specification, effectively enabling applications to verify if tokens are valid, revoked or in other states.

rQES: Low Level Libraries

Repository Description
EUDI rQES CSC library (Kotlin) This is a Kotlin library targeting Android that supports the Cloud Signature Consortium API (version 2) protocol.
EUDI rQES CSC library (Swift) This is a Swift library targeting iOS that supports the Cloud Signature Consortium API (version 2) protocol.

rQES: Core and Kit Libraries

Repository Description
EUDI Remote Qualified Electronic Signature (RQES) Core library for Android This module provides the core functionality for the EUDI Wallet for Android, focusing on the Remote Qualified Electronic Signature (RQES) service.
EUDI Remote Qualified Electronic Signature (RQES) Core library for iOS This module provides the core functionality for the EUDI Wallet for iOS, focusing on the Remote Qualified Electronic Signature (RQES) service.

rQES: UI Libraries

Repository Description
EUDI Remote Qualified Electronic Signature (RQES) UI library for Android This module provides the core and UI functionality for the EUDI Wallet for Android implementation, focusing on the Remote Qualified Electronic Signature (RQES) service.
EUDI Remote Qualified Electronic Signature (RQES) UI library for iOS This package provides the core and UI functionality for the EUDI Wallet for iOS implementation, focusing on the Remote Qualified Electronic Signature (RQES) service.

EUDI Wallet mobile native applications

Repository Description
Wallet UI App (Android) Implementation of Wallet UI App for Android. Currently, it includes a demo App, demonstrating the following capabilities: Proximity presentation, Same-device Online Presentation and Issuance of PID and mDL.
Wallet UI App (iOS) Implementation of Wallet UI App for iOS. Currently, it includes a demo App, demonstrating the following capabilities: Proximity presentation, Same-device Online Presentation and Issuance of PID and mDL.

Verifier Apps and Services

Repository Description
Web Verifier Demo Web Verifier UI application (Frontend) that acts as a Verifier/RP trusted endpoint. Available at: https://verifier.eudiw.dev
RESTful API (web-services) Demo Web Verifier application (Backend RESTful service) that acts as a Verifier/RP trusted endpoint.

Issuing Apps and Services

Repository Description
OpenID4VCI issuer (Python) An implementation of a credential issuing service, according to OpenID4VCI, in Python. Available at: https://issuer.eudiw.dev/
OpenID4VCI issuer (Kotlin) An implementation of a credential issuing service, according to OpenID4VCI, in Kotlin. Available at: https://issuer-backend.eudiw.dev/

Signing Apps and Services

Repository Description
TrustProvider Signer The TrustProvider Signer is a remote signing service provider and client. The TrustProvider Signer can be accessed using the EUDI Wallet through OID4VP presentation of the PID. Available here.
EUDI Wallet-driven signer QTSP Implementation of a wallet-driven QTSP for the remote Qualified Electronic Signature component of the EUDI Wallet. The QTSP provides endpoints based on the CSC API v2.0 specification and supports authentication via OpenID4VP.
EUDI Wallet-driven external SCA Implementation of a wallet-driven SCA for the remote Qualified Electronic Signature component of the EUDI Wallet. The SCA provides endpoints that allow the calculation of the hash value of a document and obtain the signed document given the signature value.
RP Centric rQES SCA This is a REST API server implementing the RP-centric SCA for the remote Qualified Electronic Signature (rQES) component of the EUDI Wallet.