1. Executive Summary and Project Context

1.1 Background

WE BUILD is a Large Scale Pilot (LSP) funded by the European Commission. The project tests how the European Digital Identity (EUDI) Wallet and the European Business Wallet (EBW) can support cross-border business processes across the EU.

The goal is practical: reduce administrative barriers that slow down companies when they operate across borders, such as opening a bank account, exchanging trusted business documents, or registering a branch in another country.

WE BUILD is organised around 13 concrete use cases that demonstrate how digital identity wallets can support real business processes. These use cases are grouped into three main areas:

  • Business (WP2) — processes such as company registration, mandates and representation.

  • Supply Chain (WP2) — logistics, transport documentation and electronic invoicing.

  • Payments & Banking (WP3) — secure payments and simplified onboarding to financial services.

1.2 WE BUILD’s Role in the EUDI and EBW Journey

WE BUILD operates within the emerging EUDI and EBW ecosystem, but it is not the final production environment. Instead, the project acts as a large-scale pilot where technical solutions, governance models and interoperability rules can be tested through real use cases.

In the final EUDI ecosystem, every EU citizen will receive an EUDI Wallet at Level of Assurance (LoA) High.

WE BUILD focuses in particular on the EBW, designed for economic operators to manage mandates, exchange trusted business documents such as electronic invoices, and receive legally valid notifications. Some EBW functions, such as onboarding and data portability, will operate at LoA Substantial.

1.2.1 Bridging ARF Gaps through Specifications and Testing

The future EUDI ecosystem is defined through the Architecture Reference Framework (ARF). Because the ARF is still evolving, it does not yet cover every implementation detail. In the WE BUILD pilot environment, the full certification and qualification schemes used in production cannot always be applied.

To address these gaps, WE BUILD defines project-specific implementation rules through:

In the final ecosystem, wallets and services must undergo formal certification by national supervisory bodies.

WE BUILD does not WE BUILD does

certify EUDI wallets

provide WE BUILD wallets that pass ITB testing

rely on eIDAS-eID

provide WE BUILD eID with fictitious but realistic identities

create eIDAS-qualified e-signatures

define WE BUILD qualification of e-signatures focused on technical interoperability

use real MS registries

use real public sector bodies where possible, otherwise simulate them using fictitious

use the EC List of Trusted Lists (LoTL)

provide a WE BUILD LoTL

use the MS Trusted lists (TL)

provide WE BUILD TLs with input from supervisory bodies where available

reach production-level legal liability

operate within the WE BUILD agreement and trust framework, not within eIDAS

deal with national policy-making

use the WP5 MS Forum to indicate alignment with national policy-making

deal with universal definitions

define WE BUILD semantics within the available timeframe

issue EUDIW-RP access certificates

issue WE BUILD RP access certificates

issue eIDAS-QEAA

define WE BUILD QEAA focused on technical interoperability

1.3 Work Package 4 (WP4) - General Capabilities

The technical groups in WP4 - Architecture, Semantics, Wallet Providers, PID & EBWOID Providers, Qualified Trust Service Provider (QTSP), Trust Registry Infrastructure, and Test Infrastructure - provide the technical capabilities that support the use cases.

WP2 and WP3 use cases are expected to use the capabilities provided by WP4 rather than developing parallel technical solutions.

To ensure interoperability across participants, WE BUILD uses three levels of documentation:

  1. This Architecture & Integration Blueprint (D4.1) - the high-level architecture and system overview.

  2. Architectural Decision Records (ADR) - explains major architecture decisions and the reasoning behind them.

  3. WE BUILD Conformance Specifications (WBCS) — defines the detailed technical requirements that implementations must follow.

The governance process behind ADRs and WBCS, including how decisions are proposed and adopted, is described in Chapter 7.

The Interoperability Testbed (ITB) is a first step toward understanding conformity assessment requirements. In a controlled consortium environment, regulatory and technical specifications are translated into executable interoperability scenarios.

1.4 Getting Started

The Blueprint is the starting point for understanding how WE BUILD works.

  • Technical teams should begin with the WBCS to implement their interfaces.

  • Architects should review the ADRs to understand the key architecture decisions.

  • Every implementation must pass through the Interoperability Testbed (ITB) before participating in pilots.

2. Regulatory and Foundational Alignment

The WE BUILD architecture aligns with two key regulatory instruments: Regulation (EU) No 910/2014, as amended by Regulation (EU) 2024/1183 (commonly referred to as the amended eIDAS Regulation), and the proposed European Business Wallet proposal for economic operators.

2.1 The EUDI Framework

WE BUILD aligns with the legal and technical framework for EUDI wallets. Users can authenticate and present identity and attribute information while retaining control over what data is shared through selective disclosure and explicit consent.

The amended eIDAS Regulation is supported by several implementing acts defining the technical and governance framework for the EUDI Wallet ecosystem, most importantly:

Core Wallet Architecture and Technical framework

Person Identification Data (PID) and Electronic Attestations of Attributes (EAA)

Wallet Ecosystem Governance and Relying Parties

Trust Services and QSCD Framework

2.1.1 Standardisation and Technical Specifications

The European Commission, together with the European Digital Identity Cooperation Group, has published:

  • The ARF specifies main functionalities, roles and responsibilities, architecture and design principles, attestation formats and protocols, trust model, certification, and risk management of the EUDI Wallet ecosystem.

  • The Technical Specifications specify more technical details of selected topics derived from the ARF. The technical specifications describe various topics such as Relying Party registration, zero-knowledge proofs, attestation rulebooks, schemas and catalogues.

Furthermore, there are several standardisation organisations that contribute with standards for the EUDIW ecosystem.

  • ETSI ESI: ETSI ESI is a European Standardisation Organisation (ESO) that creates technical standards and European Norms for electronic identity and signatures supporting the eIDAS regulation. ETSI ESI has published approximately 80 standards for QTSP conformity assessment, protocols and formats for digital signatures, as well as protocols and formats for the EUDI Wallet. ETSI ESI has received the standardisation request STF 705 from the EU Commission to create and/or update several standards for the EUDI Wallet ecosystem.

  • CEN TC224: CEN Technical Committee 224 (TC224) is an ESO that has published several standards related to identification and devices with secure elements. More specifically, CEN TC224 WG17 are standardizing Common Criteria protection profiles of QSCD/WSCA, CEN TC224 WG18 develop standards related to biometric solutions, whilst CEN TC224 WG20 are creating standards related to EUDI Wallet onboarding and access control.

  • ISO/IEC: ISO is an international standardisation organisation and the International Electrotechnical Commission (IEC) develops international standards for electronic technologies. The international standardisation activities related to digital identities are performed within ISO/IEC Joint Technical Committee (JTC) 1 "Information Security". More specifically, several ISO/IEC standards are applicable to Common Criteria certification, conformity assessment and evaluation of the EUDI Wallet solutions. Furthermore, ISO/IEC has standardised the mobile driving license (ISO mDL) in ISO 18013-5, which is a PID format for the EUDI Wallet.

  • IETF: The Internet Engineering Task Force (IETF) creates technical standards that comprise the internet protocol suites. More specifically, IETF PKIX covers secure data exchanges and formats in the area of electronic signatures, PKI and trust services. Most notably, IETF has published standards for PKIX X.509 certificate and CRL profiles, OCSP, TLS and SD-JWT, which are relevant for the EUDI Wallet ecosystem. Furthermore, some of the IETF standards are used as basis by ETSI ESI, which have created European profiles of Qualified Certificates, AdES signature formats, SD-JWT VC, etc.

  • OpenID Foundation: The OpenID Foundation is an industrial standardisation organisation that develops open standards for identity, federation and security. The following OpenID standards are relevant for the EUDIW technical architecture: OpenID Connect Core (OIDC), OpenID For Verifiable Credential Issuance (OID4VCI), OpenID For Verifiable Presentations (OID4VP), and OpenID High Assurance Interoperability Profile (HAIP). OID4VP, OID4VCI and HAIP are used as the foundation for the ETSI TS 119 472 standardisation of EUDI Wallet protocols.

  • W3C: The World Wide Web Consortium (W3C) is an international standardisation organisation. The following W3C standards are relevant to the EUDI Wallet technical architecture: W3C Verifiable Credentials Data Model, W3C Web Authentication (WebAuthn), and W3C Digital Credentials API. More specifically, the W3C Verifiable Credentials Data Model is referenced as basis for an ETSI TS 119 472 EAA profile.

  • Cloud Signature Consortium (CSC): The Cloud Signature Consortium (CSC) is an international standardisation organisation focusing on compliant digital signature creation in the cloud. The CSC specification "CSC API v2 - Architectures and protocols for remote signature applications" is referenced by the EUDI Wallet architecture and is used as basis for the ETSI TS 119 432 standard.

In addition to the aforementioned standardisation organisations, the European Cybersecurity Agency (ENISA) is developing the EUDI Wallet Certification Scheme, which will be published as an implementing regulation under the Cybersecurity Act. The purpose of the EUDI Wallet Certification Scheme is to harmonise the national certifications of the EU Member States' EUDI Wallets.

2.2 The EBW Framework

The EBW framework is introduced through the European Commission’s Digital Package proposal as part of its 2025 Work Programme. The proposal aims to establish the EBW as a harmonised digital solution that reduces administrative burden and allows companies and public authorities to identify, authenticate and exchange data with legal effect across the European Union.

The EBW framework complements the EUDI framework by addressing the needs of economic operators and public authorities. It supports the digital management of representation rights and mandates, provides a secure channel for exchanging official documents and attestations, and includes support for a common directory. Interoperability with the EUDI Wallet is a core requirement.

The proposal supports the management and use of EAA, including owner identification data with selective disclosure. It defines requirements for authenticating owners and authorised users through (Q)EAAs and enables links between EAAs and other attestations. Access to EAAs by relying parties requires proper authorisation.

The framework relies on existing eIDAS trust services such as qualified electronic signatures, seals, timestamps and registered delivery services.

The proposal also introduces a European Digital Directory maintained by the Commission. The directory functions as a trusted internal system where EBW providers notify relevant service information and where digital addressing can be supported. Detailed requirements will be defined in future implementing acts.

The regulation supports role-based access so that multiple authorised users can operate a wallet. It also enables secure data exchange between EBWs, EUDI Wallets and relying parties, while allowing additional functionalities provided that core features remain unaffected.

From a technical perspective, the framework promotes the use of common protocols for sharing attestations. It requires secure onboarding using eID with a LoA of at least Substantial and mandates interoperability, secure communication interfaces, and mechanisms for validation and revocation. Further requirements will be defined in implementing acts.

Within WE BUILD, the proposed EBW framework is treated as a primary regulatory and architectural reference for business-focused identity and data exchange scenarios. Use case design and pilot activities align with the EBW model’s legal structure, interoperability requirements and trust-service framework, while taking forthcoming implementing acts into account.

3. Architecture Overview

3.1 Architectural Principles

While the previous chapter describes the regulatory and architectural frameworks that WE BUILD aligns with, this chapter introduces the architectural principles guiding the design of the WE BUILD ecosystem.

  • Interoperability: Wallet providers, issuers and verifiers interact across organisational and national boundaries.

  • Reusability: The architecture builds on existing EU digital infrastructure and results from previous Large Scale Pilots.

  • Security by design: Security controls are integrated into the architecture from the start.

  • Privacy by design: Users retain control over personal and organisational data through selective disclosure and explicit consent.

3.2 The Ecosystem at a Glance

The EUDI Wallet and EBW ecosystem follows the common three-party attestation model. In this model, three primary actors interact: issuer, holder and verifier. A trust framework supports these actors by providing the trust anchors used for validation.

  1. Holder — the wallet controlled by a natural or legal person.

  2. Issuer — an entity that issues attestations to the Holder.

  3. Verifier — a relying party that receives and validates attestations presented by the Holder.

  4. Trust framework — the infrastructure used to validate trust relationships between ecosystem participants (described in Chapter 6).

3.3 System Landscape

The diagram below illustrates the baseline trust topology of the EU wallet ecosystem. Issuers provide attestations to holders, holders present them to verifiers, and all actors validate trust relationships using the trusted lists. The trusted lists specify the recognised participants in schemes for electronic identification and trust services.

Diagram

WE BUILD focuses primarily on wallets for economic operators and public sector bodies. In these scenarios, qualified electronic registered delivery services (QERDS) support trusted messaging between recognised participants. Accordingly, interactions between data senders and receipients may be routed through a Qualified Trust Service Provider (QTSP) providing a QERDS. The QTSP is recognised in a scheme for trust services, just like in the previous diagram, enabling other participants to verify QERDS evidence issued by the QTSP. The WE BUILD Digital Directory (simulating the European Digital Directory) provides economic and public sector bodies with digital addressing for secure routing of documents and notifications.

While this model can apply to any data transmission, the senders, recipients and their QERDS providers can take the issuer-holder-verifier roles as illustrated as above. The QERDS provides an additional layer in the WE BUILD ecosystem:

Diagram

3.4 Wallet Types in WE BUILD

WE BUILD supports wallet solutions for both natural persons and economic operators.

Natural persons interact through EUDI Wallets, which enable individuals to authenticate and present personal identity attributes. Economic operators interact through EBW, which enable organisations to manage and present business-related attestations such as representation rights or organisational attributes.

From a deployment perspective, wallet solutions can be implemented in several ways depending on the target users, operational requirements, and cryptographic architecture. In practice, three main implementation approaches are relevant within the WE BUILD ecosystem.

Wallet type Typical context Characteristics

Mobile wallets (on-device)

Natural persons

Wallet application running on a user’s smartphone, with credentials stored and used locally on the device.

Server or Web-based wallets

Economic operators

Wallet services operated in backend infrastructure and accessed through Web interfaces or enterprise systems.

Hybrid wallets

Both contexts

Combine device-based interaction with backend cryptographic infrastructure.

The underlying cryptographic architecture of wallets is defined in the ARF and related standards. This Blueprint therefore focuses on the interactions and interoperability patterns relevant for WE BUILD rather than repeating the detailed wallet architecture definitions.

In practice, most deployments follow a mobile-first approach for natural persons and a server-based or enterprise-integrated approach for economic operators. Hybrid architectures may also be used to combine device-based user interaction with backend cryptographic services.

Diagram

4. How the Wallet Interacts with Services

Chapter 3 introduced the main actors in the WE BUILD ecosystem. This chapter describes how these actors interact through wallet-based service flows.

4.1 Interaction Pattern: Attestation Issuance

The WBCS for high-assurance credential issuance defines the requirements used in the project to ensure interoperable issuance of verifiable digital credentials between wallets and issuers. For reference on qualified electronic attestation of attributes, see the QEAA documentation.

The WE BUILD ecosystem mainly supports two credential issuance models, which differ in which actor initiates the process: wallet-initiated issuance and issuer-initiated issuance. If the credential cannot be issued immediately, deferred issuance is used. The wallet retries periodically until the credential is issued or an unrecoverable error occurs.

4.1.1 Wallet-initiated Issuance

This issuance flow is initiated by the user:

  1. The user opens their wallet and selects the credential type to be issued (for example, a PID or a QEAA).

  2. The wallet connects with the corresponding issuer and requests the credential.

  3. The user authenticates with the issuer, following the procedure specified by the issuer itself.

  4. The issuer requests the user’s consent to issue the credential and send it to their wallet.

  5. The issuer generates the credential and delivers it to the wallet.

  6. The wallet verifies the authenticity of the credential and stores it. From this point, the user becomes responsible for managing the issued credential.

Diagram

4.1.2 Issuer-initiated Issuance

This issuance flow is initiated by the issuer:

  1. The user interacts with the issuer (for example, during a digital onboarding process).

  2. The issuer prepares one or more credentials.

  3. The issuer offers these credentials to the user. This can be done in several ways, both same-device and cross-device:

    • By displaying a QR code that the user shall scan with their wallet.

    • By sending a link to the wallet.

  4. The wallet displays the offer and requests confirmation from the user.

  5. The user authenticates with the issuer, following the procedure specified by the issuer itself.

  6. The issuer requests the user’s consent to issue the credential and send it to their wallet.

  7. The issuer generates the credential and delivers it to the wallet.

  8. The wallet verifies the authenticity of the credential and stores it. From this point, the user becomes responsible for managing the issued credential.

Diagram

4.2 Interaction Pattern: Attestation Presentation (Receiving)

In this pattern, a verifier requests specific attestations from the wallet. The wallet presents the requested information, typically using selective disclosure mechanisms, and the verifier validates the received data.

The WE BUILD Conformance Specification for Credential Presentation describes how wallets and relying parties interoperate within the WE BUILD ecosystem. It covers presentation (request and response flows), interfaces between wallets and relying parties as well as security, privacy and interoperability requirements and same‑device and cross‑device invocation patterns.

4.3 Signature and Seal Integration

Wallets in WE BUILD provide the ability to create qualified electronic signatures and seals. This section describes the various integration models. For reference, see the QES documentation.

WE BUILD supports both wallet-centric and QTSP-operated approaches for electronic signatures and seals. In both models, the wallet provides the user interaction layer, while cryptographic operations may take place either locally or in remote infrastructure operated by a QTSP.

Both approaches are compatible with the architectural patterns described in the ARF. However, during the WE BUILD pilot phase not every wallet provider or QTSP is expected to implement every possible model. For interoperability across the consortium, WE BUILD therefore treats remote signing and sealing through QTSP-managed services with standardised interfaces as the common baseline. Local signing models may still be supported by individual wallet implementations, but they are not assumed as a uniform baseline for interoperability within the project.

This section aligns with the WP4 interoperability baselines defined for issuance and presentation flows. Proximity-based signing scenarios are currently outside the baseline protocol scope of the WE BUILD pilots.

In the WE BUILD pilot and ITB environment, eIDAS-qualified status cannot be achieved because the ITB operates outside the formal eIDAS certification framework. Any reference to “qualified” in WE BUILD therefore represents a technical demonstration only and does not constitute a legally valid qualified electronic signature. The prerequisites for eIDAS-qualified status remain unchanged, including use of a Qualified Signature Creation Device (QSCD) and a qualified certificate issued by a QTSP that is listed on an official national Trusted List.

4.3.1 Wallet-centric Signing Model

In the wallet-centric model, the EUDI Wallet is the central component of the electronic signature process. Three distinct signing processes are considered, depending on where the Signature Creation Application (SCA) runs and where the Signature Creation Device (SCD) is hosted.

4.3.1.1 1) Remote Signing with External SCA

The user initiates signing from the wallet, while the SCA is external. The document is sent to the external SCA for review and consent, after which the signing request is forwarded to a remote SCD that creates the signature and returns the result.

Remote signing with external SCA
4.3.1.2 Remote Signing with Local SCA (Wallet as SCA)

The user initiates signing from the wallet, which also acts as the SCA. The document is presented to the user within the wallet for review and consent. After approval, the wallet forwards the signing request to a remote SCD that produces the signature and returns the result.

Remote signing with local SCA
4.3.1.3 3) Local Signing

The user initiates signing from the wallet, which also acts as the SCA. The document is presented to the user within the wallet for review and consent. After approval, the signature is created locally using a SCD integrated in the user’s device.

Local signing

4.3.2 QTSP-centric Signing and Sealing Model

In the QTSP-centric model, the trust service provider operates the signing or sealing process. The cryptographic key material used for signature or seal creation is generated, stored, and used within infrastructure controlled by or on behalf of the QTSP, typically in secure hardware environments. From the perspective of the user, signing and sealing are therefore remote operations. External components interact with the trust service through defined interfaces, while the cryptographic operation itself is performed within the QTSP-controlled environment.

Within this architecture, the EUDI Wallet may act as a client-side orchestration component. It can authenticate the user, capture user intent, and trigger a signing operation. However, it does not operate the signature creation environment, does not manage signing credentials, and does not assume the responsibilities of a trust service provider.

In this model, the QTSP remains responsible for identity binding, credential issuance, and compliance with applicable ETSI standards. Signature or seal creation data remains under controlled conditions consistent with the required assurance level, and activation mechanisms enforce the conditions required for advanced or qualified signatures, including sole control where applicable.

The pilot implementation aims to remain technically aligned with qualified signing requirements. Pilot trust validation is described below and relies on consortium trusted lists.

4.3.3 CSC Interoperability Profile for Remote Signing and Sealing

For remote signing and sealing flows, WE BUILD uses the Cloud Signature Consortium (CSC) interoperability framework. CSC APIs expose standardised interfaces that allow wallets and client applications to interact with QTSP-operated signing services. The detailed WE BUILD CSC interoperability profile will be defined in a WBCS. That specification will describe the concrete integration details, including authorisation mechanisms, endpoints, supported formats and algorithms, and interoperability constraints used in the ITB. Until such a profile is published, CSC API v2.2.0.0 serves as the base reference specification for CSC-based interactions.

During the pilot phase, trust validation relies on consortium reference trust mechanisms. Wallet components or external SCAs validate participating QTSPs and trust anchors using WE BUILD trusted lists. The reference trusted list may include participating QTSP entries and their registered issuing certificate authorities for pilot purposes.

When a signing request is processed, the SCA validates the signer’s certificate chain against issuing certificate authorities listed in the WE BUILD trusted list and checks the QTSP status within the pilot trust framework. Revocation status is validated using OCSP responders or CRL distribution points operated by participating QTSPs. Where registration status checks are required, registrar processes are simulated through mock registrar services and endpoints.

4.3.4 Organisational Signing: Individuals Signing on Behalf of a Company

WE BUILD supports signing scenarios where an individual signs on behalf of an organisation. This model reuses the wallet-centric and QTSP-operated signing approaches described above. The wallet provides the user interface for document review and approval, while the QTSP performs the signature or seal creation within its controlled environment.

In these scenarios, the transaction must bind both the natural person and the organisation represented. The natural person identity is represented by the PID, while the organisation context is represented through the EBWOID, which acts as the cross-border minimum organisation identifier.

At signing time, identifiers or references to both the PID and the EBWOID are included in the transaction data presented to the user and subsequently authorised or signed. This ensures that the resulting signature or seal can be unambiguously linked to both the individual and the organisation.

The exact representation of these bindings is use-case specific and will be defined in rulebooks and WBCS (see Chapter 5 for the semantic and schema model).

4.4 Secure Communication Channel

This section describes how secure message exchange is integrated into the WE BUILD wallet ecosystem.

In WE BUILD, the secure communication channel is implemented through Qualified Electronic Registered Delivery Services (QERDS) operated by QTSPs. Whenever legal-grade delivery assurance is required, messages are routed through QERDS. QERDS providers ensure mutual authentication, end-to-end integrity and confidentiality, and interoperability across access points. This “registered delivery” pattern is positioned as an enabler for interactions between and across public sector bodies and economic operators.

Because the QERDS and the EU Digital Directory designated for the production European Business Wallet are not yet available, WE BUILD designates the pre-production QERDS specified by WP4 for use in WE BUILD business wallets. For reference, see the QERDS documentation.

4.4.1 From “Registered Delivery” to “Digital Identity Wallets”

As a baseline, a classic B2G/B2B situation is used: an authority notifies an economic operator, the economic operator responds, and the relying party requires evidence. With QERDS, both sides use their QERDS providers to register sending and receiving, so that delivery is not just transport, but is a process that produces trustworthy evidence.

In this model, WE BUILD takes the next step: wallets become the user-facing endpoints (“wallet-centric delivery”). The sender wallet and recipient wallet remain the places where users read, approve, and manage messages, or where they configure connections to backend systems to perform these actions. QERDS providers form the delivery layer underneath, handling routing, inter-provider exchange, and evidence creation, while wallets provide identity/authentication and user control.

4.4.2 Technical Flow (WE BUILD High-Level)

WE BUILD follows the QERDS architecture decomposition and the four-corner delivery pattern:

  1. Sender identification and authentication is performed at the sender’s QTSP (wallet-driven).

  2. Message submission is performed from the sender’s wallet or connected backend system to the sender QERDS (QTSP A).

  3. Discovery of the recipient’s QERDS endpoint and capabilities is performed via common services (e.g., the WE BUILD Digital Directory, simulating the EU Digital Directory from the EBW proposal).

  4. Handshake and relay is performed between QTSP A and QTSP B (QERDS-to-QERDS interoperability).

  5. Recipient notification is issued, followed by recipient authentication at QTSP B.

  6. Consignment and handover of the message and its metadata is performed to the recipient’s wallet or connected backend system.

  7. Evidence is made available to sender and recipient wallets (submission/dispatch and receipt/consignment or non-delivery). Evidence is protected by qualified sealing and, where required, qualified timestamping. Where applicable, the evidence can be pushed to the sender’s and the recipient’s backend systems as well.

4.5 Enterprise and System-to-System Wallet Interactions

Some WE BUILD scenarios involve interactions between backend systems rather than direct end-user actions. In these cases, wallet functionality may be integrated into enterprise platforms, APIs, or automated services.

This is particularly relevant for EBW scenarios such as supply chain credentials, Digital Product Passports, and automated B2B or B2G data exchange. In such cases, credential issuance and presentation may be initiated by backend systems while still following the interoperability patterns defined in this blueprint.

Although the interaction is system-driven, the same trust framework, credential formats, and verification mechanisms apply as in user-driven wallet interactions.

5. Information Inside the Wallet

While the previous chapter describes how wallets interact with services, this chapter describes the data and semantic structures used inside the wallet and in the exchanged attestations.

5.1 Semantic Model of the European Business Wallet

The semantic model is organised into three layers:

  1. Terminology — defines terms and their abstract concepts and establishes relationships between them.

  2. Vocabulary — defines classes, properties, and individuals linked to the terminology.

  3. Attestation mapping — maps vocabulary terms to the elements used in attestations.

The terminology and vocabulary layers are independent of attestation formats, while the mapping layer depends on the format used.

Currently, only W3C VCDM 2.0 supports machine-readable semantic mappings directly within credentials. For mDoc and SD-JWT-VC, the meaning of data fields must instead be defined in attestation rulebooks. In these cases, semantic interoperability between attestations is not automatically enforced.

5.1.1 WE BUILD Terminology

The WE BUILD terminology is published online and serves as a reference model for the terminology of the European Digital Identity Framework. The terminology is defined using the Simple Knowledge Organisation System (SKOS).

5.1.2 European Business Wallet Vocabulary

The European Wallet vocabulary is maintained in GitHub. It is defined using the Web Ontology Language (OWL), which specifies classes, properties and individuals of the vocabulary.

To support semantic interoperability, credential subjects used within the EBW framework are modelled in the vocabulary. These vocabulary terms are then mapped to the corresponding elements used in attestations.

If the credential format supports machine-readable semantic contexts, the mapping between credential data and the vocabulary can be embedded in the credential itself. Otherwise, the meaning of the data fields must be defined in attestation rulebooks, and the rulebook owner is responsible for mapping those fields to the vocabulary definitions.

Reuse of existing vocabularies The EBW vocabulary defines the domain-specific vocabulary used in the WE BUILD attestations. Existing vocabularies are reused where possible, including those for credential metadata, proof mechanisms, security, decentralised identifiers, and credential status. Domain vocabularies from other sectors may also be reused (for example, digital product passports, supply chains, education, railway and data spaces).

5.2 Attestation Rulebooks and Credential Schemas

WE BUILD defines rulebooks and credential data schemas for the attestations used in the project’s use cases. Rulebooks describe requirements, roles, processes, and conformance criteria for specific attestations. They also define how credential data fields relate to the semantic vocabulary used in the project.

Credential schemas define the structure of credential data and support implementers in producing interoperable credentials and validating that the data follows the agreed format.

Rulebook descriptions are currently provided by the use cases using a common template and are maintained in the project collaboration portal. As part of the ongoing work to formalise rulebooks and credential schemas, these descriptions will be consolidated in a shared repository such as the WE BUILD Attestation Rulebooks repository, including rulebooks for key credentials such as PID and EBWOID.

6. Trust, Security and Governance

The previous chapter described the structure of the information stored in wallets and exchanged as attestations. This chapter describes the trust infrastructure that allows ecosystem participants to validate those attestations.

6.1 Trust Ecosystem

The trust infrastructure for the EUDI and EBW ecosystem is based on three complementary processes: registration/onboarding of participants, notification of certain entities to the European Commission, and publication of Trusted Lists (or Lists of Trusted Entities) that provide cryptographic trust anchors for validation.

6.2 Establishing Trust Between Participants

WE BUILD defines the onboarding processes (how entities get registered), the trust framework (which rules apply), the PKI architecture (which certificates are used and how), the APIs used to query trust information programmatically, and the trust evaluation logic used by participants at runtime.

The infrastructure is based on the Trusted List model defined in the eIDAS Regulation and the ARF. It follows the European model in which a List of Trusted Lists (LoTL) points to Trusted Lists. Each Trusted List contains entries for authorised participants such as PID Providers, Attestation Providers (QEAA, PuB-EAA, non-qualified EAA), Wallet Providers, and Relying Parties.

The onboarding processes define how participants join the ecosystem. This includes how:

  • Relying Parties register, accept policies and configure access controls

  • PID and Attestation Providers register, declare supported attestation types and obtain registration and access certificates

  • Wallet Providers register and issue wallet instance attestations

  • Trust Service Providers register and publish relevant certificates

Once onboarding is completed, participants use the trust infrastructure to evaluate each other during normal operation. WE BUILD therefore defines a set of trust evaluation scenarios covering how participants verify each other at runtime.

These scenarios include:

  • a Wallet Unit evaluating a Credential Issuer before requesting a PID or attestation

  • a Credential Issuer evaluating the Wallet Unit before issuing

  • a Wallet Unit evaluating a Relying Party before presenting attributes

  • a Relying Party evaluating presented credentials (PID, QEAA, PuB-EAA, non-qualified EAA)

  • discovery and consumption of the LoTL and TLs.

For detailed information on authorities, registries and responsibilities, see Appendix C - Trust Ecosystem.

For reference on relying party access certificates and relying party registration certificates, see the RPAC/RPRC documentation.

6.2.1 Trust infrastructure architecture (overview)

In the Appendix - Trust Ecosystem there is a diagram that summarises the roles of Member State and European Commission, the split between registration and notification, and how Trusted Lists and the LoTL are produced and consumed. A simplified version used in WE BUILD is shown below.

Diagram

WE BUILD participants select the registry in which they register.

6.3 Revocation

Revocation ensures that attestations that are no longer valid can no longer be trusted or used.

WE BUILD distinguishes between attestation revocation, which is handled by issuers, and revocation or withdrawal of providers and services, which is reflected in the trust infrastructure.

6.3.1 Technical realisation

Revocation of PID, EBWOID and attestations is implemented by issuers. In WE BUILD, attestation revocation follows the agreed mechanism defined in the ADR on Attestation Revocation, based on the IETF Token Status List and aligned with OpenID4VC HAIP.

Short-lived attestations (valid for 24 hours or less) are not subject to revocation.

Revocation or withdrawal of providers and services is reflected in the trust infrastructure through status changes in Trusted Lists and, where applicable, invalidation of certificates.

6.3.2 Provider Obligations

To maintain a trusted ecosystem, PID and EBWOID providers agree to:

  • Define and publish revocation policies.

  • Ensure that only the issuing authority can revoke its attestations.

  • Publish revocation status information within a reasonable time frame.

6.3.3 Conditions for Mandatory Revocation

According to the rules, a provider must revoke without delay if:

  • The holder explicitly requests it.

  • The security of the wallet app itself (the unit certificate) is compromised.

  • Any of the specific situations defined in the provider’s public policy occur.

7. Architecture Governance: ADRs and WBCS

While the previous chapter described the operational trust infrastructure, this chapter describes the governance model used to define and maintain the technical architecture of the WE BUILD ecosystem. In a project as large as WE BUILD, interoperability between independently developed components must be ensured without requiring every developer to participate in all coordination meetings.

To maintain alignment, the project uses a technical governance model based on consensus, commitment and clear documentation. Technical choices are driven by the needs of the 13 use cases implemented in the project.

7.1 Architectural Decision Records (ADR)

The ADRs is essentially our project’s "logbook" for major decisions.

  • Purpose: The ADR process is where we formally capture and justify significant technical choices, such as which specific protocols and formats to use. Instead of having these decisions buried in a slide deck or a long email chain, we document the rationale and context so that everyone can understand the "Why" behind a choice.

  • Classification: We maintain a lightweight ADR for any software-related decision that affects how different systems work together (interoperability). This ensures alignment with external rules like the eIDAS Regulation and the ARF.

  • Lifecycle: ADRs are managed on GitHub (webuild-consortium/wp4-architecture). They move from a "Proposed" state to "Accepted" once the Architecture Group and relevant stakeholders reach consensus.

Diagram

7.2 WE BUILD Conformance Specifications (WBCS)

If ADRs capture the rationale ("why"), the WBCS define the implementation requirements ("how").

  • Operationalising Intent: We use the WBCS to turn high-level architectural goals into detailed technical rules. These specifications define the exact interfaces for wallets, issuers, and verifiers.

  • A Commitment to Implement: This is the most important part: An approved WBCS is not just a suggestion. When a specification is approved, it signifies a commitment from the participating organizations to actually build that interface into their services.

  • Defining Implementation Requirements: Because the WBCS define how interfaces and protocols must be implemented, they allow us to achieve interoperability across the whole consortium. If you follow the WBCS, you avoid building an "interoperable island" where your service only works with a few specific partners.

  • The Link to Testing: Our Interoperability Testbed (ITB) uses these specifications as its primary rulebook. Implementations that do not follow the WBCS will not pass the ITB tests and are therefore not eligible for pilot participation.

Diagram

7.3 Document Lifecycle

WE BUILD moves fast, and our documentation needs to keep up. We don’t wait for "perfect" documents; we iterate as the use cases mature.

  • The Blueprint as a Living Framework: This Blueprint (D4.1) sets the high-level structure, but it is supported by the more agile ADRs and WBCS that live on GitHub. As we learn, we update these records and specifications.

  • The Hybrid Working Flow: To keep things moving, we use a "hybrid" approach to our document lifecycle:

    • GitHub: This is our source of truth for all accepted specifications and decision records.

    • Slack: The ITB uses a dedicated channel for implementation support, where developers can ask questions and help each other in real-time.

    • Meetings: We hold interface-alignment meetings to discuss progress, resolve gaps, and gain final agreement on new specifications.

  • Maturing Together: As the project moves forward, we will add more detailed definitions to the documentation stack. This approach allows the Blueprint to evolve from a high-level architectural reference into a practical guide for implementing the WE BUILD ecosystem.

8. Testing and the Interoperability Testbed (ITB)

Once architectural decisions and specifications are defined, interoperability must be verified in practice. This chapter describes how interoperability is verified through the WE BUILD testing strategy and the Interoperability Testbed (ITB).

8.1 Testing Strategy

The Architecture Group coordinates the architectural building blocks and ensures alignment with the project use cases.

The Testing Group develops test cases and test suites for:

  • Generic test cases based on WBCS.

  • Functional test cases for required features (based on WBCS and, when needed, rulebooks and/or data schemas).

  • End-to-end and piloting test cases for WP2/WP3 use cases (based on existing WBCS, rulebooks and data schemas).

To implement tests in the ITB, the Testing Group needs the specification artefacts: WBCS, rulebooks, data schemas, namespaces, and related metadata. The Architecture Group ensures that these artefacts are complete and consistent with the overall architecture and supports WP4 groups and WP2/WP3 use cases in providing the required input.

Most specification artefacts are produced within WP4:

  • The Semantics Group: attestations (data schemas, namespaces, and relevant rulebook parts).

  • The Wallet, PID/EBWOID and QTSP Group: WBCS and commitment to implement them.

  • The Architecture Group: Architecture Decision Records (ADRs) that define the allowed scope for WBCS.

  • The Trust Infrastructure Group: validation and verification requirements to be reflected in test cases.

For piloting-specific test suites, the Testing Group collaborates directly with the relevant use case(s). The Architecture Group acts as a facilitator to ensure consistency across the involved specifications.

8.2 Test Requirements

Test cases are derived from the WBCS.

WBCS must stay within the scope defined by the published ADRs. If a WBCS needs functionality beyond that scope, it requires an ADR discussion. Testing focuses on features implemented by multiple parties, since interoperability requires multi-party implementations.

Implementing participants discuss WBCS together with the use cases that require the functionality.

The ITB initially includes two credential-agnostic test suites:

If a use case requires different functionality, it can propose a new or adapted (draft) WBCS. Once the WBCS and required supporting artefacts are available, the Testing Group implements the corresponding test cases in the ITB.

Some test cases require additional artefacts beyond the WBCS, such as rulebooks for attestation-specific requirements, and the corresponding data schemas, namespaces, and metadata.

When the required artefacts are available, the Testing Group implements the test cases in the ITB and communicates their availability to the consortium.

8.3 Additional Documentation

A user guide on how to onboard and execute tests.

9. What’s Next & Scaling Up

This document, together with the initial attestation data models and schemas, establishes a common technical baseline for the wallet ecosystem. The architecture will continue to evolve throughout the project as the focus shifts towards implementation and testing.

WP4 - General Capabilities operates on a defined timeline with key milestones and deliverables while adapting to feedback from the use cases as well as business, regulatory and technological developments. The deliverable is expected to evolve through updates and refinements as new ADRs and WBCS are added or revised. The document therefore serves as a living reference for the WE BUILD architecture.

The roadmap for months 8—​19 focuses on maturing the trust infrastructure and validating cross-border interoperability through the project’s automated testbed.

Key Milestones and Deliverables (Months 8—​19)

Month Type Reference and Title Connection to D4.1

10

Deliverable

D4.3 Attestation Data Models & PID/EBWOID Rulebook

Finalizes the data structures for the issuance patterns defined in D4.1

11

Milestone

MS5 WP2 Pilot Design Complete (Business)

Finalizes the scope of business use journeys based on D4.1 architectural patterns

11

Milestone

MS10 WP3 Pilot Design Complete (Payments)

Finalizes the scope of payments and banking use journeys based on D4.1 architectural patterns

12

Deliverable

D2.1 WP2 Pilot Design Report & PID/EBWOID issuance rulebook

Maps user journeys to the D4.1 reference implementations

12

Deliverable

D3.1 WP3 Pilot Design Report

Maps payment journeys to the D4.1 reference implementations

13

Deliverable

D4.4 Trust Infrastructure Guidelines

Details the technical signature/seal flows introduced in D4.1

17

Milestone

MS6 WP2 Pilot Implementation Complete

Validates local business infrastructure against D4.1 specifications

17

Milestone

MS11 WP3 Pilot Implementation Complete

Validates local payment infrastructure against D4.1 specifications

19

Milestone

MS7 WP2 Cross-Border Readiness

Proves interoperability of WP2 and WP4 business ecosystem

19

Milestone

MS12 WP3 Cross-Border Readiness

Proves interoperability of WP3 and WP4 payments and banking ecosystem

19

Milestone

MS17 Wallets & Trust Infrastructure Ready

Final evidence of wallet/trust interoperability as per D4.1

Alongside these milestones and deliverables, WP4 will continue to iterate on the architecture, specifications and supporting artefacts throughout the project. All WP4 groups will incorporate feedback from the piloting phase and adapt to new requirements and emerging EUDI standards and other technological developments. The ITB will remain a vital tool for continuous integration and testing, ensuring that the solutions remain interoperable, secure, and scalable.

Appendix A. Glossary

Terms and Definitions

This appendix defines the key terms, regulatory frameworks, and technical specifications utilised throughout the WE BUILD ecosystem.

While this document avoids abbreviations as much as possible, commonly used abbreviations are included for reference.

Term Abbreviation Definition

Architectural Decision Record

ADR

A document used to capture and justify significant technical choices. ADRs serve as the project’s "logbook" to ensure transparency regarding the rationale behind protocol and standard adoption.

Architecture and Reference Framework

ARF

The reference architecture for the European Digital Identity Wallet ecosystem published by the European Commission in cooperation with the Member States. It defines roles, trust models, protocols and interoperability requirements for the ecosystem.

Attestation Rulebook

-

A document describing the governance, requirements and semantic interpretation of a specific attestation type, including how credential data maps to vocabulary terms and schemas.

Blueprint

 — 

The high-level architecture and integration document (D4.1) describing the WE BUILD ecosystem, architectural patterns, interaction flows and governance model.

Business Wallet Unit Attestation

BWUA

A specific type of Wallet Unit Attestation issued for a European Business Wallet (EBW) instance.

EAA Provider

 — 

An entity that relies on authentic sources of information to issue attestations to a wallet.

EBW Instance

 — 

A unique deployment or installation of a European Business Wallet (EBW) solution, controlled by an Owner (legal person or economic operator).

EBW Provider

 — 

A Wallet Provider specifically authorized to issue and manage European Business Wallets (EBW).

EBWOID Provider

 — 

An entity responsible for verifying the identity of a legal person or economic operator and issuing EBW Owner Identification Data (EBWOID).

EBW Owner Identification Data

EBWOID

A set of attributes used to uniquely identify a legal person or economic operator within the European Business Wallet ecosystem.

Economic operator

 — 

Any natural or legal person or public entity which offers products or services on the market; the primary user of the European Business Wallet.

Electronic Attestation of Attributes

EAA / QEAA / PuB-EAA

Digital credentials that prove specific attributes (e.g., professional qualifications, representation rights) with either qualified (QEAA) or public sector body-issued (PuB-EAA) or non-qualified (EAA) legal status.

Electronic Identification, Authentication and Trust Services

eIDAS / eIDAS 2.0

The legal framework for electronic identification and trust services for electronic transactions in the European Single Market.

European Business Wallet

EBW

A wallet designed for economic operators or public sector bodies to manage business data such as mandates, electronic invoices, and administrative and professional documents and notifications.

European Digital Identity Wallet

EUDI Wallet

A mobile or cloud-based solution for natural persons to manage and share identity data.

EUDIW Instance

 — 

A specific deployment of an EUDI Wallet solution for a natural person.

Holder

 — 

See Wallet User instead.

Interoperability

-

The ability of independently developed systems and components to exchange information and correctly interpret the exchanged data.

Interoperability Testbed

ITB

The automated testing environment used in WE BUILD to verify that implementations conform to the agreed specifications and remain interoperable.

Issuer

 — 

See EAA Provider instead.

Large Scale Pilot

LSP

A project funded by the European Commission to test the practical implementation of the EUDI Wallet framework across various cross-border use cases.

Legal Person

 — 

An entity (such as a corporation or public body) recognized by law as having rights and duties, distinguished from a natural person.

Legal Person Identification Data

LPID

See EBW Owner Identification Data instead.

Level of Assurance

LoA

A classification of the degree of confidence in the electronic identification of a natural person, a legal person, or a natural person representing a legal person. Recognised levels are: Low, Substantial, High.

List of Trusted Lists

LoTL

A list that references national or ecosystem Trusted Lists, allowing participants to discover and validate trusted entities.

Natural Person

 — 

An individual human being acting in their own capacity.

Owner

 — 

The legal person or economic operator that has legal control over and responsibility for an EBW Instance.

Personal Identification Data

PID

A mandatory set of attributes issued to a natural person to uniquely identify them at Level of Assurance (LoA) High.

PID Provider

 — 

An entity responsible for verifying the identity of a natural person and issuing Personal Identification Data (PID).

Qualified Electronic Registered Delivery Service

QERDS

A secure communication channel that provides legal evidence of the handling of transmitted data.

Qualified Trust Service Provider

QTSP

A regulated entity providing electronic trust services (e.g., signatures, seals, or delivery services) with full legal effect under eIDAS.

Relying Party

RP

An entity that requests and receives attestations from a wallet to verify specific attributes or identities.

Selective Disclosure JSON Web Token

SD-JWT

A format allowing holders to share only specific parts of a credential while keeping other data private.

Trust Framework

 — 

The set of governance rules, standards, and trust infrastructure used to establish and verify trust relationships between ecosystem participants.

Trusted List

TL

A machine-readable list of trusted service providers or entities used to validate trust relationships within the ecosystem.

Verifier

 — 

See Relying Party instead.

Wallet Application

 — 

The user-facing software component of a Wallet Solution providing the interface for managing credentials.

Wallet Core Component(s)

 — 

The technical module(s) of a Wallet Solution handling cryptographic operations and protocol implementations.

Wallet Instance

 — 

A specific operational instance of a wallet solution running on a device or cloud environment.

Wallet Instance Attestation

WIA

A short-lived, signed information object issued by a Wallet Provider that contains information about the Wallet Instance. It is device-bound and presented to PID or Attestation Providers to authenticate the instance, but it does not require a WSCD/WSCA for key management and does not contain revocation information.

Wallet Provider

 — 

An organization that provides a Wallet Solution and manages its lifecycle.

Wallet Secure Cryptographic Device / Application

WSCD / WSCA

The hardware or software environment used to manage cryptographic keys securely within the wallet.

Wallet Solution

 — 

A specific implementation of a wallet consisting of a Wallet Application and Wallet Core Component(s).

Wallet Unit Attestation

WUA

A signed information object issued by a Wallet Provider that describes the capabilities and security properties of a Wallet Unit (especially the WSCD/WSCA). It is device-bound and allows PID or Attestation Providers to verify compliance, bind credentials to the unit, and check for revocation.

Wallet User

 — 

The natural or legal person that controls and operates a wallet instance.

WE BUILD

 — 

The consortium and project focused on pioneering the European Business Wallet and EUDI Wallet use cases.

WE BUILD Conformance Specifications

WBCS

Detailed technical rules that operationalize architectural intent. Approval of a WBCS signifies a commitment from partners to implement those interfaces.

Appendix B. Document History

Changes

Version Date Author Description

1.0

2026-03-20

Authors
Sarah Amandusson, Digg, SE
Sander Dijkhuis, Cleverbase, NL
George Fourtounis, GRNet, GR
Benjamin Hansson, iGrant.io, SE
Leif Johansson, SIROS Foundation, SE
Svilena Rakshieva, Evrotrust Technologies, BG
Sebastian Elfors, IDNow, FR
George J Padayatti, iGrant.io, SE
Giuseppe De Marco, Dipartimento per la trasformazione digitale, IT
Ronald Koenig, Spherity, DE

Contributing parties
Steffen Piel, Governikus, DE
Malin Norlander, Bolagsverket, SE
Lal Chandran, iGrant.io, SE
Aleksandar Simsic, ICTU, NL
Esther Maakay, Signicat, NL
Hristian Daskalov, Evrotrust Technologies, BG
Thodoris Papadopoulos, GRNet, GR
Eelco Klaver, Credenco, NL
Viky Manaila, Intesi Group, IT
Andreas Abraham, Validated ID, ES
Alejandro Nieto, Digitel TS, ES
Stefan Hadjistoytchev, Evrotrust Technologies, BG
Andrew Freund, D-Trust, DE
Miguel Aguilar, Bolagsverket, SE
Dr. Oliver Froitzheim, Bundesanzeiger Verlag GmbH, DE
Sarah Gräfer, Bundesanzeiger Verlag GmbH, DE

Reviewers
Andriana Prentza, University of Piraeus, GR
Ard van der Heijden, ICTU, NL
Marie Austenaa, Data Craft, NO
Stef Haartman, NL
Xavier Juredieu, FR

First complete version with full content

0.1

2025-12-08

Sarah Amandusson

Initial structure

Appendix C. Trust Ecosystem

The trust infrastructure for the EU Digital Identity and European Business Wallet ecosystem rests on three distinct but complementary processes: registration/onboarding of participants, notification of certain entities to the European Commission, and publication of Trusted Lists (or Lists of Trusted Entities) that provide cryptographic trust anchors for validation. WE BUILD aligns with the EUDI Wallet Architecture and Reference Framework (ARF) and the trust-infrastructure model described in the WP4 Trust Group deliverables.

Trust infrastructure authorities and registries

  • Member State Registrar: Manages registration and operational authorization of PID Providers, Attestation Providers, and Relying Parties. Registration yields registry entries (used for entitlement verification and online lookup via common APIs such as TS5/TS6) and triggers access certificate issuance.

  • European Commission: Compiles, signs/seals, and publishes Trusted Lists for Wallet Providers, PID Providers, Access Certificate Authorities (Access CAs), and Providers of Registration Certificates. It maintains the List of Trusted Lists (LoTL) and publishes LoTL location and trust anchors in the Official Journal of the European Union (OJEU).

  • Member State Trusted List Provider (MS TLP): Compiles, signs, and publishes national Trusted Lists for non-qualified EAA Providers and Member State QTSP Trusted Lists for QEAA Providers (per Article 22 eIDAS), and submits the Trusted List URLs to the Commission for inclusion in the LoTL.

  • Access Certificate Authority: Issues access certificates to registered entities (PID Providers, Attestation Providers, Relying Parties). Notified by Member States to the Commission; does not register with Registrars.

  • Provider of Registration Certificates: Optionally issues registration certificates that detail entitlements; notified by Member States to the Commission.

Registration vs Trusted List publication: Registration defines who is allowed to do what (entitlements, attributes, intended use) and is consumed via registries and optional registration certificates. Trusted List publication establishes cryptographic trust anchors (keys, certificates) and, via profile-specific extensions defined in ETSI TS 119 602 (for example the Pub-EAA and national non-qualified EAA Provider LoTE profile in Annex H, including its additionalInfo structures), can also publish which attestation types an Attestation Provider is authorised to issue. Trusted Lists follow ETSI TS 119 612 and TS 119 602 (Lists of Trusted Entities) and are consumed per ETSI TS 119 615. Wallet Providers, Access CAs, and Providers of Registration Certificates are not registered with Registrars; these entities are notified by Member States to the Commission.

Responsibilities matrix

The Task 2 trust-infrastructure schema defines the following responsibilities matrix for registration and Trusted List compilation:

Entity Type Registration Process Trusted List Compilation (EC / MS TLP) Member State TLP Role

PID Provider

Register with MS Registrar

European Commission (EU-level TL for PID Providers)

None (no national TL for PID Providers)

Attestation Provider

Register with MS Registrar

Member State / MS TLP (national QTSP TL for QEAA Providers; national TL for non-qualified EAA Providers)

Compiles, signs, and publishes national Trusted Lists (QTSP TL for QEAA Providers per Article 22; EAA Provider TL for non-qualified EAA Providers)

Relying Party (RP)

Register with MS Registrar

N/A (uses Access Certificates and Registry)

None (not listed in Trusted Lists)

Wallet Provider

Notification only (by MS to EC)

European Commission (EU-level TL for Wallet Providers)

Not applicable in MVP (notification from MS to EC only)

Access CA

Notification only (by MS to EC)

European Commission (EU-level TL for Access CAs)

Not applicable in MVP (notification from MS to EC only)

Reg. Cert. Provider

Notification only (by MS to EC)

European Commission (EU-level TL for Reg. Cert. Providers)

Not applicable in MVP (notification from MS to EC only)

This blueprint section mirrors the Task 2 responsibilities matrix so that architectural roles are consistent across WP4.

Working group scope: [MVP] and [MVP+]

In line with the EUDI Wallet ARF, the WP4 Trust Group focuses on defining architectural patterns and profiles, not on specifying Member State-specific policies or operating production infrastructure. To make this concrete, the trust and security work is scoped in two steps:

  • [MVP] (Minimum Viable Prototype):

    • Implements the core onboarding scenarios from Task 1 (Subtask 1.1) for PID Providers, Attestation Providers, Wallet Providers, Relying Parties, and Certificate Authorities.

    • Implements the basic trust‑registry scenarios from Task 1 (Subtask 1.2) needed to create, publish and consume Trusted Lists / Lists of Trusted Entities and registry entries for these actors.

    • Demonstrates end‑to‑end flows for registration, access‑certificate issuance, trust‑anchor publication and consumption, reusing the ARF and ETSI TS 119 602/119 612/119 615 patterns without introducing new normative profiles.

  • [MVP+] (Extended prototype):

    • Completes the remaining Task 1 onboarding and trust‑registry scenarios, including more advanced evaluation, maintenance, revocation and discovery cases.

    • Covers richer combinations of participants and roles (e.g. multiple types of Attestation Providers and more complex Relying Party ecosystems) while staying within the Task 2 trust framework and trust‑infrastructure schema.

    • May introduce pilot‑specific configurations or conventions (e.g. additional metadata, policy examples, or Trusted List extensions) as long as these remain compatible with the underlying ARF and ETSI models and are clearly marked as non‑normative.

The boundary of the working group is therefore to: (a) define the trust‑infrastructure architecture, profiles, and flows needed for [MVP] and [MVP+]; (b) document how to apply ETSI TS 119 602/119 612/119 615 and the ARF in these scenarios; and (c) leave Member State policy choices (approval criteria, national extensions, operational SLAs) and long‑term production operation out of scope.

Trust infrastructure architecture (overview)

The following diagram summarises the roles of Member State and European Commission, the split between registration and notification, and how Trusted Lists and the LoTL are produced and consumed. Source: WP4 Trust Group Task 2, trust-infrastructure schema.

Diagram
Note
WP4 is going to expose trust infrastructure depicted on this diagram, mimicking the infrastructure of at least one Member State. In the case of mimicking more than a single Member State, WE BUILD participants willing to register are going to be able to select a registry in which they are going to be registered, or the WP4 registrar, if single, is going to place them in one of the registries. For the sake of simplicity, in such a case, not all the technical components depicted in the diagram within a Member State will have to be multiplied; e.g. there may be multiple registries but a single trusted list across the countries to which all wallet-relying parties are provisioned.

Security Measures

From an architectural perspective, security in the wallet ecosystem is structured in four dimensions. (1) Trust anchor layer: cryptographic validation and key lifecycle management, including revocation of keys, certificates, and services. Trust Anchors are published by Trusted Lists and related mechanisms (ETSI TS 119 602/119 612/119 615), applying to the entities and roles described in the Trust Ecosystem (PID Providers, Attestation Providers, Wallet Providers, Access CAs, etc.). (2) Identity assurance: the level of assurance (LoA) of the identities involved is maintained across the full lifecycle of those identities. (3) Device and execution environment: the security of the devices and execution environments that host Wallet Instances and cryptographic material (WSCA/WSCD) is addressed by the wallet secure cryptographic application/device (WSCA/WSCD) architecture for wallet-side components, to be specified by the Architecture and Wallets groups (and, for remote WSCA/WSCD, together with the QTSP group). Secure environments operated by PID Providers, Pub-EAA and QEAA Providers, and Trust Service Providers (TSPs) are addressed by applicable eIDAS and ETSI requirements for TSP and provider infrastructure. (4) Protocol and policy layer: authentication (verifying who or what is acting) and authorization (what the subject is allowed to do, driven by policies) are realised in conformance with the ARF and related technical specifications, per application-specific flow and per attestation data format.

Authentication

Authentication in the WE BUILD architecture closely follows the standards and flows of the underlying protocols (OpenID for Verifiable Credentials, ISO 18013-5, and other application-specific communication protocols).

For organizational entities that register with the Registrar (PID Providers, Attestation Providers, Relying Parties), authentication is primarily established using access certificates issued by the Access Certificate Authority, validated against up-to-date Trusted Lists or Lists of Trusted Entities (ARF and ETSI TS 119 602 / 119 612 / 119 615). Wallet Providers are notified by Member States to the European Commission (they do not register with the Registrar); their authenticity is established via the Wallet Provider Trusted List and related attestations (e.g. Wallet Unit Attestation). Mutual trust is strictly required in application-specific protocol flow specifications, and consolidated through OpenID HAIP and ARF HLRs, with certificate-bound tokens and protocol-level message signatures along with endpoint authentication and message integrity.

According to the ARF, the Relying Party cannot request the Wallet Unit Attestation (WUA) during the presentation flow. Presentation requests address PID and attestations only (ARF Topic 1, OIA_01); the WUA is presented to the PID Provider or Attestation Provider during issuance of a PID or device-bound attestation, not to the Relying Party (ARF Topic 9, WUA_03, WUA_05, WUA_05a). The ARF explicitly states that there is no separate mechanism for the Relying Party to verify the revocation status of a Wallet Unit directly with the Wallet Provider (ARF Section 6.6.3.12). Trust in the Wallet Unit is therefore mediated by a trusted third party: the PID Provider or Attestation Provider that belongs to a Trust Anchor (Trusted List) and that received the WUA at issuance. That trust is indirect from the Relying Party’s perspective. The PID Provider or EAA Provider periodically checks the revocation status of the Wallet Unit to which it has issued credentials (using the revocation information in the WUA received at issuance; ARF Topic 9 WUA_02, ARF Section 6.6.2.4). If the Wallet Unit is revoked, the PID Provider or Attestation Provider SHALL revoke the credentials it issued to that Wallet Unit (Article 5, 4.(b), European Digital Identity Regulation; ARF Section 6.6.2.4). By verifying the revocation status of the PID or attestation, the Relying Party implicitly relies on the issuer’s verification of the Wallet Unit.

For attestation holders (individual end-users and the corresponding wallets), authentication requirements leverage possession-based proofs and, where applicable, identity schemes notified to the European Commission that attest Level of Assurance High according to the eIDAS Framework. Local user authentication (e.g., via PIN, password, device biometrics) must fulfill the minimum Level of Assurance required by the credential or attestation type and is enforced by policy prior to any issuance or presentation flow.

Wallet Units are expected to combine protocol-specific authentication mechanisms (as per OpenID4VC and ISO 18013-5) with validation of trust anchors and up-to-date Trusted Lists, covering both participant and credential authenticity.

Authorization and policies

Authorization determines what actions a subject is permitted to perform after authentication. In line with the Task 2 trust framework and the EUDI Wallet ARF, WE BUILD assumes that the default is “allow all” at the ecosystem level, and that policies (expressed via Trusted List extensions, registration/entitlement data, and optional registration certificates) can tighten this to an effective “deny all except explicitly allowed” model for specific contexts and participants. When such policies apply, only the actions and attribute uses listed in the applicable allow‑lists are permitted; all others are denied. Trust marks (for Credential Issuers, Wallet Solutions, and Relying Parties), together with Trusted List extensions and registration certificates, carry authorization semantics (e.g. authorised credential types, attribute groups, purposes, scope restrictions) and are used in policy evaluation and collision prevention as specified in the Task 2 trust framework and the trust‑infrastructure schema.

According to the EUDI Wallet ARF v2.8, when present and applicable, policies and default authorisations may be overridden by user will: the Wallet Unit SHALL ensure the User approved the presentation of any attribute(s) prior to presenting those attributes and SHALL always allow the User to refuse presenting an attribute requested by the Relying Party or Verifier Wallet Unit (ARF Topic 6, RPA_07); if Relying Party authentication fails, the Wallet Unit SHALL either not present the requested attributes or give the User the choice to present or not (RPA_06a).

Certificates and cryptographic anchors

  • Trusted Lists / Lists of Trusted Entities (LoTE) (ETSI TS 119 612, TS 119 602) are pivotal trust anchors in the ecosystem. LoTE entries publish the keys and related metadata for the entity types described in the Trust Ecosystem (Wallet Providers, PID Providers, Attestation Providers, Access CAs, Registration Cert Providers). Validation of trust service outputs against these lists SHALL follow ETSI TS 119 615 (procedures for using and interpreting EUMS national trusted lists).

  • Access certificates are issued by the Access Certificate Authority to registered PID Providers, Attestation Providers, and Relying Parties. Issuance SHALL comply with ETSI TS 119 411-8; the Authority SHALL comply with at least ETSI EN 319 411-1 Normalised Certificate Policy (NCP) requirements. Each Relying Party receives a separate access certificate per Relying Party Instance. Access certificates authenticate entities in protocol exchanges and are validated by Wallet Units using the trust anchors in the Access CA LoTE entries.

  • Registration certificates (optional) may be issued by the Provider of Registration Certificates to detail registration status and entitlements. When the User opts to verify RP (or issuer) registration, Wallet Units use the registration certificate when provided and/or registry lookup, as specified in ARF RPRC_16 to RPRC_21.

For reference on relying party access certificates and relying party registration certificates, see the RPAC/RPRC documentation.

Key lifecycle and Trusted Lists

Key lifecycle for trust anchors and for services listed in Trusted Lists is reflected in list content and status (e.g. service status, status determination approach, and history where required by the profile). Updates and revocation of listed services follow the applicable ETSI trusted list profiles (TS 119 612 / TS 119 602) and are consumed per ETSI TS 119 615. Certificate policies and Certificate Transparency (SCT) where applicable are specified in the referenced ETSI standards.

Relying Party Registration & Access Certificates

Relying Parties (verifiers) register with the Member State Registrar before being able to securely identify themselves to Wallet Units. Registration includes identification data, the attributes the RP intends to request from Wallet Units, the intended use (purpose), and, if applicable, use of intermediaries. The Registrar approves the RP (per ARF Reg_25) and publishes the entry in the Registry. The Access Certificate Authority then issues access certificates to the RP as described under Certificates and cryptographic anchors, with a separate access certificate per Relying Party Instance (Reg_10a). Optionally, the Registrar may request a registration certificate from the Provider of Registration Certificates (RPRC_09) that summarises registration status and entitlements. Wallet Units authenticate RPs by validating RP access certificates against the Access CA trust anchors and by verifying registration and requested attributes in the Registry (RPA_04, RPRC_16, RPRC_21). The common API for RP registration information (e.g. TS5) and the common set of RP information (e.g. TS6) are specified in the EUDI Wallet technical specifications. Detailed flows and diagrams are in the WP4 Trust Group trust-infrastructure schema. Certificate issuance aspects are coordinated with the QTSP group.

The following sequence illustrates how a Wallet Instance discovers and validates Relying Party policy during presentation (WRPAC = Relying Party Access Certificate; WRPRC = Relying Party Registration Certificate). Source: WP4 Trust Group, wallet-policy-discovery.

Diagram

Validation Functions for Relying Parties

Relying Parties need to authenticate and validate the Person Identification Data (PID) and attestations (e.g. LPID/EBWOID, EAA) received from Wallet Units. Validation relies on the trust infrastructure as follows:

  • PID and LPID/EBWOID: Relying Parties validate the PID (or equivalent) signature using the List of Trusted Entities (LoTE) for PID Providers, i.e. the PID Provider Trusted List compiled by the European Commission and referenced from the LoTL. Procedures for authenticating the LoTL and national/EU trusted lists and for obtaining listed services are given in ETSI TS 119 615.

  • Attestations (EAA): Relying Parties validate qualified EAA (QEAA) signatures using the Member State QTSP Trusted Lists (per Article 22 eIDAS) and PuB-EAA (and, where applicable, national non-qualified EAA) using the relevant Attestation Provider Trusted Lists. Trust anchors and service types are defined in ETSI TS 119 602 profiles (e.g. Annex H for Pub-EAA and national EAA provider lists).

  • Wallet and RP side: Wallet Units verify RPs via the Registry and Access CA Trusted Lists (see Relying Party Registration & Access Certificates). PID Providers and Attestation Providers verify Wallet Providers against the Wallet Provider Trusted List before issuing credentials.

The PID Providers group defines validation semantics for PID/LPID/EBWOID; the QTSP group covers EAA and certificate aspects. Exact validation requirements (e.g. OIA_12, OIA_13, OIA_14) and consumption procedures are documented in the WP4 Trust Group trust-infrastructure schema and ETSI trusted lists implementation profile.

Establishing trust with a Credential Issuer

Wallet Units and Relying Parties establish trust in a Credential Issuer (PID Provider or Attestation Provider) and in the credentials they issue by combining Trusted List entries (trust anchors and, where applicable, authorised attestation types) with registration data (Registry or registration certificate). The catalogue of attestation schemes defines what credential types exist; Trusted Lists and registration define who is allowed to issue which types. The flow below is aligned with the WP4 Trust Group credential catalogue and issuer constraints: the verifier accepts a credential only if the issuer is present in the applicable Trusted List and the credential’s attestation type is among the issuer’s authorised types (ISSU_24, ISSU_24a, ISSU_34, ISSU_34a for Wallet Units; OIA_12, OIA_13, OIA_14, OIA_15 for Relying Parties).

Diagram

Establishing trust with a Wallet Solution

Trust in a Wallet Solution (Wallet Provider and Wallet Unit) is established by Credential Issuers (PID Providers and Attestation Providers) before issuing a PID or attestation. The flow is mandated by the ARF (Topic 9 Wallet Unit Attestation, Topic 31 notification and Trusted Lists), uses OpenID4VCI 1.0 for the issuance protocol and issuer metadata (ISSU_22, ISSU_22a, ISSU_22b), and is reinforced by OpenID4VC High Assurance Interoperability Profile (HAIP) 1.0 for authenticity, holder authentication, and certificate-bound tokens. The Wallet Unit presents a Wallet Unit Attestation (WUA) to the Issuer during the issuance request; the Issuer verifies the Wallet Provider against the Wallet Provider Trusted List and validates the WUA (ARF ISSU_19, ISSU_21 for PID; ISSU_28, ISSU_30 for Attestation Providers; WUA_02, WUA_03, WUA_05, WUA_05a). The Wallet Provider Trusted List is compiled by the European Commission from Member State notifications (WPNot_01--WPNot_05).

Diagram

Governance Responsibilities

Trust and security responsibilities are split between Member States, the European Commission, and participating entities as follows:

Responsibility Owner (normative) [MVP] [MVP+]

Registration of PID Providers, Attestation Providers, Relying Parties

Member State Registrar

WE BUILD (mock Registrar)

MS Registrar or WE BUILD

Registry publication and common API (e.g. TS5, TS6)

Member State

WE BUILD (the WP4 reference registry or an other WP4 registry listed in LoTL)

Member State or WE BUILD

Access certificate issuance

Access Certificate Authority (notified by MS to Commission)

WE BUILD (Access CAs listed in LoTL)

Access CA (notified) or WE BUILD (Access CAs listed in LoTL)

Optional registration certificates

Provider of Registration Certificates (notified by MS to Commission)

WE BUILD (WP4 RegCert Providers listed in LoTL)

RegCert Provider (notified) or WE BUILD (WP4 RegCert Providers listed in LoTL)

Compilation and publication of Wallet Provider, PID Provider, Access CA, RegCert Provider Trusted Lists

European Commission

WE BUILD (reference TLs)

European Commission or WE BUILD

Compilation and publication of national EAA Provider TLs and MS QTSP Trusted Lists for QEAA

Member State Trusted List Provider

WE BUILD (mock MS TLP)

MS TLP or WE BUILD

List of Trusted Lists (LoTL), OJEU publication

European Commission

WE BUILD (reference LoTL)

European Commission or WE BUILD

Trust evaluation in Wallet Units and RPs (use of TL/LoTE and Registry per ARF)

Wallet / PID / Attestation / RP implementations

Wallet / PID / Attestation / RP implementations

Wallet / PID / Attestation / RP implementations

Within WE BUILD, the consortium clarifies which roles are assumed by MVP infrastructure (e.g. mock or real Registrars, TLPs, Access CAs) and which are assumed to be provided by Member State or EU infrastructure. Policy and conflicts (e.g. credential-type or authorization collisions) are handled according to the dispute resolution and collision-prevention mechanisms described in the WP4 Trust Group authentication-authorization and policy framework.

Appendix D. Business Wallet Definition

Revision 1.0

Scope and context

This document sets out a non-technical working definition of “business wallet” as introduced in the European Business Wallet regulatory proposal, to support a common interpretation within WE BUILD and in dialogue with the European Commission. It is intended as reference material for the WE BUILD use case and capability work. It does not cover detailed architecture, protocol choices, implementation design, or use case roadmaps.

This document draws on the EUDI Wallet regulations, EWC deliverables^[1]^, and relevant industry and consortium publications, and incorporates the draft Implementing Act on Business Wallet.

Core concepts

Description

A Business Wallet is a product and service that enables an organisation to identify itself, manage authorisations, exchange verified attributes and documents, and receive legally relevant notifications in support of administrative and regulatory procedures. Unlike European Digital Identity Wallets, an European Business Wallet does not need to be an eID means under an eID scheme, although it may reuse similar components.

WE BUILD implementation note: The topic of online business identity, potentially outside of eID schemes, needs to be further discussed within the WP4 Architecture group. It may also have consequences for the WP4 PID/LPID Providers group.

A technical decomposition (front end, back end, and cryptographic components) is out of scope for this document.

Each Business Wallet has a single wallet owner, which is the entity that the wallet represents through its interactions. Note that this is distinct from, for example, the company owner or the wallet provider.

The wallet owner is defined by European Business Wallet Owner Identification Data (EBW-OID), which includes an official name and an EU-unique identifier. These owner identification data are issued into the business wallet as an electronic attestation of attributes.

A Business Wallet can have multiple wallet users, meaning natural or legal persons that operate the wallet through a user interface or an application programming interface under roles and mandates set by the wallet owner. These wallet users may apply software applications to access these interfaces. Some users may be authorised representatives, while others may be employees or service providers operating within delegated permissions.

Conceptual model

Diagram

Business Wallet definition

Roles supported

A business wallet enables its owner, amongst other operations, to act as:

  • Issuer, holder or verifier of electronic attestations of attributes

  • Signatory or origin of sealed data

  • Sender or recipient of messages, such as submissions and notifications

These operations are under role-based access control, where recognised roles comprise:

  • Wallet owner: the entity that is accountable for the legal consequences of the operation

  • Authorised representative: a wallet user with an administrative mandate to act on behalf of the wallet owner, potentially with a limited scope or in limited contexts

In addition, the wallet owner may configure other roles that suit the owner’s policies and/or national or EU law.

Other relevant roles are:

  • Wallet provider: the entity that provides the business wallet solution to its owner (potentially the owner themselves)

  • Owner identification data provider: the entity that verifies the identity of an authorised representative enrolling the wallet owner and attests, using an electronic attestation of attributes, the wallet owner’s identification data in accordance with authentic source registrations

Key functions

Wallet lifecycle management

The business wallet enrols its owner via the electronic identification of an authorised representative and facilitates enrolment in connected trust services and directory services. The wallet provider is responsible for attesting to its validity to relying parties and enabling authorised representatives to revoke the business wallet and perform other lifecycle changes. In several cases, the wallet provider is also responsible for notifying authorised representatives and government authorities about lifecycle changes.

WE BUILD implementation note: This will be the responsibility of the WP4 Wallet Providers group. At least several providers will be ready to manage their wallet solution and issue wallet units under new and changing business wallet requirements.

Digital document management

The business wallet enables the wallet owner to create, store, use and validate various types of digital documents:

  • Electronic attestations of attributes (EAAs, including QEAA, PuB-EAA, and EAA issued by the Commission)

  • Business documents, such as electronic invoices

  • Qualified certificates for electronic signatures and seals

  • Qualified electronic signatures, seals and timestamps

  • Evidence, such as provided by trust service providers upon electronic transactions, or by public sector bodies over the single digital gateway

For this purpose, the business wallet implements several applications, including signature creation and secure cryptographic applications.

WE BUILD implementation note: The WP4 Wallet Providers provide, as part of their business wallet solutions, a subset of the functionalities required by the use cases. For the functionalities that require qualified trust services, such as the issuance of qualified certificates or the sealing of documents with qualified electronic seals, the WP4 QTSP group provides these services within WE BUILD. For reference, see the QTSP documentation.

Secure communication channel

To enable public and private sector information exchange, such as in B2G eGovernment notifications, B2B/B2G eProcurement business documents and other business use cases, a business wallet implements a secure communication channel with other business wallets, with users of digital identity wallets, or with alternative solutions provided through a gateway. This channel enables cross-border delivery and receipt of submissions and notifications with legal effect, and provides a trusted channel with public authorities and other regulated parties across the EU. The channel is implemented using a qualified electronic registered delivery service (QERDS). The digital address for the channel is registered in a standard digital directory.

WE BUILD implementation note: the WP4 QTSP group will explore delivering an interoperable pre-production QERDS, along with CIR (EU) 2025/1944 requirements, as a service to the WP4 Wallet Providers group, working with the WP4 Architecture group on cross-cutting concerns, such as interoperability specifications. This enables wallet providers to provide a business wallet to the use cases with a digital address and access to the designated QERDS. For reference, see the QERDS documentation.

Access control mechanism

To enable wallet owners, authorised representatives and other authorised users to access the business wallet while preventing unauthorised access, each business wallet implements role-based access control for the assets it protects, including digital documents and the secure communication channel. To identify, authenticate, and authorise wallet users, the access control mechanism relies on electronic identification means, such as digital identity wallets, and, potentially, on trust services for the electronic attestation of attributes.

WE BUILD implementation note: The WP4 Architecture group, in collaboration with the WP4 Wallet Providers group, will explore the access-control mechanism for business-wallet solutions. This may rely on the EUDI wallets within WE BUILD or on other electronic identification means.

Digital transaction management

Business wallets keep logs and provide dashboard user interfaces to enable control over transactions, including operations on the wallet lifecycle and on digital documents and messages sent and received over the secure communication channel. In addition, these logs enable dispute resolution regarding potentially unauthorised transactions, failures to meet reporting obligations, or administrative or procedural activities.

Appendix E. Wallet Implementation and Deployment Considerations in WE BUILD

This appendix provides a short overview of wallet implementation and deployment approaches observed among WE BUILD wallet providers. It does not repeat the architectural classifications defined in the ARF, but highlights aspects that are relevant for the WE BUILD pilots.

Different wallet implementations exist in the ecosystem, reflecting different user groups, device capabilities, and deployment environments. In practice, implementations often combine different approaches depending on the supported use cases.

Wallet Types Relevant for WE BUILD

From a deployment perspective, wallet implementations in the WE BUILD ecosystem can broadly be grouped into four practical categories.

Wallet Type Typical Deployment Primary Use Cases

Mobile (on-device)

Smartphone application using device hardware security

Natural person wallets and offline use cases

Web / browser-based

Browser interface with backend cryptographic services

Desktop services and enterprise workflows

Cloud / HSM-based

Server-hosted wallet infrastructure backed by HSMs

Legal person wallets and managed services

Hybrid

Combination of local device security and remote HSM

Mixed use cases requiring both scalability and offline capability

These categories reflect common deployment patterns observed across wallet implementations. The concrete architecture used by a wallet provider depends on the supported use cases, operational requirements, and device capabilities.

Deployment Patterns Observed Among WE BUILD Wallet Providers

The WE BUILD Wallet Provider Group conducted a stocktaking questionnaire covering 31 wallet providers participating in the project. Providers described the deployment models they currently support.

The results show a clear split between natural person and enterprise wallet deployments.

Deployment Option Share of Providers

Mobile wallet (iOS/Android app)

77%

Server wallet on cloud

55%

Server wallet on-premise

42%

Multi-device or white-label wallet

6%

Wallet functionality via API or SDK

6%

Many providers support multiple modes, typically combining a mobile wallet for natural persons, and a cloud or server-based wallet for legal persons.

The stocktaking exercise highlights several trends relevant for the WE BUILD pilots.

Mobile and cloud duality

The most common architecture combines:

  • a mobile wallet for natural persons, and

  • a server-based wallet for enterprise or legal person scenarios.

This reflects the broader EUDI ecosystem, where personal identity use cases are mobile-centric while organisational use cases often require backend infrastructure.

Increasing use of HSM-backed infrastructure

Several providers indicate the use of remote HSM infrastructure for enterprise wallet deployments. This approach supports large-scale operations and key recovery but requires continuous network connectivity.

Limited visibility of WSCD implementation choices

The questionnaire responses mainly describe the application layer (mobile app, server, or web wallet), rather than the underlying cryptographic architecture.

Only a small number of providers explicitly describe the type of secure cryptographic device used (for example secure hardware on the device or remote HSM infrastructure).

Architectures supporting legal person wallets are still evolving.
Many providers indicate that their legal person wallet solutions will be further developed during the WE BUILD project in alignment with emerging European Business Wallet proposals.

As a result, the architectures described in the stocktaking responses should be understood as initial implementation approaches rather than final designs.

Appendix F. QTSP documentation

The WP4 QTSP group collaborates on internal reference code and documentation to increase interoperability. This appendix lists the entry points for this reference documentation by each provided service.

QES documentation

This is documentation of the WE BUILD: WP4 QTSP group.

Technical Overview of Signing and Sealing in WE BUILD: Signing and Sealing

Informative references

QEAA documentation

This is part of the QTSP documentation.

Reference model

QEAA value chain

Feature definitions

Below is a non-exhaustive overview of QEAA features that use cases may choose to pilot. For each feature in scope for the pilots, the QTSP group develops an interop profile and ensures available service compatibility.

Schemes for QEAA

Participants of the QTSP group may issue QEAA under any of the schemes referenced below.

Informative references

  • Catalogues

  • Standards

    • TS 119 471 v1.1.1: requirements for EAA Providers

    • TS 119 472-1: DRAFT Profiles for EAA - General requirements

    • TS 119 472-2: DRAFT Profiles for Relying Party Interface to EUDI Wallet

    • TS 119 472-3: DRAFT Protocol Profiles for interfacing to services providing Personal Identity Data and Electronic Attestation of Attributes

    • TS 119 612: Policy and security requirements for trust service providers issuing electronic attestation of attributes (EAA)

    • TS 119 602: Electronic signatures and infrastructures (ESI); Policy and security requirements for trust service providers issuing attribute attestations

    • ETSI TS 119 478: DRAFT Protocol Interface for Trust Service Provider use of Authentic Sources

  • Technical reports

QERDS documentation

This is documentation of the WE BUILD: WP4 QTSP group.

Scope:

  • Provision of electronic registered delivery services

Reference model

QERDS value chain

Feature definitions

Below is a non-exhaustive overview of QERDS features that use cases may choose to pilot. For each feature in scope for the pilots, the QTSP group develops an interop profile and ensures available service compatibility.

Informative references

None yet.

rWSCD documentation

This is documentation of the WE BUILD: WP4 QTSP group. Scope:

  • Management of remote wallet secure cryptographic devices

Informative references

None yet.

RPAC/RPRC documentation

This is documentation of the WE BUILD: WP4 QTSP group. Scope:

  • Relying party access certificate issuance

  • Relying party registration certificate issuance This is documentation of the WE BUILD: WP4 QTSP group. Scope:

    • Relying party access certificate issuance

    • Relying party registration certificate issuance

Assumptions:

  • In complete eIDAS ecosystem, Registrars will act as Registration Authorities for TSP issuing RPAC & RPRC. Without any actual Registrar included in the project, present RAs of involved TSPs shall play the role of Registrar.

  • Registrars did not publish Registration policies yet. Considering WE BUILD as a close group where trust comes from belonging, registration policy shall rely on checking this belonging together with a public NCP registration policy for RPAC: TSP will check presence in lists of WP’s RP in place of national register of Wallet Relying Parties. WP’s leader shall establish these lists.

Issuance process: Process of issuance will limit to AnnexD1 of TS 119 475 for MVP. It will be made of 11 steps :

  1. The user (RP representative) will connect and authenticate to TSP’s RA by using its EBW;

  2. RA will request credentials;

  3. And receive as an answer a EAA granting the user to act as representative of the RP (POA);

  4. RA contacts the user to request all additional attributes needed for producing RPRC;

  5. RA checks that the authenticated RP is present in the lists of authorised RP supplied by WP’s leaders;

  6. RA orders issuance of both certificates;

  7. CA issues RPAC and RPRC;

  8. CA transmits certificates to the RA;

  9. RA notifies the user (e.g. by e-mail);

  10. User authenticates via EBW;

  11. User retrieves RPAC & RPRC.

image

Informative references

Standards:

  • EN 319 401

  • EN 319 411-1&2

  • TS 119 475

  • TS 119 411-8

  • IETF 7515 Technical Reports:

  • TR 119 411-9

Appendix G. Architecture decision records

WE BUILD maintains a lightweight architecture decision record (ADR) for each software-related decision affecting interoperability.

Propose new ADRs using the template. Announce them to the Architecture group in the Portal to get feedback to understand the consortium’s opinion.

ADR process for WE BUILD

Diagram

ADR overview

Publish consortium trusted lists

Authors:

  • Sander Dijkhuis, Cleverbase, the Netherlands

Context

For the first usage of the interoperability testbed, and for the first increment, it is required to enable trust between issuers, wallets, and verifiers. EWC proposed a trust evaluation mechanism (see EWC RFC 012) including an Trusted List.

According to the evaluation made so far by the Mapping Task Force, at least the QTSP group needs a similar approach for the first QEAAs to test. We need to specify who provides this.

At ETSI, the TS 119 612 (V2.3.1 at time of this release) series is being updated to support the European Digital Identity. This may require further alignment with the current EWC implementations.

Decision

The WP4 Trust Registry Infrastructure group provides trusted lists.

The issuers in the WP4 PID/LPID/QTSP/Wallet provider groups request registration on the trusted lists before testing.

The wallets in the WP4 Wallet provider group include validation with the trusted lists in their verification processes.

The relying parties in WP2/3/4 include validation with the trusted lists in their verification processes.

The starting point is TS 119 612 V2.3.1. Since a profile and implementation guidance are likely needed, and EWC RFC 012 has not yet been effective in practice, these should be specified in separate WE BUILD architecture documents.

Consequences

This decision makes interop between consortium members easier.

This decision makes it harder to test with ad-hoc pairwise trust relationships.

To address the risk of bottlenecks in implementing this decision, the Mapping Task Force pays extra attention to potential blockers for each involved WP4 group.

Advice

Once merged, this is our consortium’s decision. This does not mean all participants agree it is the best possible decision. In the decision making process, we have heard the following advice.

  • 2025-10-27, Leif Johansson, Sunet, Sweden: OK

  • 2025-10-27, Giuseppe De Marco, Dipartimento per la trasformazione digitale, Italy: OK

Baseline protocols

Authors:

  • Leif Johansson, Sunet, Sweden

  • Sander Dijkhuis, Cleverbase, the Netherlands

  • Sarah Amandusson, Digg, Sweden

  • George J Padayatti, iGrant.io, Sweden

  • Lal Chandran, iGrant.io, Sweden

Context

The EUDI Wallet ecosystem is mandated by eIDAS to ensure secure, interoperable cross-border digital identity. This implementation is guided by the Architecture and Reference Framework (ARF), which translates legal mandates into technical specifications. To achieve mandatory interoperability for Issuance and Presentation of Person Identification Data (PID) and Electronic Attestations of Attributes (EAA), implementing regulations require compliance with foundational standards. OID4VCI (Issuance) and OID4VP (Presentation) are adopted as the ARF-recommended baseline protocols for technically implementing the required data models and web-based transport mechanisms in the pilot.

Proximity flows are out of scope for the current architecture decision.

While the architecture decision to Publish consortium trusted lists based on TS 119 612 has already been recorded, the consortium also needs a selection of PID/EAA issuance and presentation protocols.

Decision

Each recognized role in the WE BUILD project - PID/LPID Providers, EAA Providers (including QEAA, Pub-EAA), Relying Parties, Wallet Providers, and Trust Service Providers — is REQUIRED to implement the corresponding technical profiles described here. Actors performing multiple roles MUST meet all requirements relevant to those roles.

Consequences

Implementations following this profile ensure interoperability between actors within the WE BUILD ecosystem. Actors can verify conformance through testing against other implementations.

The selected protocols may not suffice for async or proximity use cases. Once the requirements for such use cases appear, the decision may need to be nuanced to enable for example Relying Parties to implement different protocols.

Advice

Once merged, this is our consortium’s decision. This does not mean all participants agree it is the best possible decision.

Specify PID and eAA formats

Authors:

  • Sander Dijkhuis, Cleverbase, the Netherlands

Context

To issue PID (including LPID) and eAA (including QeAA and PuB-EAA), it is necessary to specify a digital document format such as mdoc or a JWT-based one. While the EUDI implementing acts specify baseline standards, these specifications may not suffice for WE BUILD. For example, some specified standards need further profiling for interoperability. For some WE BUILD use cases, other standards may be necessary, for example to enable asynchronous interactions with EU Business Wallets, or to enable legal, technical and semantic interoperability with existing systems.

Several WP4 groups are stakeholders in this, for example:

  • WP4 Architecture, for conformance to and efficient implementation of the EUDI framework

  • WP4 PID and LPID Providers, for technical details of the provision of PID and LPID

  • WP4 QTSPs, for technical details of the issuance and validation of QeAA

  • WP4 Semantics, where the specification affects semantic interoperability

To ensure a streamlined process, the Mapping Task Force has evaluated the possible dependencies within WP4.

Out of scope of this evaluation were the dependencies with WP2 and WP3. After the use case stock taking, these should guide the decisions about formats made within WP4. If needed, the WP4 Architecture support teams can help gain input and feedback.

Decision

The WP4 Architecture group specifies digital document formats for PID and eAA.

The WP4 PID and LPID Providers and the WP4 QTSPs are expected to conform to these decisions.

The vocabularies that WP4 Semantics group delivers, may be in a format that is unrelated to the specified digital document formats.

The WP4 Semantics group is expected to ensure semantic interoperability of digital documents using the specified digital document type, if the specified digital document type supports semantic mapping, such as in Verifiable Credentials Data Model v2.0. If not, such as in ISO/IEC 18013-5 mdoc, extra translation may be needed to match vocabularies specified by the WP4 Semantics group. In such cases, the translation is the responsibility of the scheme owners.

Consequences

This decision clarifies the decision process regarding digital document formats for PID and eAA. Other decisions should be recorded soon after to specify the concrete formats for PID and eAA for European Digital Identity Wallets and for European Business Wallets.

This decision creates an indirection between the vocabularies and the digital document formats for PID and eAA, so that the extra translation may be needed if the format does not support semantic annotations. In this case, the translation is the responsibility of the scheme owners.

As an alternative, it has been considered to decide on WP4 Semantics specifying digital document formats for PID and eAA, which would facilitate semantic interoperability, potentially at the cost of technical and legal interoperability. However, since these are cross-cutting decisions, the Mapping Task Force suggests that instead the WP4 Semantics group advices the WP4 Architecture group so that the latter sufficiently takes semantic interoperability into account, for example the ability to support links to globally defined semantic models.

Advice

Once merged, this is our consortium’s decision. This does not mean all participants agree it is the best possible decision. In the decision making process, we have heared the following advice.

  • 2025-11-11, Ronald Koenig, Spherity, Germany: OK

Provide EBWOID as a stable minimal basis

Authors:

  • Sander Dijkhuis, Cleverbase, the Netherlands

Context

In BU3 on foreign tax declaration, an issue on Identifiers in LPID was raised to WP4 Architecture, which extends to EBWOID. In this context, EBWOID is European Business Wallet owner identification data. Should the EBWOID just be a “bootstrap identity” with a stable minimum attribute set, or should EBWOID be a “dynamic reference framework” containing many relevant attributes registered by competent bodies?

In the Annex of (EU) 2024/2977, Table 3 specifies mandatory legal person identification data in line with the “bootstrap identity”, and Table 4 specifies optional legal person identification data that leans more towards the “dynamic reference framework”.

In COM(2025) 838 final, Article 8(5) the EBWOID is specified to contain just the name and unique identifier in accordance with Article 9. Furthermore, in Article 20, legal person identification data may become irrelevant under EU Digital Identity.

The implementation choice affects what other electronic attestations of attributes may be needed for use cases such as BU3.

Under EU Digital Identity, EU Member States may take different decisions with regard to this. The upcoming EU Business Wallet legislation may affect these decisions.

To achieve cross-border interoperability within WE BUILD, several options are possible:

  • basic EBWOID everywhere (minimum attributes from a single source)

  • extended EBWOID everywhere (attributes such as the VAT registration number)

  • basic EBWOID in some EU Member States, extended EBWOID in others

Decision

Rely on basic EBWOID everywhere as a minimum identity attestation which must be supported by everyone. Develop use cases under the assumption that other attributes require additional electronic attestations. These other attributes can be used both for identifying the economic operator and for verifying additional claims.

Consequences

The EBWOID rulebook should be kept in line with this decision.

With this decision, it becomes easier to reason about the minimum set of additional electronic attestations.

With this decision, it becomes more difficult to test the extended EBWOID case, which may be relevant to some EU Member States. But note that the decision does not preclude testing with extended EBWOID as well.

To manage the risk that this approach differs from EU Business Wallet legislation, WE BUILD should take the definition of EBWOID in account in its upcoming definition of an EU Business Wallet.

To get started with the minimum identification data, the WP4 PID/LPID group should specify which unique identifier(s) to use.

Advice

Once merged, this is our consortium’s decision. This does not mean all participants agree it is the best possible decision. In the decision making process, we have heard the following advice.

Wallet Unit Attestation and Lifecycle Management (For European Business Wallet)

Status: Proposed
Date: 11 February 2026
Authors: WP4 Architecture

  • Lal Chandran, iGrant.io, Sweden

  • Sander Dijkhuis, Cleverbase, the Netherlands

  • George J Padayatti, iGrant.io, Sweden

Context

The European Business Wallet represents an economic operator or public sector body and operates within a cloud or on-premise environment under regulatory oversight derived from revised eIDAS and related Implementing Regulations.

Trust in a Business Wallet must be established at two distinct levels:

  1. Cybersecurity assurance in the wallet’s secure execution and key management environment.

  2. Organisational entity authentication assurance (cf. ISO/IEC 29115) represented by the European Business Wallet Owner ID (EBWOID).

At present, the WE BUILD architecture does not formally define:

  • A Wallet Unit Attestation (WUA) model for European Business Wallet.

  • A Wallet Instance Attestation (WIA) model and its relationship to the WUA.

  • A clear lifecycle model governing Wallet Unit states.

  • The downgrade and revocation semantics between structural and identity trust.

Without an explicit lifecycle and attestation model, revocation handling, issuance eligibility and cross-border interoperability remain ambiguous.

Decision

The European Business Wallet SHALL introduce:

  1. A mandatory Wallet Unit Attestation (WUA).

  2. A defined lifecycle model governing Wallet Unit state transitions.

  3. For this ADR, WIA is not considered for the first iteration of WE BUILD at least.

Wallet Unit Attestation (WUA)

A Wallet Unit Attestation is a signed object issued by the Wallet Provider that:

  • Binds the Wallet Unit to a secure cryptographic environment.

  • Contains public keys used for credential binding.

  • Includes validity and revocation information.

  • Is presented to Issuers and Attestation Providers.

  • Is presented to Relying Parties when required to determine Wallet Unit validity, for example via selective disclosure mechanisms.

A valid WUA is required for a Wallet Unit to operate within the EBW ecosystem.

Wallet Unit Lifecycle Model

The Wallet Unit SHALL follow the lifecycle states defined below:

UNINSTALLED

No wallet instantiated. No cryptographic material. No WUA. No EBWOID.

INSTALLED

Wallet software deployed and environment prepared, but no WUA issued.

OPERATIONAL

Valid WUA present. Structural trust established. EBWOID not yet acquired or pending.

VALID

Valid WUA and valid EBWOID present. Fully functional for regulated and cross-border use.

State Transitions
  • UNINSTALLED → INSTALLED
    Organisation instantiates the software.

  • INSTALLED → OPERATIONAL
    Wallet Unit acquires the WUA.

  • OPERATIONAL → VALID
    A natural person requests and obtains the EBWOID on behalf of the Economic Operator, which is then bound to the Wallet Unit.

  • VALID → OPERATIONAL
    EBWOID revoked or expired.

  • OPERATIONAL or VALID → INSTALLED
    WUA revoked or expired.

  • INSTALLED → UNINSTALLED Uninstallation or decommissioning of a WU, for e.g. during porting from one service provider to other.

Structural trust (WUA) is foundational. Identity trust (EBWOID) depends upon it. A Wallet Unit cannot be VALID without a valid WUA.

Consequences
  • Cybersecurity assurance and Organisational entity authentication assurance are explicitly separated.

  • Revocation of WUA immediately suspends infrastructural legitimacy.

  • Revocation of EBWOID suspends identity validity while preserving structural trust. Where EBWOID is short-lived, the dependency between WUA revocation and EBWOID validity must be further specified in the implementing acts to ensure Relying Parties are not exposed to invalid Wallet Units.

  • Issuers gain a clear rule for issuance eligibility.

  • Lifecycle handling becomes testable within ITB and conformance specifications.

  • Cross-border interoperability is strengthened through explicit state semantics.

  • Wallet Providers are expected to implement this which will be elaborated on further, for.g. via a conformance specification.

This ADR establishes WUA and lifecycle management as mandatory architectural functions of the European Business Wallet. It does not yet establish lifecycle management for entry in the WE BUILD Digital Directory, to simulate the European Digital Directory. This is another layer, which governs the availability of the wallet owner for notifications and submission of documents.

Advice

Once merged, this is our consortium’s decision. This does not mean all participants agree it is the best possible decision. In the decision making process, we have heard the following advice.

Advice

Once merged, this is our consortium’s decision. This does not mean all participants agree it is the best possible decision. In the decision making process, we have heard the following advice.

2026-02-11, Sander Dijkhuis, Cleverbase, Netherlands 2026-02-11, George Padayatti, iGrant.io, Sweden 2026-02-12, George Fourtounis, GRNET, Greece 2026-02-12, Malin Norlander, Bolagsverket, Sweden

Replace LPID with EBWOID

Authors:

  • Erwin Nieuwlaar, KVK, Netherlands

Context:

In webuild-consortium/eudi-wallet-rulebooks-and-schemas#24, the LPID (Legal Person Identification Data) rulebook was removed in favour of the EBWOID (European Business Wallet Owner Identification Data) rulebook. It was unclear whether this represented a consortium decision. Hence, an ADR to discuss support/objections and document this decision is clearly. The PID/EBWOID working group agreed to proceed with this change during a weekly discussion session.

Decision

WE BUILD will use the EBWOID rulebook as the basis for identification of business wallet owners and deprecate LPID within WE BUILD:

  • No new WE BUILD specifications should reference LPID

  • Existing WE BUILD references to LPID should be migrated to EBWOID

Consequences

Positive:

  • One clear rulebook for implementers

  • Reduced duplication

Negative/Risks:

  • Migration effort from LPID to EBWOID

  • EBWOID originates from the Business Wallet proposal, which is not yet in force. There will be an interim period in which eIDAS 2.0 is applicable while the Business Wallet framework is not, creating a risk of misalignment in identifying legal persons

Advice

Deliver business wallet data using QERDS

Authors:

  • Sander Dijkhuis, Cleverbase, the Netherlands

  • Leif Johansson, SIROS, Sweden

Context

The WP4 Architecture group discussed at the IRL Workshop the draft on eDelivery for wallet-to-wallet messaging. Afterwards, the European Commission published the European Business Wallet (EBW) proposal COM(2025) 838 final that includes a secure communication channel: a designated qualified electronic registered delivery service (QERDS). See the definition in Business Wallet Definition (version 2026-01-14). This definition and the WE BUILD approach was discussed during the Business Wallet Workshop.

While the QERDS was already part of the WE BUILD Grant Agreement, this record makes it explicit part of the WE BUILD architecture and specifies high-level starting points. Use cases are encouraged to specify scenarios with the QERDS in wallet-to-wallet interactions as well as using gateways to connect to existing infrastructures.

The QERDS should comply to the eIDAS requirements for QERDS as well as the proposed EBW requirements for the designated QERDS. The Commission Implementing Regulation (EU) 2025/1944 applies regarding “reference standards for processes for sending and receiving data in [QERDS]s and as regards interoperability of those services”. For the designated QERDS, no draft implementing act is available yet, but high-level requirements are included in the EBW proposal Annex chapter 11, as well as Article 5(3) for availability to European Digital Identity Wallets. It is expected that WE BUILD implementation experience can contribute to the specification of the EBW implementing act.

Key assumptions are:

  • the use of the European Digital Directory (EBW Article 10) for identification (looking up EUIDs), discovery (finding networks and capabilities), and connections (retrieving protocol and endpoint information including public keys);

  • the ability for multiple qualified trust service providers to federatively provide the QERDS;

  • the application of architecture models from the reference standard EN 319 522-1:

    • 4-corner model (§ 4.3) for EBW-to-EBW exchange;

    • extended model (§ 4.4) for exchange through a gateway (EBW Article 16(6)(b)).

For EBW-to-QERDS communication, there does not yet seem to exist a common protocol and the WP4 Architecture group has discussed various ideas.

For communication between QERDS providers, the reference standard EN 319 522-4-1 specifies bindings based on AS4 (HTTP-based protocol in ISO 15000-2:2021, OASIS Standard) or email. The AS4 standard is referenced in EU legislation and implementations such as Peppol using the eDelivery AS4 building block. Other protocols that follow the same architectural model exist, and are outlined in the considered alternatives later in this section.

The AS4 protocol is based on XML signature and encryption which does do not yet provide post-quantum safety. There is no current effort in any standards development organisation to propose post-quantum algorithms for XML signatures or key agreement/encryption. This means that the effective lifetime of a solution based on AS4 as-is is limited to a maximum of 6 or 7 years from the required go-live date for the European Business Wallet. Therefore, in a production ecosystem, protocol migration should be possible.

The 4-corner model of the AS4 architecture provides a way to introduce an abstraction layer towards the QERDS, which means that in principle it is possible to replace the underlying QERDS protocol in the future, although such a task would present significant challenges in practice.

The following alternatives were considered:

  • OpenID4VC and ISO/IEC 18013-7 are standards for receiving credentials into and generating and presenting proofs from the EUDI Wallet. These protocols are well suited for flows that involve user interaction, but are more difficult to adapt to flows that involve automated systems or agents.

  • DIDComm is conceptually quite similar to AS4 and has many benefits including a better path towards quantum safe signatures and encryption than an XML-based protocol has at this point. The downside of this alternative is that the standards need to be profiled for use in the EU, for example to reference existing trust infrastructure.

  • Alternatively, a new suite of protocols could be developed that fulfill the expected requirements of the EUBW such as suitability for automation and agents, compatibility with the EUDI natural person wallet etc. There are several options that could serve as a modern starting point for such work including the Matrix protocol and ActivityPub.

Decision

WE BUILD tests and pilots a designated QERDS, with the following responsibilities:

  • WP4 Trust Registry Infrastructure group establishes a WE BUILD Digital Directory aligned with the EU Digital Directory standards.

  • WP4 QTSP group, in consultation with WP4 Architecture and WP4 Wallet Providers groups, specifies an optional API access protocol as an abstraction layer between the wallet and the QERDS.

  • WP4 QTSP group facilitates pilots using (EU) 2025/1944 and eDelivery AS4.

  • WP4 Architecture and WP4 QTSP groups jointly evaluate the requirements for a potential “AS5” alternative QERDS protocol, based on the needs of WP2/WP3 use cases.

If use cases require gateways to the designated QERDS, in principle the use cases are responsible for providing those gateways.

Consequences

Testing and piloting with a designated QERDS makes it easier:

  • To implement use cases for the EUBW that requires automation and/or agent-based access.

  • To connect with organisations responsible for authentic sources for the retrieval and/or verification of attributes, which is necessary for the issuance of qualified electronic attestations of attributes (see Feature: Verification of attributes).

  • To develop the QERDS aspect of the envisioned EBW ecosystem, building upon existing ecosystems like the Once-Only Technical System and Peppol, using the WE BUILD ecosystem and its Interoperability Test Bed to provide a meaningful and collaborative context.

Open issues:

  • Adapting end-to-end encryption in the four-corner model to the European Business Wallet.

  • Support hardware bound credentials and differentiated level of assurance.

The WP4 Architecture group can provide the necessary design competence.

The following risks need to be addressed:

  • QERDS and eDelivery are new subject matter to several wallet providers and implementers. They may be tempted to instead mold the well-known OpenID4VC protocols to use cases that are better suited for QERDS. To address this risk, WP4 Architecture group members and in particular Use Case Sync Leads are expected to learn about QERDS and engage with the WP2/WP3 groups to learn which practical use cases will drive adoption of automation and agent-based flows that are the main motivators for using QERDS in the EBW.

  • The QERDS requires several cross-group implementations. To reduce interoperability risks, the WP4 QTSP group should:

    • specify at least two Conformance Specifications in consultation with stakeholder groups:

      • EBW-to-QERDS;

      • QTSP-to-QTSP for QERDS;

      • (if use cases need it) EUDIW-to-QERDS;

    • work with the WP4 Testing group to perform testing using these Conformance Specifications on the Interoperability Test Bed.

Advice

Once merged, this is our consortium’s decision. This does not mean all participants agree it is the best possible decision. In the decision making process, we have heard the following advice.

Attestation Revocation Mechanism

Authors:

  • Artur Reaboi, e-Governance Agency, Republic of Moldova

  • Alexandru Cozlovschi, e-Governance Agency, Republic of Moldova

  • Fabrizio Notarnicola, InfoCamere, Italy

  • Alessandro Bazzolo, InfoCamere, Italy

Context

Revocation is the process by which an attestation (including PID/EBWOID) is invalidated before its natural expiry so that it can no longer be trusted or used. While short-lived attestations (expiring in 24 hours or less) do not require revocation, long-term attestations need a standardized mechanism to handle invalidation due to reasons such as lost devices, data inaccuracy, or regulatory changes.

The architecture must ensure that the revocation status check preserves the privacy of the Wallet Holder (herd privacy) and allows for scalable implementation. Additionally, the solution must align with the OpenID4VC HAIP 1.0 specifications.

Decision

The WE BUILD project adopts the IETF Token Status List as the mechanism for semantics, formats, and protocols regarding revocation of attestations.

Consequences
Easier:
  • Alignment with OpenID4VC HAIP 1.0 for SD-JWT format is ensured, facilitating interoperability.

  • Relying Parties have a standardized format to check for validity across different issuers.

More Difficult:
  • To ensure performance and privacy, Issuers must implement complex state management. One way to do it is to pre-allocate random indices in batches, rather than simple sequential generation.

  • As Issuers have the sole right to revoke PIDs/EBWOIDs, Authentic Sources and Issuers must establish protocols to notify the Issuer of events requiring revocation (e.g., data changes or lost devices), as they cannot directly revoke an attestation.

Risks:
  • Offline verification scenarios require Relying Parties to cache revocation lists. To address this, Issuers should include expiration dates and time-to-live (TTL) in revocation info to drive caching decisions.

Impact (resulting from ADR High-Level Requirements):
  • Issuers (PID/EBWOID Providers, EAA Providers, including QEAA, Pub-EAA) MUST implement attestation revocation for applicable attestations and that are valid for more than 24h. Revocable attestations MUST be assigned a random status list and random index within it before being signed, all in batches.

  • Issuers MUST ensure the invalid status for not yet expired and revoked attestations is published within a reasonable amount of time (for instance, under 1h).

  • Wallet Providers SHOULD ensure their Wallet Units regularly check the revocation status of its PIDs/EBWOIDs and other attestations, and notify the User if any is revoked.

  • Relying Parties SHOULD check the revocation status via a Revocation Status Service. If reliable information is unavailable, they SHOULD perform a risk analysis rather than a mandatory failure.

Advice

Once merged, this is our consortium’s decision. This does not mean all participants agree it is the best possible decision.

In the decision making process, we have heard the following advice:

  • 2026-02-04, Jonas Toeniss, Brønnøysundregistrene (BRC), Norway: Move Impact items to Consequences section

  • 2026-02-13, Feedback in WP4 Architecture meeting: Clarify that regular check of WUA revocation is a MUST only for PID/EBWOID Providers

  • 2026-02-17, Eelco Klaver, Credenco B.V., Netherlands: WUA implementation and impact to be decided in a separate ADR

Separate the QERDS agent, log and relay

Authors:

  • Sander Dijkhuis, Cleverbase, the Netherlands

Context

To Deliver business wallet data using QERDS, the WP4 QTSP group is specifying an interoperability framework for testing and piloting this Qualified Electronic Registered Delivery Service using WE BUILD Business Wallets. The current architecture decision is about how to structure this framework.

To reason about this structure, we adopt the concept of a package: an immutable sealed artifact comprising user content, delivery evidence, and relay metadata, as proposed in ETSI TR 119 520-1. The package is potentially partly or fully end-to-end encrypted.

Three major functional components of the WE BUILD reference architecture are:

  • delivery agent: register evidence of submission or notification upon identity verification of the sender or recipient;

  • delivery log: ensure retention of this evidence for stakeholders, for example to resolve disputes;

  • delivery relay: between QERDS providers, relay documents, notifications, or evidence.

To simplify the framework, TR 119 520-1 proposes to treat the above as orthogonal concerns. In this treatment, the delivery agent (“smart wrap service”) results in dispatch or receipt packages. This means that most security requirements regarding confidentiality and integrity are implemented by QERDS providers in their delivery agent role. Delivery relay (“XXTP(S) service”) is about transport protocols for interoperable message exchange between QERDS providers, and is only necessary if the sender uses another provider than the recipient. The delivery log can optionally be supported by tracking technology such as electronic ledgers.

An alternative approach would be to implement QERDS security requirements using the security features of the delivery relay interoperability protocol. For example, eDelivery AS4 applies XML Signature and XML Encryption features for delivery relay. Implementations of QERDS could apply these features to protect not only the relay metadata exchanged between QERDS providers, but also the submission or notification and the QERDS evidence. However, this would increase the complexity of changes to either the security or interoperability specifications.

The ETSI EN 319 522 series have not yet been updated to apply the findings from TR 119 520-1, and there do not seem to be concrete plans to. The ETSI STF 705 project WP4 ongoing until June 2027 or another project may apply this eventually. In the meantime, WE BUILD needs to have some interoperability profile that works today and is sufficiently future-proof with the current knowledge.

Decision

WE BUILD separates the specification of:

  • delivery agent to produce, consume, and delivery packages enforcing access control;

  • delivery log to make available registered evidence of events the agent records;

  • delivery relay to transport packages across QERDS providers.

In the context of delivery registry, the semantics of the packages are defined in ETSI EN 319 522-2. Following TR 119 520-1, WE BUILD applies at minimum:

  • dispatch package (“ERD dispatch”): document submission or procedural notification, along with delivery evidence;

  • receipt package (“ERDS receipt”): notification of a delivery event related to an earlier dispatch package.

For delivery relay, the transport protects against QERDS provider impersonation and eavesdropping relay metadata. It is applied only under the condition the sender and recipient have different QERDS providers.

Consequences

The decision makes it easier to learn about the consequences of the technical direction in TR 119 520-1. It also decomposes the problem into two sub-problems, making it easier to specify technical solutions. The decomposition also enables separate interoperability testing of the specifications.

The decision precludes solutions where the transport protocol may already provide the end-to-end security required from QERDS in European Business Wallets. For example, while mTLS between business wallet instances could technically be used for the mandatory identification of sender and recipient or for the mandatory end-to-end encryption, WE BUILD deliberately decouples these functions from the transport.

Especially if package apply end-to-end security, the decision reduces the ability for delivery relay operators to add value beyond transport, as for example Peppol Service Providers do: format transformation, compliance validation, routing, and access management. A delivery relay operator cannot transform the payload without breaking the seal, and cannot even read it if the content is encrypted. The architecture does not answer the question where such value may be added instead: at the delivery agent, at the business wallet, or as its client application? These are consequential questions for the ecosystem of service providers that currently operate network infrastructure.

The main interoperability risk to manage is divergence with the ongoing ETSI standardisation and European Business Wallet legislation by the European Commission, rendering the test and pilot results less relevant for the production ecosystem. We address this risk by requesting early feedback on WE BUILD deliverables from both the Commission and ETSI STF 705 WP4.

Advice

Once merged, this is our consortium’s decision. This does not mean all participants agree it is the best possible decision. In the decision making process, we have heard the following advice.

Structure the European Digital Directory as identification, discovery, and connection

Authors:

  • Rune Kjørlaug, OpenPeppol, Belgium

Context

The EBW proposal COM(2025) 838 final establishes the European Digital Directory (EDD) in Article 10 as the trusted source for locating and contacting EBW owners. The regulation implicitly combines three logically distinct operations into a single "directory" concept: identification (resolving an actor to a stable legal identifier), discovery (finding which networks and processes they are reachable through), and connection (retrieving the technical endpoint for message delivery). Without explicit separation, the EDD risks becoming a duplicated capability registry re-implementing what existing EU eDelivery infrastructure already provides.

A further complication is that the EUID, the primary legal identifier for registered companies under Directive (EU) 2017/1132, is itself ISO 6523-compliant by regulatory mandate: Commission Implementing Regulation (EU) 2021/1042 specifies in its Annex that "the structure of the EUID shall be compliant with ISO 6523." This means the EDD, Peppol, and EN 16931 already share a coherent identifier framework, and the EDD should build on that rather than introduce a parallel layer. However, EUID and BRIS do not cover sole traders, self-employed persons, or public institutions, leaving a registration gap for actor types that appear frequently in SC1 and SC5 use cases.

Three approaches to the discovery and connection layers were considered. A proprietary EDD API specified by Commission implementing act alone would create parallel, incompatible discovery infrastructure alongside existing eDelivery networks. Decentralised identifier resolution (W3C DIDs, distributed ledger approaches) is conceptually interesting but incompatible with AS4/ISO 6523 networks within the WE BUILD timeframe. eDelivery BDXL 2.0 combined with ecosystem SMP 2.0 reuses proven, EU-mandated infrastructure: BDXL 2.0 resolves an ISO 6523 identifier to a capability registry URL using a Service-to-network and Process-to-process mapping; the ecosystem’s own SMP (e.g. Peppol Discovery building block) handles endpoint detail. This keeps the EDD lean and supports federated operation.

For Step 2 capability discovery, OpenID4VCI Issuer Metadata, OpenID Federation, and the WE BUILD Trust List already provide cross-organisational capability signals within the wallet ecosystem. The EDD must not duplicate these: any capability discovery beyond what SMP process registration covers should be handled as metadata extensions to existing mechanisms. This constraint does not affect Step 1, where all three technologies presuppose a known technical endpoint and do not bridge from legal business identity to a wallet address — which remains the EDD’s primary role under Article 10.

This ADR covers infrastructure-mediated document exchange (QERDS, AS4/Peppol, eFTI). Discovery for direct wallet-to-wallet flows using OpenID4VC/VP raises different architectural and privacy considerations and is recorded as an open issue in the supporting analysis.

For detailed analysis including sequence diagrams, the BDXL 2.0 profile design, identification gaps, and risks, see the supporting analysis.

Decision

The EDD SHALL be defined as a federated legal identity resolver and discovery entry point only. Capability registration, endpoint storage, and routing are delegated to ecosystem-specific registries.

The EDD SHALL:

  • resolve economic actors to ISO 6523-compliant identifiers (EUID for registered companies; national ICD scheme values for actors not covered by EUID)

  • return references to ecosystem discovery locators at network and process level (BDXL 2.0, WE BUILD profile)

  • support registration of sole traders and public sector bodies using ISO 6523 ICD catalog entries

The EDD SHALL NOT:

  • store AS4/SMP-style capability registry data (document type capabilities, AS4 endpoint addresses, transport certificates) — these belong in ecosystem-specific registries

  • perform routing or protocol negotiation

  • replace ecosystem capability registries (Peppol SMP, QERDS provider registries, eFTI gateway registries)

  • replace authoritative legal business registries

The EDD machine API SHALL be deterministic and identifier-based. Human search capabilities (by name or attributes) SHALL NOT be normative for machine routing.

The recommended three-step stack for WE BUILD:

Diagram
Consequences

Structuring the EDD as three separated steps makes it easier to:

  • reuse proven, EU-mandated eDelivery infrastructure (BDXL 2.0, SMP 2.0) rather than specifying a new directory protocol

  • support federated operation. Each ecosystem manages its own capability registry without a central point of failure

  • maintain a single coherent identifier model. EUID is ISO 6523-compliant (Reg. (EU) 2021/1042), aligning with Peppol and EN 16931

  • keep the EDD lean and future-proof. Ccapability updates require no change to the EDD identity and discovery layers

It makes it more difficult to:

  • proceed to end-to-end testing without a BDXL 2.0 WE BUILD profile (Service → network, Process → process mapping)

  • onboard sole traders and public sector bodies, who are not covered by EUID/BRIS. Interim registration paths must be defined before affected use cases can proceed

The main risks introduced by this decision are: the pilot directory diverging from the eventual EDD implementing act standard; the identification gap blocking use case testing; and scope creep into existing Peppol infrastructure if the BDXL/SMP boundary is not maintained. These are addressed by WP4 Trust Registry Infrastructure developing the BDXL 2.0 WE BUILD profile as a first deliverable, defining interim registration paths for sole traders and public sector bodies, and engaging the Commission’s EDD implementing act process proactively with documented design decisions.

Advice

Once merged, this is our consortium’s decision. This does not mean all participants agree it is the best possible decision. In the decision making process, we have heard the following advice.

  • 2026-02-11, Rune Kjørlaug, OpenPeppol, Belgium: Contributed the original three-step model (identification, discovery, connection) and the BDXL 2.0 proposal, noting EUID coverage gaps for sole traders and public sector bodies. This ADR is the result of that comment.

  • 2026-03-27, Florin Cora, Bosch, Germany: Raised that the SHALL NOT on endpoints was too broad, as the EDD may need to locate wallet metadata endpoints for OpenID4VC/VP flows. Also raised that centralised discovery intermediaries for peer-to-peer wallet flows create a metadata observation risk. These comments correctly identified a scope gap: this ADR covers infrastructure-mediated document exchange only; OpenID4VC/VP wallet discovery is recorded as an open issue requiring separate specification with privacy-by-design as a first-order requirement. Florin’s broader suggestion that business documents should be transported as wallet attestations to address this privacy concern was not accepted: B2B capability metadata is categorically different from personal credential presentation and does not warrant the same architectural response.

    ==== Separate attestations, documents, and data in EBW

Authors:

  • Rune Kjørlaug, OpenPeppol, Belgium

Context

The EBW proposal COM(2025) 838 final establishes a framework covering electronic attestations of attributes, submissions, and the exchange of documents and notifications (Articles 3 and 5). Recital 27 explicitly introduces a reference attestation (a pointer and cryptographic hash to a sealed document) as a first-class wallet capability, distinct from embedding a full document payload in a credential.

In practice, WE BUILD use cases (notably SC1 eCMR and SC5 Scenario 4) have modelled near complete complex business documents as full-payload wallet attestations. This conflicts with the eFTI Regulation (EU) 2020/1056, which requires freight transport information to remain authoritative on certified platforms, and with the non-repudiation and audit-trail requirements that Peppol and QERDS are designed to provide.

Three options were considered. Full-payload attestation — embedding the complete document as a wallet credential. This was rejected: it bypasses eFTI certification requirements, is incompatible with document mutability and commercial sensitivity, and does not provide non-repudiation. Selective disclosure over document subsets using SD-JWT or mdoc was also rejected: it does not resolve mutability, versioning, or platform certification requirements, and adds disproportionate complexity. The reference attestation with on-demand retrieval model where the wallet holds a minimal attestation (document reference + hash + issuer) per Recital 27, while the full document remains authoritative on the certified platform and is retrieved on demand. This aligns with the EBW proposal, the eFTI Regulation, and established Peppol and (Q)ERDS trust models.

The root cause of the observed conflation is a specification gap: Recital 27 describes the reference attestation pattern but no conformance specification or credential schema yet exists for it, causing use case designers to default to full-payload alternatives.

For detailed use-case analysis (SC1 eCMR, SC5 eInvoicing) and the layered model for roadside inspection scenarios, see the supporting analysis.

Decision

WE BUILD adopts the following rule on the use of attestations in relation to business document exchange:

Attestations SHALL NOT be used as a substitute for business document exchange. Attestations SHALL convey identity attributes, status claims, and authorisation claims. They MAY also serve as reference attestations per EBW Recital 27, carrying a document reference in the form of a cryptographic hash without embedding the document payload. The full payload of complex business documents (e.g. eCMR, EN 16931 invoice) SHALL be exchanged as EBW submissions via (Q)ERDS or equivalent certified channels, and remain authoritative at their source platform. Where a wallet interaction is required at a point of control, the reference attestation pattern SHALL be applied: the wallet presents the reference; the relying party retrieves the document via an authenticated channel. This restriction applies to attestation issuance and presentation flows. It does not limit what data or documents the wallet holder may store or access for their own purposes.

Consequences

Adopting this separation makes it easier to:

  • comply with the EBW content-type model, the eFTI Regulation, and GDPR data minimisation

  • handle document versioning and lifecycle correctly — the authoritative source remains current; the wallet holds only a reference

  • provide non-repudiation and audit trail via (Q)ERDS

  • reuse existing qualified infrastructure (Peppol, eFTI platforms) rather than reimplementing document exchange inside wallet credential flows

It makes it more difficult to:

  • finalise use case specifications before the reference attestation format and retrieval flow are defined — this is a blocker and must not be resolved by falling back to full-payload alternatives

  • integrate with use cases that have already invested in full-payload attestation designs (SC1 eCMR in particular requires rework)

The main risk introduced by this decision is the specification gap itself: in the absence of a reference attestation schema and flow, use case leads face pressure to use full-payload attestations because the tooling and templates for those already exist. This is addressed by treating the reference attestation specification as a priority deliverable for WP4 Architecture, and by WP3 Use Case Sync Leads reviewing all proposed attestation designs against this ADR before finalising rulebooks.

Advice

Once merged, this is our consortium’s decision. This does not mean all participants agree it is the best possible decision. In the decision making process, we have heard the following advice.

(To be completed during review.)

Acceptance of Self-Issued / User-Asserted Attributes

Authors:

Context

The consortium needed to determine whether self-issued/user-asserted attributes are acceptable within the ecosystem.

The acceptability and legal fit of self-issued attestations were unclear. While self-issued attestations offer flexibility and ease of issuance, they do not provide the same level of assurance as electronic attestations of attributes (EAA) or qualified electronic attestations of attributes (QEAA) issued by trusted parties.

The core trade-off is between enabling broad adoption and maintaining a consistently high level of trust across jurisdictions.

Decision

The consortium will allow the use of self-issued/user-asserted attributes.

However, self-issued attributes shall not be treated as qualified attestations and shall not imply the same level of legal or regulatory assurance.

Relying parties remain responsible for determining whether self-issued attestations are sufficient for their use case and risk profile.

Consequences
What becomes easier?
  • Faster ecosystem adoption.

  • Reduced issuance complexity.

  • Lower barriers to participation.

  • Increased flexibility for use cases where qualified attestations are not required.

What becomes more difficult?
  • Trust evaluation becomes the responsibility of relying parties.

  • Acceptance may vary across jurisdictions.

  • Additional policy decisions may be required by service providers.

How do we address the risks introduced by this change?
  • Clearly distinguish self-issued and qualified attestations.

  • Define metadata and trust indicators that allow relying parties to assess assurance levels.

  • Allow relying parties to reject self-issued attestations where regulatory requirements demand stronger evidence.

Advice
  • 2026-06-11: Consortium Working Group: Self-issued/user-asserted attributes should be supported to maximize ecosystem adoption.

  • 2026-06-11: Legal and Compliance Representatives: Self-issued attestations must not be confused with qualified attestations.

  • 2026-06-11: Service Providers: Acceptance policies should be based on jurisdictional and risk requirements.

Authors:

Context

Individuals may hold multiple powers, mandates, or authorizations on behalf of an organization.

The consortium needed to determine whether mandate-related attestations should contain multiple faculties or be limited to a single authorization scope.

The core trade-off is between expressiveness and implementation simplicity.

Decision

Mandate-related attestations shall be atomic.

Each attestation shall contain exactly one faculty or one service authorization.

Multiple powers shall be represented by multiple attestations rather than by composite authorization structures.

Consequences
What becomes easier?
  • Simpler issuance and validation processes.

  • Clear and unambiguous authorization semantics.

  • Improved interoperability across participants.

  • Easier lifecycle management of individual permissions.

What becomes more difficult?
  • Multiple attestations may be required for a single representative.

  • Presentation and management of large authorization sets may become more complex.

  • Real-world mandate structures may require aggregation mechanisms.

How do we address the risks introduced by this change?
  • Allow wallets and verifiers to present and process multiple attestations together.

  • Define guidance for bundling and presenting related attestations.

  • Reassess granularity requirements as additional use cases emerge.

Advice
  • 2026-06-11: Consortium Working Group: Prefer simple, composable attestations over complex multi-purpose credentials.

  • 2026-06-11: Technical Participants: Atomic credentials simplify interoperability and validation logic.

EBW’s EAA Extension for the EDD

Authors:

  • Toennis Jonas, Puria Dyne, Rune Kjørlaug, Angel, Ssander Dijkhuis, Evmorfili Bbairamidou, Ivan Faltus, Felix Rosenberg-Gruszczynski, Martin Westerkamp, Nklomp@sphereon.com, filippo@dyne.org, lld@netsmart.gr, ANDRIANA PRENTZA, Muhamed Turkanović

  • Track 3 - Workshop (AMS, 9,10th June)

Context

Working on the context defined in adr/build-edd-identification-discovery-connection.md and having as the focus the EBW-EDD connection.

For M2M scenarios, there is a need to be able to identify and address EBWs directly for information exchange. This could be in cases where an EAA gets re-issued, and a relying party can send a request for sharing of the new EAA, instead of initiating direct customer contact. It would also make it possible to address attestation to given wallets, reducing the potential for interception in issuance service. (Might become less relevant with Openid4VCI 1.1)

Decision

Every wallet MUST provide a Credential offer endpoint and a Credential Issuance endpoint to be published in the EDD.

  • This COULD be the same endpoint, as long as both functionalities are supported.

  • The endpoint MUST be unique per wallet, and not require an active browser session.

  • The endpoint COULD be protected behind a secret mechanism. In that case, the secret must be shareable by the Business owner. This secret does not indicate consent to receive/share a credential. Its main purpose is to prevent SPAM attacks against these endpoints from third parties.

Consequences
  • EDD functionality needs to be provided by WP4

  • EBW comformance tests need to be adjusted to include the endpoints for the EDD

Advice
  • Focus should also be made towards classical business documents, i.e., non-EAA (credentials/attributes)

  • Considering differences in protocols based on EAA or non-EAA, these should be covered in the EAA discovery and connection part

EBW EAA exchange automation

Authors:

Context

For M2M scenarios, there is a need to be able to automate attestation exchanges. The general discussion indicated that this would ideally be a different protocol than OpenID4vc, but that this would not be feasible within WeBuild timescope. Automation through a automatic approval list or a full policy engine were nominated as the potential solution

Decision

EBWs MUST support a minimum layer of automation for M2M credential exchanges.

  • A wallet MUST allow a wallet owner to define a combination of recipient and credential types to be shared or received automatically without human approval if requested on the wallet’s credential endpoint.

  • A wallet COULD ask after a VC flow if the credential and recipient combination should be added to the automatic approval list.

  • All defined rules in the automatic approval list MUST be visible to the wallet owner, and MUST be under the control of the wallet owner.

Consequences
  • A VP process MUST consult the approval list before answering a VP request or escalating to the user per default OpenID4VCP flow.

  • A VCI process COULD consult the approval list before receiving a credential instead of human approval.

  • European Business Wallet providers MUST implement at least a rudimentary automatic approval list for a given Attesation/revciver or issuer combination

Advice
  • A wallet SHOULD allow rules to be defined in a portable, compatible way, so that e-services who request long lived access (e.g. government services) can define these necessary rules for easy import into the business wallet.

Support Role-Based and Service-Based Authorization Models

Authors:

Context

There is a structural mismatch between:

  • how businesses grant powers (typically role-based), and

  • how service providers authorize access to their services (typically service-based).

Mandating only one authorization model would exclude important use cases and stakeholders.

The core trade-off is between simplicity (a single model) and flexibility/interoperability (supporting both models).

Decision

The consortium will support both of the following authorization models:

  • Role-Based Authorization

  • Service-Based Authorization

Service providers may choose the model they support based on their risk assessment and authorization requirements.

In addition, BU3 will create and maintain a service register/list to enable the discovery and mapping of service-based authorizations.

Consequences
What becomes easier?
  • Better alignment with established business practices.

  • Greater flexibility for service providers.

  • Improved adoption across different sectors.

  • Support for a broader range of authorization scenarios.

What becomes more difficult?
  • Mapping between role-based and service-based permissions.

  • Ensuring consistent interpretation of authorization scopes.

  • Discovery and governance of service definitions.

How do we address the risks introduced by this change?
  • Create and maintain a consortium-wide service register/list.

  • Define governance rules for service registration and discovery.

  • Allow service providers to perform their own risk assessment regarding acceptance of role-based powers.

  • Continuously refine mappings between roles, faculties, and services.

Advice
  • 2026-06-11: Consortium Working Group: Support both models to maximize interoperability and adoption.

  • 2026-06-11: Service Providers: Acceptance of role-based powers should depend on whether the associated faculties are sufficient and on the provider’s risk assessment.

  • 2026-06-11: BU3: A service register and discovery mechanism are required for operational deployment.

Support for Sole Trader Representation

Authors:

Context

The current PoA/PoR rulebooks focus primarily on legal persons and do not adequately represent sole traders and similar economic actors.

As a result, certain business structures cannot be represented consistently within the current model.

The core trade-off is between maintaining a legal-person-centric model and expanding the scope to support a broader set of economic actors.

Decision

The consortium will extend the rulebook terminology from "legal person" to the broader concept of an "economic operator."

The consortium will leverage the EBWOID initiative and use an EUID-like identifier approach to support identity representation for sole traders and similar actors.

Where necessary, existing implementations may continue to process legacy terminology during a transition period, provided that semantic interpretation remains aligned with the new rulebook concept.

Consequences
What becomes easier?
  • Inclusion of sole traders within the ecosystem.

  • Broader applicability of PoA/PoR use cases.

  • Improved alignment with real-world business structures.

  • Better consistency across participating jurisdictions.

What becomes more difficult?
  • Cross-border identifier interoperability remains challenging.

  • National registration systems may use incompatible identifiers.

  • Additional governance may be required for identifier mapping.

How do we address the risks introduced by this change?
  • Reuse existing EBWOID work wherever possible.

  • Define guidance for identifier mapping and interoperability.

  • Continue collaboration with relevant European initiatives addressing economic operator identification.

  • Define a migration approach for legacy terminology to avoid interpretation inconsistencies during rollout.

Advice
  • 2026-06-11: Consortium Working Group: The rulebook should support all relevant economic actors, not only legal persons.

  • 2026-06-11: Identity Domain Experts: Existing EUID-like approaches should be reused where possible.

  • 2026-06-11: Member States: Cross-border identifier harmonization remains an open challenge that requires further work.

ADR: EAA for verifiable claims (attestations), (Q)ERDS for data transfer (business documents)

Date

2026-06-11

Context

WE BUILD WS Amsterdam track 3

Authors:

Toennis Jonas, Puria Dyne, Rune Kjørlaug, Angel, Ssander Dijkhuis, Evmorfili Bbairamidou, Ivan faltus@bankid.cz, Felix Rosenberg-Gruszczynski, Martin Westerkamp, Nklomp@sphereon.com, filippo@dyne.org, lld@netsmart.gr, Filip Hladky, ANDRIANA PRENTZA, Muhamed Turkanović

Context

This decision builds upon the earlier decision to Separate attestations, documents, and data in EBW.

The regulatory definitions of attestations are functional rather than structural. eIDAS (as amended by Regulation (EU) 2024/1183) defines an electronic attestation of attributes as an attestation in electronic form that allows attributes to be authenticated, where an attribute is a characteristic, quality, right or permission of a natural or legal person or of an object. Beyond this, an attestation is in practice a structured piece of data that is signed or sealed by its issuer; neither eIDAS nor the proposed EU Business Wallet regulation (COM(2025) 838) constrains what such data may represent. In the EUDI Wallet context this under-specification is workable: the EUDI Wallet ARF assumes the holder is a natural person on a personal device under the User’s sole control, and the wallet is in practice the system of record for the credentials it holds. The ARF (v2.9.0) has explicitly removed legal-person Wallet Units from its scope in view of the development of a separate business wallet, the boundary this ADR operates within.

In the business wallet ecosystem this assumption does not hold. The wallet of an Economic Operator (EO) is connected to a broader suite of business systems — ERP, invoicing, procurement, archiving — that already act as systems of record for business transactions. If "anything signed and structured" can be carried as an attestation, the attestation mechanism becomes a de facto data transfer channel, duplicating and competing with established document exchange infrastructures rather than complementing them.

Decision

Within WE BUILD we adopt the following definitions and assign each concept to a distinct mechanism:

Electronic attestations of attributes (EAA) provide verifiable claims about an entity whose validity is lifecycle-managed at the source. While the claim content itself is integrity-protected and tamper-evident, its validity is mutable: the issuer can suspend or revoke it at any time, and relying parties are expected to check current status, not just signature validity.

Business documents are self-contained, structured or unstructured data artifacts that represent a business fact or transaction at a specific point in time. Once issued by its source, a business document is immutable. Its content is finalized, and any subsequent change is expressed as a new document (e.g., a correction, amendment, or credit note), never as a modification of the original.

From these definitions follows the central rule of this ADR:

Business documents are not to be transferred as attestations. Attestations are conveyed and presented via the EAA mechanisms of the wallet ecosystem; business documents are exchanged via electronic registered delivery services ((Q)ERDS) or other established document exchange infrastructures.

Rationale

The two concepts differ in their fundamental temporal and lifecycle semantics:

Business document Attestation

Asserts

What happened (historical fact)

What currently holds (status, capability, authorization)

Content

Immutable after issuance

Integrity-protected, fixed at issuance

Validity

Final — corrections via new, linked documents

Mutable — managed at source (suspension, revocation, expiry)

Verification

Integrity and authenticity of the artifact

Integrity plus current status at source

Natural mechanism

(Q)ERDS / document exchange networks

(Q)EAA

A document asserts a historical fact and is therefore immutable; an attestation asserts an ongoing state and is therefore lifecycle-managed. Conflating the two creates concrete problems:

  1. Revocation semantics break down. An invoice carried as an attestation would inherit revocation semantics that have no business meaning — an issued invoice cannot be "revoked," only credited or corrected through a new document.

  2. Systems of record are duplicated. Treating documents as wallet-held attestations positions the wallet as a parallel store of transactional data, in conflict with existing ERP and archiving obligations (including statutory bookkeeping requirements).

  3. Established exchange infrastructure is bypassed. Document exchange networks provide delivery evidence, addressing, and validation capabilities that the attestation presentation flow does not replicate. Routing documents through attestation channels discards these capabilities without replacement.

  4. Status-checking load is misdirected. Relying parties would be expected to perform status checks against issuers for artifacts whose validity, by definition, never changes.

Conversely, the combination of the two mechanisms is where the value lies: attestations (e.g., ApprovedSupplier, AuthorizedServiceProvider) establish who the parties are and what they are entitled to do, while the document exchange conveys what was transacted. Attestations may be referenced from or embedded in business documents to bind transaction to entitlement, without changing the transfer mechanism of the document itself.

Consequences

Positive

  • Clear interoperability boundary: the EUBW integrates with, rather than substitutes for, existing document exchange infrastructure.

  • Each artifact type gets verification semantics that match its nature — status checks for attestations, integrity/authenticity verification and delivery evidence for documents.

  • Existing legal and operational frameworks (eInvoicing directives, ViDA, bookkeeping legislation, Peppol agreements) remain applicable to documents without reinterpretation.

Negative / trade-offs

  • Two mechanisms must be operated and governed instead of one; scenarios involving both (e.g., attestation-bound invoicing) require explicit binding patterns.

  • Edge cases exist where classification requires judgment (e.g., a certificate of conformity attached to a delivery). The decisive test is lifecycle semantics: if validity is managed at the source after issuance, it is an attestation; if the content is final at issuance, it is a document.

Open points

  • Decision tree to be contributed to the Blueprint by the authors

  • Specification of the binding pattern between attestations and business documents (reference vs. embedding) to be contributed to the Blueprint by the authors.

    ==== Credential offer endpoint registry and lookup

Authors:

  • Lal Chandran, iGrant.io, Sweden

  • Nikolaos Triantafyllou, University of Aegean, Greece

Context

Issuer-initiated credential issuance requires a European Business Wallet (EBW) to expose a credential offer endpoint, that is, a reachable target to which an Issuer can deliver a credential offer. Mandating such an endpoint is necessary for interoperability: without it, an Issuer cannot rely on any given EBW being able to receive a pushed credential offer, and issuer-driven flows such as onboarding, re-issuance and attestation delivery become unreliable.

A naively mandated endpoint, however, makes every EBW a permanently reachable, publicly addressable target. This strips engagement control from the Wallet Owner, creates an unsolicited-inbound surface for credential spam and phishing, and disproportionately affects SMEs and sole traders who lack filtering and security operations.

The Wallet Unit Attestation and lifecycle management decision deferred this concern, noting that the availability of the Wallet Owner for notifications and submission of documents is a separate layer governed by entry in the WE BUILD Digital Directory. This ADR specifies that layer, so that the mandated endpoint delivers interoperability without becoming an open relay.

Decision

The WE BUILD Digital Directory layer SHALL be composed of two distinct components: a Registry as the authoritative source of record, and a Lookup Service as the permissioned resolution interface over it. The write path (registration, governed by the Wallet Provider and Wallet Owner) is kept independent from the read path (resolution, exposed to Issuers).

Registry

  • Registration MUST be performed by the Business Wallet Provider on behalf of the Wallet Unit, and MUST be opt-in by the Wallet Owner.

  • The Wallet Owner MUST control which Issuers, or classes of Issuer, are authorised to resolve and reach its endpoint.

  • A Registry entry binds the endpoint to the Wallet Unit’s identity (EBWOID) and structural trust (WUA).

  • The Registry is the single point at which endpoint records and authorisation policy are created, updated and removed.

Lookup Service

  • A credential offer endpoint MUST NOT be published openly; it MUST be resolved through the Lookup Service rather than discovered, scraped or enumerated directly.

  • Resolution MUST be permissioned. Only authenticated Issuers MAY resolve a Business Wallet endpoint, and the Lookup Service MUST enforce the authorisation policy held in the Registry.

  • The Lookup Service MUST NOT confirm the existence of a registered entity to an unauthenticated or unauthorised querier, to prevent enumeration of SMEs and sole traders.

Resolution of an endpoint MUST NOT by itself entitle an Issuer to deliver. The endpoint MUST enforce a consent or allow-list check at delivery time, so that it rejects credential offers from Issuers the Wallet Owner has not accepted.

Consequences

Authorised Issuers can reliably find and reach Business Wallets for issuer-initiated flows, preserving interoperability. Business Wallets are not open relays: an endpoint is reachable only for Issuers the Wallet Owner has accepted, and invisible to everyone else. Engagement control returns to the Wallet Owner through opt-in registration and per-Issuer authorisation, and the credential spam surface is removed by permissioned resolution and the delivery-time consent gate. SMEs and sole traders receive these protections by default, with no security setup on their end, and enumeration risk is mitigated because the Lookup Service does not disclose entities to unauthorised queriers.

Wallet Providers are expected to implement registration and resolution, to be elaborated further via a conformance specification. Actors can verify conformance through testing against other implementations.

Advice

Once merged, this is our consortium’s decision. This does not mean all participants agree it is the best possible decision.

Business Wallet Unit Attestation based on TS3

Authors:

  • Lal Chandran, iGrant.io, Sweden

  • Nikolaos Triantafyllou, University of Aegean, Greece

Context

The EUDI Wallet (CS-04) defines its Wallet Unit Attestation through Technical Specification 3 (TS3), where the Wallet Unit Attestation is composed as WUA = WIA + KA, that is, a Wallet Instance Attestation bound to one or more Key Attestations. TS3 lets Issuers determine a Wallet Unit’s security level, authenticate it, and verify it has not been revoked for the lifetime of an issued attestation.

The Wallet Unit Attestation and lifecycle management decision made a Wallet Unit Attestation mandatory for the European Business Wallet but did not fix its shape. The Business Wallet (CS-05) differs from the EUDI Wallet on several dimensions: it is a server or cloud-hosted service rather than an app on a personal device, its keys live in a Cloud HSM, an organisation-controlled HSM or server-side, and it plays Holder, Issuer and Verifier in one wallet at high, possibly batched or asynchronous, throughput.

A comparison of CS-04 and CS-05 shows that several dimensions can be reused from the EUDI Wallet approach as-is, while a smaller set requires CS-05-specific work. The settled, reused dimensions are roles, form factor, key custody, attestation shape, organisational identity carriage, and roles played. The open dimensions, addressed in separate ADRs, are lifecycle source, discovery, session binding, and throughput.

This ADR records the decision for the attestation shape dimension: how the Business Wallet Unit Attestation is structured.

Decision

For WE BUILD Consortium usecases, the European Business Wallet SHALL adopt the TS3 Wallet Unit Attestation approach as the basis for the Business Wallet Unit Attestation (BWUA).

As a working hypothesis, the BWUA is composed as BWUA = BWIA + SKA, mirroring the TS3 WUA = WIA + KA structure:

  • BWIA (Business Wallet Instance Attestation) attests the Business Wallet Unit and its components against the relevant requirements, in the role of the TS3 WIA.

  • SKA (Server Key Attestation) attests the keys used for credential binding where those keys are held in a Cloud HSM, organisation-controlled HSM or server-side environment, in the role of the TS3 KA adapted to a server form factor and key custody.

The following dimensions are reused from the EUDI Wallet (CS-04) / TS3 approach as-is, adapted only for the Business Wallet form factor where noted:

  • Roles — Business Wallet Provider, Admin(s) and Users.

  • Form factor — server or cloud-hosted service.

  • Key custody — Cloud HSM, organisation-controlled HSM, server-side, or any.

  • Organisational identity — EBWOID carried as a claim, issued by member state business registries or similar.

  • Roles played — Holder, Issuer and Verifier in one wallet.

The lifecycle source, discovery, session binding and throughput dimensions are out of scope for this ADR and are decided separately.

Consequences

Reusing TS3 gives the Business Wallet a known, interoperable attestation model rather than a bespoke one, so Issuers and Relying Parties can reason about Business Wallet security and revocation using the same structure as the EUDI Wallet. The BWIA + SKA decomposition preserves the TS3 separation between attesting the instance and attesting the keys, while accommodating server-side and HSM-based key custody that the EUDI Wallet’s device-bound model does not assume.

Because BWUA = BWIA + SKA is recorded as a working hypothesis, the precise profile, including formats, the SKA’s relationship to HSM key-attestation mechanisms, and conformance criteria, remains to be elaborated via a conformance specification. Where the Business Wallet’s server form factor diverges from TS3 assumptions about a local WSCD, those divergences must be made explicit so that Issuers are not exposed to attestation semantics that do not hold for a cloud-hosted wallet.

Advice

Once merged, this is our consortium’s decision. This does not mean all participants agree it is the best possible decision.

Supporting analysis: Separating attestations, documents, and data in EBW

This document supports the Architecture Decision Record. It records the use-case analysis, layered model, open issues, and risks that informed the decision but are too detailed for the ADR itself.


Use-case analysis
SC1 — eCMR

SC1 correctly scopes its ambition as integrating with existing eFTI platforms rather than replacing them. Scenario SC1.3/SC1.3bis explicitly describes eFTI-compliant cross-border transport by connecting eCMR datasets with Business Wallets. However, the eCMR attestation specification developed for SC1, based on UN/CEFACT eCMR D24A, embeds the full eCMR payload as a wallet attestation. This contradicts both the SC1 boundary statement ("building or redesigning eFTI platforms is out of scope") and the eFTI Regulation (EU) 2020/1056 trust architecture, which requires freight transport information to remain authoritative on a certified eFTI platform, accessible via a unique identifying link on authenticated request.

The eCMR document is unsuitable as a full-payload attestation for several compounding reasons:

  • It is a multi-party transport contract (consignor, carrier, consignee) with commercially sensitive data that must be shared only with authorised parties.

  • It is mutable over its lifecycle: handovers, receipt confirmations, and quantity corrections all update the authoritative record.

  • The eCMR D24A specification itself acknowledges that versioning in SD-JWT format is complex and not currently supported.

  • The SC1 stock-taking document explicitly identifies "liability, audit trails, and non-repudiation in wallet-based cargo authorisation" as an open research objective. These are precisely the properties QERDS and certified eFTI platforms provide — not wallet credential presentation.

SC5 — eInvoicing

SC5’s MVP Scenarios 1—​3 use wallet attestations correctly to convey relationship claims:

  • Approved Supplier attestation: buyer issues, supplier holds, service provider verifies. This is an authorisation claim.

  • Authorised Service Provider attestation: company issues, service provider holds, tax authority verifies. This is a delegation claim.

These are not business documents. Using attestations here is architecturally sound.

The risk is illustrated in Scenario 4 that uses a reference attestation to submit an eInvoice directly between two wallet instances. For the attestation to make sense it should contain enough information to allow the reciever to decide whether or not to retrieve the referenced invoice or not, which fast leads to the notion that the whole invoice can be embedded in the attestation.


Layered model for points of control (SC1.2, SC1.3bis)

For scenarios requiring a human actor to present document-related information at a physical checkpoint (port gate, roadside inspection):

Layer 1 — Minimal reference attestation (wallet-held, offline-capable)

Carried in the wallet in mDL or equivalent format. Contains:

  • Actor identity (driver / carrier)

  • Transport authorisation attributes (vehicle category, cargo type)

  • Document reference (eFTI unique link or equivalent)

  • Document hash (cryptographic binding)

  • Issuing authority

  • Validity period

Does not embed document payload. Designed for proximity presentation (NFC, QR) and offline verification of the hash and reference.

Layer 2 — Authenticated document retrieval (on demand, online)

Triggered by the relying party (inspector, port authority) using the reference from Layer 1. The full eCMR is retrieved from the certified eFTI platform via (Q)ERDS or the eFTI unique-link mechanism, with non-repudiation and audit trail. Network connectivity is required for this step but may be deferred from the initial presentation interaction.

This two-layer model satisfies:

  • The eFTI Regulation’s requirement for information to remain authoritative on certified platforms

  • GDPR data minimisation at the point of presentation

  • Operational robustness at locations with limited connectivity


Open issues

Reference attestation format and flow specification

The EBW proposal describes the Recital 27 pattern in general terms, but no implementing act or WE BUILD conformance specification yet defines the concrete format: what attributes are required, how the eFTI unique link or Peppol document reference is encoded, how the hash is computed and bound to the attestation. WP4 Architecture and WP4 QTSP should develop this specification as a priority — it is a prerequisite for SC1.3 and SC5 Scenario 4.

Offline-capable reference attestation for roadside scenarios

The Layer 1 reference attestation must function without network connectivity at the point of presentation (e.g. driver presenting to roadside inspector). The hash and document reference must be verifiable offline. The threshold between offline-verifiable reference and online document retrieval needs to be specified for SC1.3bis, including what the inspector’s workflow is when connectivity is unavailable.

SC5 Scenario 4 — wallet-triggered QERDS delivery flow

Wallet-to-wallet direct invoice exchange is a legitimate EBW use case, but the invoice must transit via QERDS as a document, with the wallet acting as the QERDS endpoint. The UX flow for how a supplier triggers QERDS delivery from the wallet — and how the buyer’s wallet receives notification and initiates retrieval — is not yet specified. This is also relevant to the PA4 dependency (business payments follow invoice delivery).


Risks

Specification vacuum drives full-payload defaults

The reference attestation pattern is described in EBW Recital 27 but has no associated flow specification, credential schema, or conformance test. In the absence of guidance, use case leads will default to full-payload attestations because the tooling and templates already exist. WP4 Architecture must publish a reference flow and minimal schema before use cases enter specification finalisation. WP3 Use Case Sync Leads should treat absence of a reference attestation specification as a blocker, not a reason to use full-payload alternatives.

Conflation of "wallet-native" with "attestation-native"

Wallet providers and implementers may assume that because something is exchanged via the wallet, it must be modelled as an attestation. EBW Recital 24 ("secure digital platform for storing and exchanging business documents") explicitly contradicts this. WP4 Architecture members engaging with SC1 and SC5 should use the EBW proposal’s own content-type model to explain the distinction directly, not only reference this ADR.

eFTI platform readiness

SC1.3 depends on certified eFTI platforms being operational and accessible for authenticated retrieval. The eFTI Regulation applies in full from 9 July 2027, but platform certification is still in progress. For the WE BUILD pilot phase, use cases may need to operate against pre-production eFTI environments or mock platforms. This must be captured as a dependency in the SC1 specification phase, not resolved by falling back to full-payload attestations.

Peppol gateway for SC5 Scenarios 4 and 5

QERDS-based delivery of Peppol-format invoices requires a gateway between the wallet’s QERDS channel and the Peppol four-corner infrastructure. This gateway is not yet specified in WE BUILD. SC5 and WP4 QTSP should jointly define gateway requirements as part of Scenario 5 specification.


Responsibilities

| Action | Owner | |--|--| | Define minimal reference attestation schema and retrieval flow (Recital 27) | WP4 Architecture + WP4 QTSP | | Review SC1 eCMR attestation specification against this ADR; identify required changes | WP3 SC1 Use Case Sync Lead | | Review SC5 Scenario 4 against this ADR; confirm QERDS delivery model | WP3 SC5 Use Case Sync Lead | | Ensure QERDS gateway and conformance specs include eFTI and Peppol retrieval flows | WP4 QTSP | | Define eFTI pre-production environment dependencies for SC1 pilot | WP3 SC1 Use Case Sync Lead + WP4 | | Define SC5 Scenario 4 wallet UX flow for QERDS-triggered invoice delivery | WP3 SC5 + WP4 Architecture |

Supporting analysis: European Digital Directory — identification, discovery, and connection

This document supports the Architecture Decision Record for EDD. It records the detailed architectural analysis, sequence diagrams, open issues, and risks that informed the decision.


Identifier framework

Commission Implementing Regulation (EU) 2021/1042 (the BRIS implementing regulation) specifies in its Annex that "the structure of the EUID shall be compliant with ISO 6523". EUID is therefore not a parallel identifier layer alongside ISO 6523 — it is an ISO 6523-compliant identifier within that framework. EN 16931, the European standard for electronic invoicing, requires that all organisation identifiers used for invoicing be registered in the ISO 6523 ICD list. Together, these create a unified regulatory basis for ISO 6523 as the cross-network identifier encoding layer across BRIS, Peppol, and the EDD.

The EUID is, however, limited to limited liability companies and commercial partnerships under EU company law (Directive (EU) 2017/1132). The EBW proposal’s own explanatory memorandum acknowledges that sole traders, self-employed persons, and public institutions are not covered by EUID or BRIS. These are frequent parties in SC1 transport scenarios (self-employed drivers, small carriers) and SC5 SME invoicing. Registration paths for these actor types are an open issue (see below).


Three-step architecture — detailed description
Step Function Protocol / Standard

1. Identification

Resolve actor → ISO 6523-compliant identifier

BRIS/BORIS (EUID); national ICD schemes

2. Discovery

Resolve identifier → ecosystem discovery locator (network + process)

eDelivery BDXL 2.0, WE BUILD profile

3. Connection

Retrieve endpoint, certificate, protocol

eDelivery SMP 2.0 (ecosystem-specific)

Transport

Message delivery

AS4 / eDelivery, QERDS

Step 2 — BDXL 2.0 WE BUILD profile. BDXL 2.0 uses DNS-based U-NAPTR records to resolve a participant identifier to the URL of a capability metadata publisher. The WE BUILD profile maps:

  • BDXL Service → network (e.g. "Peppol", "QERDS", "eFTI")

  • BDXL Process → process within that network (e.g. invoice delivery, freight document retrieval)

Document type granularity is intentionally excluded from Step 2. Process-level registration is sufficient to route a sender to the correct ecosystem capability registry; document type detail adds governance overhead without delivering interoperability value, and belongs in the ecosystem SMP (Step 3).

Step 3 — ecosystem SMP. Capability detail (endpoint address, protocol version, certificate references) is registered and maintained by each ecosystem’s own SMP. For Peppol-connected participants this is the Peppol Discovery building block (SMP 2.0). For QERDS this is the QERDS provider registry. This delegation means the EDD does not need to know which document types a participant supports, and capability updates require no change to the EDD.


Sequence diagrams

A. Deterministic routing (machine-to-machine)

Diagram

B. Human search (non-normative — not for machine routing)

Diagram

Open issues

BDXL 2.0 WE BUILD profile

The mapping of BDXL 2.0 Service to ecosystem and Process to process is not yet specified. This is a prerequisite for the discovery locator layer to function and for any end-to-end testing involving cross-network routing. WP4 Architecture and WP4 Trust Registry Infrastructure should develop the profile as a first deliverable.

Sole trader and self-employed identifier scheme

Sole traders accessing QERDS via their EUDIW will have a wallet-derived identifier that may not map to an existing ICD. WP4 Trust Registry Infrastructure must define the registration path for this category before use cases involving sole trader counterparties can proceed to full end-to-end testing. Norway’s enkeltpersonforetak (ENK) scheme is an example of a national identifier type not currently in BRIS.

Public sector body registration

Public sector bodies must accept EBW submissions but are not covered by EUID/BRIS. Their identifier schemes vary by Member State. The WE BUILD Digital Directory must define how they are registered and discoverable, at minimum for government-facing scenarios in SC1.3bis, SC5 Scenario 3, and PA4.

Multi-network process resolution

When a participant is reachable via both Peppol and QERDS for the same process, the BDXL response may return multiple discovery references. Selection logic between network options when multiple matches are returned is not yet specified. A preference-ordering mechanism in the BDXL profile may be needed, particularly for SC5 Scenario 5.

Long-term network segmentation

An alternative architectural direction worth further investigation is whether QERDS and eFTI should eventually be modelled as segments within the Peppol network rather than as separate networks at the discovery layer. This would unify the discovery locator layer under a single Peppol SML, reducing the proliferation of separate ecosystem registries, but would require governance changes within OpenPeppol. This ADR does not foreclose this direction but defers it pending further discussion with OpenPeppol governance.

EDD implementing act timeline

No draft implementing act for the EDD API is yet available. The WE BUILD Digital Directory operates as a pilot ahead of the formal specification. Design decisions should be documented explicitly to support the Commission’s implementing act process.

OpenID4VC/VP wallet endpoint discovery

This ADR covers infrastructure-mediated document exchange (QERDS, AS4/Peppol, eFTI). It does not specify how wallet metadata endpoints are registered and located for direct wallet-to-wallet flows using OpenID4VCI (credential issuance) or OpenID4VP (credential presentation). These flows have different discovery requirements: a wallet needs to locate a counterparty’s /.well-known/openid-credential-issuer or equivalent metadata endpoint, which is not naturally modelled by BDXL 2.0 / SMP 2.0. Whether the EDD should store or point to such endpoints, or whether direct wallet-to-wallet discovery should bypass the EDD entirely, needs to be specified separately. Privacy-by-design must be a first-order requirement for this specification: centralised discovery intermediaries for OpenID4VP flows can observe which wallets communicate, what credentials are requested, and over time reconstruct relationship graphs — a concern that is more acute for natural persons than for legal entities, but which applies to both (see risk below). This is a prerequisite for any WE BUILD use case relying on direct wallet-native flows rather than QERDS or Peppol delivery.


Risks

Pilot directory diverges from eventual EDD standard

If the Commission’s EDD implementing act specifies a different protocol than BDXL 2.0 / SMP 2.0, WE BUILD implementations will require migration. WP4 Trust Registry Infrastructure should engage proactively with the Commission’s specification process and document design decisions so that divergences are traceable.

Identification gap blocks use case testing

If sole traders and public sector bodies cannot be registered in the WE BUILD Digital Directory, use cases involving these actor types cannot proceed to full end-to-end testing. Interim registration paths — including national ICD scheme mappings — should be defined in the specification phase.

Scope expansion risk for existing Peppol infrastructure

Routing non-Peppol ecosystems (QERDS, eFTI) through the existing Peppol SML/SMP would expand the operational scope and cost of Peppol infrastructure without a corresponding governance mandate. The recommended architecture avoids this by placing ecosystem-specific capability registration in each ecosystem’s own SMP. This boundary must be maintained explicitly in the WE BUILD profile.

Privacy proportionality in discovery — B2B vs natural person flows

The privacy concern raised in connection with centralised discovery intermediaries for OpenID4VP is technically sound in general but needs proportionality analysis when applied to B2B contexts. For natural persons presenting credentials (health data, identity documents, licences), centralised intermediaries observing who presents what to whom is a serious privacy risk that the SSI community has extensively documented. For legal entities engaged in commercial exchange, the metadata exposed by capability registration — "this company can receive invoices via this network" — is commercial capability information that the entity has already chosen to register. GDPR and the broader EU proportionality principle both apply: the appropriate safeguard depends on the sensitivity of the actors and data involved. WE BUILD should distinguish these contexts explicitly in its privacy analysis rather than applying a uniform maximum-privacy posture. That said, for use cases where natural persons are participants (e.g. sole traders presenting mDL credentials at a checkpoint), the more stringent OpenID4VP privacy-by-design requirements apply, and discovery should be designed accordingly.

DNS dependency for BDXL

BDXL 2.0 uses DNS-based U-NAPTR records. The abstraction layer between the wallet and the QERDS (per the QERDS ADR) should shield wallet users from DNS-level operations; only QERDS providers and SMP operators interact with the DNS layer directly.


Responsibilities

| Action | Owner | |--|--| | Develop BDXL 2.0 WE BUILD profile (Service → network, Process → process) | WP4 Architecture + WP4 Trust Registry Infrastructure | | Define registration procedure for sole traders and public sector bodies | WP4 Trust Registry Infrastructure | | Register QERDS provider capabilities in SMP 2.0 | WP4 QTSP | | Engage Commission EDD implementing act process; document pilot design decisions | WP4 Architecture | | Define multi-network selection logic when participant reachable via multiple ecosystems | WP4 Architecture | | Specify OpenID4VC/VP wallet endpoint discovery model and privacy-by-design requirements | WP4 Architecture (with input from WP4 QTSP and use case leads for wallet-native flows) |

Appendix H. Conformance Specifications (CS)

About

The Conformance Specifications define how WE BUILD participants implement wallet interfaces and communication protocols between issuers, wallets, and relying parties (RPs). They ensure interoperability and conformance by translating ADR decisions into precise implementation requirements.

The ITB will be based on the CS as a starting point. The test suites in the ITB are relying predominantly on the CS.

Contributing

The Architecture group define the CS, with help from all implementing participants (wallets, issuers and verifiers). For members of the consortium, find more information on the CS processes are held on open social - Architecture Group.

CS Process Summary for WE BUILD Large Scale Pilots (LSPs)

Conformance Specifications (CS) progress through the following process towards the Large Scale Pilots (LSPs):

CS Process and Roles

Approved CSs

CS # CS Title

CS-001

Credential Issuance - v1.0

CS-002

Credential Presentation - v1.0

CSs Under Development

CS # CS Title

Conformance Specifications

1. Introduction

This document defines the WE BUILD Conformance Specification for <TITLE>.

Its purpose is to describe how relevant actors within the WE BUILD ecosystem are expected to interoperate in a consistent and testable way.

This specification should:

  • identify the relevant protocol or functional area

  • clarify which actors are involved

  • define the main requirements needed for interoperability

  • support implementation and conformance testing

This specification is based on <BASE STANDARD / PROFILE / ADR> and should be read together with other applicable WE BUILD specifications where relevant.

2. Scope

This specification defines the conformance expectations for <DOMAIN / CAPABILITY>.

It should make clear:

  • what this specification covers

  • which roles are in scope

  • which capabilities are required

  • what is out of scope

Out-of-scope items should be listed where needed, especially if they are handled by other WE BUILD documents or external specifications.

3. Normative Language

The keywords MUST, MUST NOT, REQUIRED, SHALL, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL are to be interpreted as described in RFC 2119.

These keywords indicate the strength of requirements for conforming implementations.

4. Roles and Components

This section identifies the roles and components relevant to this specification.

Only roles that matter for this specification should be included.

Examples may include:

  • Wallet Unit (WU): software acting on behalf of the Holder

  • Holder: person or organisation controlling the Wallet Unit

  • Issuer: entity issuing credentials or attestations

  • Verifier: entity requesting and validating presentations

  • Authorisation Server: component supporting OAuth / OpenID interactions

  • Trust Provider: component or service publishing trust-related information

5. Protocol Overview

This section gives a short explanation of how the protocol or function works at a high level.

It should help the reader understand:

  • which standards or mechanisms are used

  • how the main actors interact

  • which security or trust features are important

  • what the overall outcome of the interaction is

This section should stay concise. Detailed behaviour belongs in later sections.

6. High-level Flows

This section describes the main interaction flows between actors.

Flows should be written as step-by-step sequences that help implementers understand how the protocol operates.

Example subsections:

6.1 <Flow Name>

Describe:

  • participating actors

  • how the interaction begins

  • the main sequence of actions

  • the expected outcome

Example:

  1. <STEP 1>

  2. <STEP 2>

  3. <STEP 3>

7. Normative Requirements

This section defines the normative requirements for implementations.

Requirements may be grouped in the way that best fits the specification, for example by:

  • role

  • component

  • capability

  • protocol step

Example structure:

7.1 <Role or Component>

<ROLE OR COMPONENT> MUST:

  1. <REQUIREMENT 1>

  2. <REQUIREMENT 2>

<ROLE OR COMPONENT> SHOULD:

  1. <RECOMMENDATION 1>

<ROLE OR COMPONENT> MUST NOT:

  1. <PROHIBITED BEHAVIOUR>

8. Interface Definitions

This section describes the technical interfaces used by the protocol.

Examples may include:

  • HTTP endpoints

  • wallet invocation URLs

  • metadata endpoints

  • credential request structures

  • presentation responses

  • trust registry queries

For each interface, describe:

  • direction of communication

  • transport method

  • request parameters

  • response structure

Example subsection:

8.1 <Interface Name>

Direction: <SENDER> → <RECEIVER>
Method: <HTTP METHOD>

Request

  • <FIELD 1>

  • <FIELD 2>

Response

  • <FIELD 1>

  • <FIELD 2>

Example (illustrative only):

&lt;EXAMPLE REQUEST OR URL&gt;

9. Conformance

An implementation conforms to this specification if it implements the requirements defined in this document for its role and supports the relevant interfaces and flows.

Where relevant, conformance may be stated separately for each role.

Example

An implementation conforms as a <ROLE 1 CONFORMANCE CLASS> if it:

  1. implements the applicable requirements in Section 7

  2. supports the relevant interfaces and flows in Sections 6 and 8

  3. supports any required standards or formats referenced by this specification

Additional WE BUILD profiles may define stricter requirements for specific use cases. Such profiles MUST NOT weaken the mandatory requirements in this specification.

References

[1] <ORGANISATION> (<YEAR>) <TITLE>. Available at: <URL> (Accessed: <DATE>).

[2] <ORGANISATION> (<YEAR>) <TITLE>. Available at: <URL> (Accessed: <DATE>).

[3] <ORGANISATION> (<YEAR>) <TITLE>. Available at: <URL> (Accessed: <DATE>).

WE BUILD - Conformance Specification: Credential Issuance

Version 1.0 Date: 28 November 2025

Authors / Contributors: WP4 Architecture

  • Lal Chandran, iGrant.io, Sweden

  • Sander Dijkhuis, Cleverbase, Netherlands

  • George J Padayatti, iGrant.io, Sweden

  • Nikolaos Triantafyllou, University of Aegean, Greece

  • Malin Norlander, Bolagsverket, Sweden

Table Of Contents

1. Introduction

This document defines the WE BUILD Consortium Conformance Specification (CS) for high assurance credential issuance based on the decision recorded in WE BUILD ADR Base Protocols.

It profiles:

  • OpenID for Verifiable Credential Issuance (OpenID4VCI) v1.0 [1]

  • The OpenID4VC High Assurance Interoperability Profile (HAIP) 1.0 - Implementers Draft 1 [2]

The aim is to ensure that Wallet Units and Credential Issuers within the WE BUILD ecosystem interoperate consistently for the issuance of SD-JWT-VC credentials [3] with high security and privacy.

This specification focuses only on issuance. Presentation, verification of requirements, and trust management are out of scope and covered in separate documents. The document is used to build the WE BUILD Interoperability Test Bed Plus (ITB+) [4].

2. Scope

This specification defines:

  • A profile of OpenID4VCI for issuing SD-JWT-VC credentials

  • Requirements for:

    • Wallets that receive credentials

    • Credential Issuers and their Authorisation Servers

  • Support for:

    • Wallet-initiated issuance

    • Issuer-initiated issuance via Credential Offer

This document describes:

  • Protocol flows for high assurance issuance

  • Interfaces and endpoints, including Wallet invocation, Credential Offer, Pushed Authorisation Requests (PAR), Token Endpoint, Credential Endpoint and metadata

3. Normative Language

The keywords MUST, MUST NOT, REQUIRED, SHALL, SHOULD, SHOULD NOT, RECOMMENDED, MAY and OPTIONAL are to be interpreted as commonly used in technical specifications.

4. Roles and Components

This specification uses the following roles:

  • Wallet Unit (WU): A client application or component acting on behalf of the Holder to obtain and store Verifiable Credentials.

  • Holder: The subject or representative of the subject who controls the Wallet Unit.

  • Attestation Provider (Issuer): The entity that decides to issue Verifiable Credentials and controls issuance policy.

  • Authorisation Server (AS): The OAuth 2.0 and OpenID provider responsible for authenticating the user and issuing tokens for the Issuer. It may be co-located with the Issuer.

5. Protocol Overview

The WE BUILD issuance profile is based on the OAuth 2.0 Authorisation Code Flow with the following mandatory features:

  • Authorisation Code and Pre-Authorised Code Flow for all issuance interactions

  • OpenID4VCI SD-JWT-VC credential format profile (See NOTE CS01_01)

  • Sender-constrained tokens, for example, using Demonstration of Proof of Possession (DPoP) or mutual TLS

  • PKCE with S256 code challenge method

  • Pushed Authorisation Requests (PAR) for all authorisation requests

  • Wallet Unit Attestation (WUA = WIA + KA), per ARF 2.9 [6] and TS-03 [5] and profiled in CS-04 [7]: the WIA is used for client authentication and session binding at the PAR and Token endpoints, and the KA for key binding at the Credential Endpoint

Issuance can be:

  • Wallet-initiated: the Holder starts from the WU and selects a credential type

  • Issuer-initiated: the Issuer provides a Credential Offer that the WU consumes

Both modes are required in this profile.

[!NOTE] CS01_01: ISO18013-5 and ISO18013-7 will be supported in subsequent versions, based on use-case requirements.

6. High-level Flows

This section presents the flows as text-based sequence descriptions.

6.1 Wallet-initiated Issuance Flow

Actors: Holder, WU, Issuer (AS and Credential Issuer).

6.1.1 Configuration and discovery
  1. The WU retrieves Issuer metadata, which includes:

    • OAuth and OpenID configuration

    • Credential Issuer metadata

    • Mapping between credential types and scope values

6.1.2 User selects credential
  1. The Holder chooses a credential type, for example, a PID, QEAA or business credential.

  2. The WU selects the appropriate Issuer and the corresponding scope value.

6.1.3 Pushed Authorisation Request (PAR)
  1. The WU constructs an authorisation request containing, at a minimum:

    • client_id

    • scope identifying the credential type

    • code_challenge using PKCE S256

    • redirect_uri

    • response_type=code

    • state

    • nonce

  2. The WU sends this request to the Issuer’s PAR endpoint, with client authentication bound to the WUA. \

  3. The PAR endpoint returns a request_uri and a validity period.

6.1.4 User authorisation
  1. The WU directs the Holder’s user-agent to the Authorisation Endpoint with the request_uri obtained from PAR.

  2. The Holder authenticates to the AS in accordance with the Issuer’s policy.

  3. The Holder consents to the issuance of the requested credential.

  4. The AS redirects back to the WU with an authorisation code and state.

6.1.5 Token request
  1. The WU sends a token request to the Token Endpoint, including:

    • grant_type=authorization_code

    • code

    • redirect_uri

    • code_verifier matching the earlier code_challenge

    • client authentication using WUA

  2. The Token Endpoint validates the request and returns:

    • sender-constrained access_token

    • optional refresh_token for credential refresh

6.1.6 Credential request
  1. The WU sends a request to the Credential Endpoint containing:

    • Authorization: Bearer {access_token}

    • the requested credential format (SD-JWT-VC / mdoc)

    • a proof object using the JWT proof type that binds the credential to the WU’s subject key

  2. The Credential Issuer validates:

    • the access token and its sender-constraining mechanism

    • the proof JWT

    • issuance policy

  3. The Issuer returns the issued SD-JWT-VC.

6.1.7 Storage
  1. The WU validates the credential signature and Issuer binding.

  2. The WU stores the credential under the Holder’s control.

6.2 Issuer-initiated Issuance via Credential Offer

Actors: Holder, WU, Issuer.

6.2.1 Issuance decision
  1. The Holder interacts with the Issuer, for example, digital onboarding, customer due diligence or contract signing.

  2. Following successful internal checks, the Issuer decides to issue one or more credentials.

6.2.2 Credential Offer creation
  1. The Issuer constructs a Credential Offer object that includes:

    • the credential_issuer identifier

    • grant information for the authorization_code grant type

    • one or more identifiers for supported credential types

    • for each type, a scope value that maps unambiguously to that credential type

6.2.3 Credential Offer delivery and Wallet invocation
  1. The Issuer delivers the offer to the Holder by one of:

    • displaying a QR code that encodes a URL which uses the openid-credential-offer:// scheme to invoke the WU

      • sending a link that uses the openid-credential-offer:// scheme to a device with a registered WU

  2. Both same-device and cross-device delivery methods MUST be supported.

6.2.4 WU processes the offer
  1. The WU is invoked via openid-credential-offer:// and receives the Credential Offer.

  2. The WU parses the offer and determines:

    • Issuer base URL

    • offered credential types

    • associated scope values used for authorisation

  3. The WU displays the offer to the Holder and asks for confirmation to proceed.

6.2.5 Authorisation and token exchange
  1. The WU initiates the Authorisation Code Flow using PAR as defined in Section 6.1, reusing scope values from the offer.

  2. The remainder of the flow, including authorisation, token request, credential request and storage, is identical to the Wallet-initiated flow.

6.2.6 Credential Request

The Wallet sends a Credential Request (or Batch Request) to the Credential Endpoint, including:

  • Authorization: Bearer {access_token}

  • SD‑JWT‑VC configuration

  • proof object

6.2.7 Deferred Credential Request

If issuance cannot be completed immediately, the Issuer returns:

  • transaction_id

  • optional interval (retry hint)

Batch requests may contain both immediate and deferred items.

6.3 Deferred Credential Request

Deferred issuance applies to both wallet-initiated and issuer-initiated flows.

When the Credential Issuer cannot immediately produce one or more credentials:

  1. The Issuer returns:

    • transaction_id

    • optional interval (retry hint) \

  2. The WU MUST store the transaction_id associated with the pending credential(s). \

  3. The WU periodically retries the Deferred Credential Endpoint with the transaction_id until:

    • the credential is successfully issued, or

    • the Issuer signals an unrecoverable error. \

  4. Batch requests may contain a mix of immediate and deferred items. Each deferred item receives its own transaction_id and can be polled independently.

7. Normative Requirements

This section summarises the mandatory requirements for WE BUILD implementations.

7.1 Common requirements (WU and Issuer)

Both WU and Issuer MUST:

  1. Support the Authorisation Code Flow as the only flow for credential issuance.

  2. Support the SD-JWT-VC credential format profile as defined for OpenID4VCI.

  3. Support sender-constrained tokens, for example, using DPoP or mutual TLS.

  4. Support PKCE with the S256 code challenge method for all authorisation requests.

  5. Support Wallet-initiated and Issuer-initiated issuance.

  6. Use the WUA (WIA and KA) as defined in CS-04 [7]; CS-04 is authoritative for WUA structure, validity, revocation and binding, and this specification references it rather than restating those rules.

7.2 Credential Offer

Issuers MUST:

  1. Support the grant type authorization_code in Credential Offers, aligned with OpenID4VCI.

  2. Include a scope value for each offered credential type so that the Wallet can identify the correct type and use the same value in the authorisation request.

  3. Support both same-device and cross-device sending of Credential Offers.

  4. Support at least the openid-credential-offer:// custom URL scheme for Wallet invocation.

WUs MUST:

  1. Be able to parse a Credential Offer that uses authorization_code as the grant type.

  2. Use the scope value from the offer in the authorisation request.

  3. Support invocation via the openid-credential-offer:// custom URL scheme.

7.3 Authorisation Endpoint and PAR

Issuers MUST:

  1. Require Pushed Authorisation Requests (PAR) for all authorisation requests. Direct front-channel authorisation requests without PAR MUST NOT be used.

  2. Ensure that the Wallet authenticates at the PAR endpoint using the same method as used for client authentication at the Token Endpoint.

  3. Verify the WIA presented at the PAR endpoint as at the Token Endpoint, including that its x5c signing certificate chains to a trust anchor on the Trusted List for Wallet Providers (see section 7.4; TS-03 [5], clause 2.2.1.1; CS-04 [7]).

WUs MUST:

  1. Use PAR for all authorisation requests.

  2. Use the scope parameter to indicate the credential type to be issued. Each scope value MUST map to a specific credential type that is known from Issuer metadata or from the Credential Offer.

  3. Ensure that the client_id in the PAR request matches the sub claim in the WIA (Wallet Instance Attestation) JWT used for client authentication.

  4. Include dpop_jkt (the JWK Thumbprint of the WIA cnf key) in the PAR request to bind the issued authorisation code to the DPoP key (RFC 9449 [8], Section 10), so that the sender-constraint holds from PAR through to the Access Token. TS-03 [5] mandates the cnf.jkt check at the Token Request (section 7.4); binding the code at PAR is the OpenID4VCI / RFC 9449 mechanism and is to be confirmed for this profile.

7.4 Token Endpoint and Wallet Attestation

WUs MUST:

  1. Authenticate at the Token Endpoint using the WIA, a Wallet Attestation per OpenID4VCI [1] v1.0 Appendix E (typ: oauth-client-attestation+jwt), sent with its Proof-of-Possession (oauth-client-attestation-pop+jwt) in the PAR and Token Request. The WIA is profiled in CS-04 [7] (TS-03 [5], clause 2.2.1.1).

  2. Convey the Wallet Provider signing certificate in the x5c JOSE header of the WIA, with intermediate certificates as needed. The Wallet Provider identity is inferred from this certificate; iss is not used (TS-03 [5], clause 2.2.1).

  3. Use the WIA cnf key as the DPoP key when requesting the Access Token, and on receipt verify that the Access Token’s cnf.jkt matches the JWK Thumbprint of that cnf key, aborting the issuance session on mismatch. This session binding is the obligation profiled in CS-04 [7], section 7.3 (TS-03 [5], clause 2.2.1.1).

  4. Ensure the sub claim in the WIA equals the client_id used in PAR and Token Requests.

Issuers MUST:

  1. Verify the WIA signature under the signing certificate in the x5c JOSE header, and verify that this certificate chains to a trust anchor on the Trusted List for Wallet Providers, using x5c intermediate certificates as needed (TS-03 [5], clause 2.2.1.1).

  2. Verify the WIA Proof-of-Possession under the cnf key (TS-03 [5], clause 2.2.1.1).

Issuers SHOULD:

  1. Support refresh tokens for credential refresh, following OpenID4VCI guidance on refresh usage and lifetime.

Note
because the WIA cnf key is used as the DPoP key (WUs item 3 above), for WUA-based issuance the Access Token is DPoP-bound (section 7.1).
7.5 Credential Endpoint

Issuers MUST:

  1. Support the JWT proof type in the Credential Endpoint.

  2. Support the SD-JWT-VC credential format and validate the proof binding between the Wallet subject and credential.

  3. Where a Key Attestation (KA) is required, accept the KA in the key_attestation header of the jwt proof, verify the KA (its signature under the x5c signing certificate, chaining to a trust anchor on the Trusted List for Wallet Providers) and verify the proof of possession under the key at index 0 of attested_keys (TS-03 [5], clauses 2.2.2.1 and 2.2.2.2; CS-04 [7], section 7.3).

  4. Where key_attestations_required is published, verify the KA’s key_storage and user_authentication against the required levels and decide acceptability per issuance policy. The KA claims are defined in CS-04 [7] / TS-03 [5], clause 2.3.2.

  5. Re-check the revocation status of the WIA and KA during the credential’s validity period as specified in CS-04 [7], section 7.2 (TS-03 [5], clause 2.4.3).

Wallets MUST:

  1. Send a proof JWT that contains claims required by the Issuer to bind the credential to the Wallet’s subject key.

  2. Validate the returned SD-JWT-VC, including:

    • signature

    • Issuer identifier

    • key binding and any status information, according to the SD-JWT-VC profile

  3. Where the Issuer requires a Key Attestation, include the KA in the key_attestation header of the jwt proof, signed by the key at index 0 of attested_keys (TS-03 [5], clause 2.2.2.1; CS-04 [7]).

  4. Where the Issuer requires key-attestation levels, present a KA whose key_storage and user_authentication meet or exceed the required levels; a higher level satisfies the requirement, and a lower level MUST NOT be used.

7.6 Deferred Credential Endpoint

Issuers MUST:

  • Support a deferred_credential_endpoint.

  • Return a transaction_id (as defined in OpenID4VCI v1.0 §8.3) when issuance is delayed.

  • Validate transaction_id and ensure proper lifetime and binding to the issuance session.

  • Publish endpoint in metadata.

Issuers SHOULD:

  • Provide clear retry guidance via the interval parameter.

  • Return explicit errors when the transaction_id is expired or the credential cannot be issued.

Wallets MUST:

  • Recognise deferred responses and store the transaction_id.

  • Call the Deferred Credential Endpoint with the transaction_id until the credential is ready or the transaction ends.

  • Distinguish pending vs failed issuance in UI.

Wallets SHOULD:

  • Apply poll intervals/back‑off.

  • Allow users to stop polling.

7.7 Server Metadata

Issuers MUST publish metadata that includes:

  1. OAuth 2.0 and OpenID configuration, including Authorisation, Token and PAR endpoints.

  2. Credential Issuer metadata that describes:

    • all supported credential types

    • a mapping from each credential type to a unique scope value

Wallets MUST:

  1. Retrieve and process Issuer metadata, including the mapping from credential type to scope.

  2. Use this mapping when constructing authorisation requests and when interpreting Credential Offers.

Issuers MAY:

  1. Publish a key_attestations_required object in Credential Issuer metadata stating the minimum acceptable key_storage and user_authentication levels (ISO 18045 AVA_VAN), per OpenID4VCI [1] Appendix D. The KA claims are defined in CS-04 [7] / TS-03 [5], clause 2.3.2.

8. Interface Definitions

This section defines the logical interfaces for conformance. Exact URL paths are deployment-specific and discovered through metadata.

8.1 WU Invocation Interface
  • Direction: Issuer to Wallet

  • Transport: custom URL scheme and optional QR code

  • Requirement:

    • Wallets and Issuers MUST support the openid-credential-offer:// scheme as a minimal mechanism to invoke Wallets in both same-device and cross-device scenarios

Example (illustrative)

openid-credential-offer://credential-offer?request_uri=...

The concrete parameters and encoding follow HAIP and OpenID4VCI guidance on Credential Offers.

8.2 Credential Offer Interface
  • Direction: Issuer to WU

The Credential Offer object MUST contain at least:

  • credential_issuer: base URL identifying the Issuer

  • grants: object that includes support for authorization_code

  • For each credential type:

    • a credential type identifier

    • the associated scope value

The exact JSON structure MUST comply with OpenID4VCI Credential Offer definitions.

8.3 PAR Endpoint
  • Direction: Wallet to Issuer (AS)

  • Method: POST

Request (logical fields)

  • client_id

  • scope

  • code_challenge using PKCE S256

  • code_challenge_method=S256

  • redirect_uri

  • response_type=code

  • state, nonce

Response

  • request_uri

  • expires_in

All PAR requests MUST be client-authenticated according to Section 7.4.

8.4 Token Endpoint
  • Direction: WU to Issuer (AS)

  • Method: POST

Request (logical fields)

  • grant_type=authorization_code

  • code

  • redirect_uri

  • code_verifier

  • client authentication using Wallet attestation JWT, for example, client_assertion and client_assertion_type

Response

  • access_token (sender-constrained)

  • token_type

  • expires_in

  • optional refresh_token

8.5 Credential Endpoint
  • Direction: WU to Issuer

  • Method: POST Request (logical fields)

  • HTTP header: Authorization: Bearer {access_token}

  • Body:

    • format (for example, vc+sd-jwt or the identifier used in the chosen SD-JWT-VC profile)

    • identification of the requested credential configuration

    • proof object with:

      • proof_type="jwt"

      • jwt containing proof claims

Response

  • SD-JWT-VC credential and any associated metadata defined by the OpenID4VCI SD-JWT-VC profile

8.7 Deferred Credential Endpoint

Direction: WU → Issuer
Method: POST Request (logical fields)

  • HTTP header:

    • Authorization: Bearer {access_token}

    • Content-Type: application/json

  • Body parameters:

  • transaction_id

Response

A Deferred Credential Response MAY either provide the issued credentials or indicate that issuance is still pending.

If credential issuance is complete:

  • The response MUST contain the credentials parameter

  • HTTP status code MUST be 200 (OK).

If credential issuance is still pending

  • The response MUST contain:

    • transaction_id: MUST match the request.

    • interval: recommended waiting time before retrying.

  • HTTP status code MUST be 202 (Accepted).

Error Response If the Deferred Credential Request is invalid, the Issuer returns an error response.

  • invalid_transaction_id: Indicates that the transaction_id was not issued by the Credential Issuer or has already been used.

  • If the Credential Issuer can no longer issue the credential(s), it returns credential_request_denied. The WU stops retrying for the given transaction_id.

8.8 Metadata Endpoints

Issuers MUST publish:

  • OpenID Provider and OAuth discovery document

  • Credential Issuer metadata document

The latter MUST include:

  • supported credential types

  • for each type, the associated scope value

WU uses these documents for dynamic configuration.

9. Conformance

An implementation conforms to this specification as a Wallet Provider if it:

  1. Implements the WU requirements in Sections 6 and 7.

  2. Supports the interfaces defined for WU behaviour in Section 8.

  3. Uses SD-JWT-VC and OpenID4VCI as profiled by the OpenID4VC High Assurance Interoperability Profile Implementer’s Draft, Section 4.

An implementation conforms to this specification as an Issuer if it:

  1. Implements the Issuer requirements in Sections 6 and 7.

  2. Publishes server metadata, including type to scope mappings.

  3. Provides the PAR, Token, Credential and WU invocation interfaces described in Section 8.

Profiles may define additional constraints for specific WE BUILD credential types, such as PID, QEAA, or business credentials. Such profiles MUST NOT relax the mandatory requirements in this document. The specific issuance will be taken into a separate CS.

References

[1] OpenID Foundation (2025) OpenID for Verifiable Credential Issuance 1.0. OpenID Foundation. Available at: https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html (Accessed: 24 November 2025).

[2] OpenID Foundation (2025) OpenID4VC High Assurance Interoperability Profile — draft 03. OpenID Foundation. Available at: https://openid.net/specs/openid4vc-high-assurance-interoperability-profile-1_0-ID1.html (Accessed: 24 November 2025)

[3] IETF (2025) SD‑JWT‑based Verifiable Credentials. IETF. Available at: https://www.ietf.org/archive/id/draft-ietf-oauth-sd-jwt-vc-09.html (Accessed: 24 November 2025).

[4] WE BUILD (2025) Interoperability Test Bed - Reference Specification, 12 November, Available at: https://github.com/webuild-consortium/wp4-interop-test-bed/blob/main/docs/reference-implementation-interoperability-test-bed.md (Accessed: 24 November 2025).

[5] European Commission (2026) Wallet Unit Attestation (TS3). eu-digital-identity-wallet/eudi-doc-standards-and-technical-specifications. Available at: https://github.com/eu-digital-identity-wallet/eudi-doc-standards-and-technical-specifications/blob/main/docs/technical-specifications/ts3-wallet-unit-attestation.md (Accessed: 5 June 2026).

[6] European Commission (2026) The European Digital Identity Wallet Architecture and Reference Framework, version 2.9.0. Available at: https://eudi.dev/2.9.0/architecture-and-reference-framework-main/ (Accessed: 5 June 2026).

[7] WE BUILD (2026) Conformance Specification CS-04: Individual Wallet Unit Attestation (WUA) Lifecycle. webuild-consortium/wp4-architecture.

[8] IETF (2023) RFC 9449: OAuth 2.0 Demonstrating Proof of Possession (DPoP). Available at: https://www.rfc-editor.org/rfc/rfc9449 (Accessed: 5 June 2026).

1. Introduction

This document defines the WE BUILD Conformance Specification for Credential Presentation, describing how Wallet Units (WU) and Verifiers interoperate using OpenID for Verifiable Presentations (OpenID4VP) 1.0 [1] in alignment with the OpenID4VC High Assurance Interoperability Profile (HAIP) 1.0 - Implementer’s Draft 1 [2], based on the decision recorded in WE BUILD ADR Base Protocols.

It specifies a high‑assurance presentation profile for use within the WE BUILD ecosystem, covering:

  • Presentation request and response flows

  • Interfaces between Wallets and Verifiers

  • Security, privacy and interoperability requirements

  • Support for SD‑JWT‑VC credentials [3]

  • Same‑device and cross‑device invocation patterns

This document complements the WE BUILD Conformance Specification: Credential Issuance v1.0. The document is used to build the WE BUILD Interoperability Test Bed Plus (ITB+) [4].

2. Scope

This specification defines the conformance profile for high‑assurance credential presentation:

  • Requirements for:

    • WUs that respond to presentation requests

    • Verifiers that initiate presentation requests

  • Mandatory features:

    • OpenID4VP 1.0

    • HAIP ID‑1 Section 5 requirements

    • JWT‑based Presentation Proof

    • SD‑JWT‑VC selective disclosure

    • Same‑device and cross‑device invocation

    • openid4vp:// Wallet invocation

3. Normative Language

The terms MUST, MUST NOT, SHOULD, SHOULD NOT, REQUIRED, RECOMMENDED, MAY and OPTIONAL are to be interpreted as described in RFC 2119.

4. Roles and Components

The role names defined in this specification (Wallet Unit, Holder, Verifier) are OpenID4VP protocol roles, not organisational or product roles. A single software product may implement more than one role at different times, and any given role may be fulfilled by software that also performs other functions (for example, a Business Wallet implementing both Holder and Verifier roles in different interactions). The requirements in this specification attach to the role, not to the product or organisation that implements it.

This specification uses the following roles:

  • Wallet Unit (WU): A software component on the Holder’s device acting on behalf of the Holder to obtain, store and present Verifiable Credentials.

NOTE_CSCP_OAUTH_CLIENT In OpenID4VP terminology, the OAuth Client role is played by the Verifier (Relying Party), not by the Wallet Unit. References to client_id in this specification refer to the Verifier.

  • Holder: The subject or representative of the subject who controls the Wallet Unit.

  • Verifier: Entity requesting verifiable presentations, validating responses and making authorisation decisions.

5. Protocol Overview

The WE BUILD presentation profile is based on OpenID4VP with the following mandatory features defined by HAIP ID-1:

  • JWT-Secured Authorisation Request (JAR): All authorisation requests MUST be signed.

  • Digital Credentials Query Language (DCQL): MUST be used for querying credentials.

  • Client Identifier Schemes: Usage of x509_san_dns or verifier_attestation, decentralized_identifiers is also recommended (did:web, did:jwk)

  • Crypto Suites: Strict adherence to P-256 (secp256r1) with ES256 for signing.

  • Holder Binding: Mandatory Key Binding JWT (KB-JWT) for SD-JWT VCs. (See NOTE_CS02_01)

High‑level steps:

  1. Verifier creates Presentation Request

  2. Wallet is invoked via openid4vp:// (same or cross device)

  3. Wallet validates Presentation Request

  4. Holder consents

  5. Wallet generates Presentation Proof + Disclosures

  6. Wallet submits Presentation Response

  7. Verifier validates and produces outcome

NOTE_CS02_01: ISO18013-5 and ISO18013-7 will be supported in subsequent versions based on use case requirements.

6. High-level Flows

This chapter defines the presentation flows required by WE BUILD.

6.1 Same-device Presentation Flow
6.1.1 Presentation Request Creation

The Verifier prepares a signed Presentation Request Object containing:

  • Requested credential types

  • Disclosure constraints

  • Proof requirements (nonce, audience)

  • Expiry (exp)

  • Verifier identifier (client_id)

The request MUST be integrity‑protected (JAR‑style or equivalent).

6.1.2 WU Invocation

The Verifier redirects the user-agent to the WU using:

openid4vp://present?request_uri=<URL>

Wallet retrieves or validates the signed Presentation Request Object.

6.1.3 WU Validation

The WU MUST validate:

  • Signature of Presentation Request

  • Nonce freshness

  • Audience matches Wallet

  • Expiry validity

  • Credential types and disclosure constraints

  • Request integrity

Unsigned or invalid requests MUST be rejected.

The WU MUST display:

  • Verifier identity

  • Requested credential types

  • Requested attributes or claims

  • Any selective disclosure details

Holder MUST explicitly consent.

6.1.5 Presentation Generation

Upon consent, the Wallet MUST generate:

  • JWT‑based Presentation Proof

  • Selective disclosures for SD‑JWT‑VC

  • Binding between:

    • Presentation Proof and Wallet‑held key

    • Nonce

    • Audience

6.1.6 Presentation Submission

The Wallet MUST POST the Presentation Response to the Verifier’s Presentation Response Endpoint, including:

  • vp_token containing the JWT‑encoded Presentation

  • format specifying SD‑JWT‑VC

Sender‑constrained token usage MUST be applied if configured.

6.1.7 Result Handling

The Verifier MUST return:

  • A success object if verification succeeded

  • Error information when the presentation is invalid or incomplete

Wallet MUST correctly display the outcome to the Holder.

6.2 Cross-device Presentation Flow
6.2.1 Presentation Request Creation and Display

Verifier constructs the Presentation Request Object (as in 6.1.1) and encodes it in a QR‑based openid4vp:// URL.

6.2.2 Wallet Unit Invocation via QR

Holder scans the QR code. WU retrieves the Presentation Request Object (embedded or via request_uri).

6.2.3 Wallet Validation

The same validation rules as 6.1.3 apply.

Same as 6.1.4.

6.2.5 Presentation Generation

Same as 6.1.5.

6.2.6 Presentation Submission

WU delivers the Presentation directly to the Verifier’s Presentation Response Endpoint (back channel). Redirection flow MAY be used if supported.

6.2.7 Result Handling

Verifier processes the Presentation and returns the outcome as in 6.1.7.

7. Normative Requirements

The requirements in 7.1 and 7.2 attach to the OpenID4VP roles of Wallet Unit and Verifier respectively, as defined in chapter 4, not to the products or organisations implementing them. A relying party deploying a multi-role software product (for example a Business Wallet) to implement the Verifier role is a normal and supported pattern; the obligations in 7.2 apply to the Verifier role inside that product.

7.1 Wallet Unit Requirements

Wallets MUST:

  1. Support HAIP‑compliant OpenID4VP.

  2. Support the same‑device and cross‑device flows.

  3. Support openid4vp://present invocation.

  4. Validate signed Presentation Requests.

  5. Implement SD‑JWT‑VC selective disclosure.

  6. Provide transparent Holder consent.

  7. Generate JWT‑based Presentation Proof.

  8. Bind Presentation Proof to Verifier’s nonce and audience.

  9. Submit Presentation Responses to the Presentation Response Endpoint.

Wallets MUST NOT:

  • Accept unsigned or invalid Presentation Requests

  • Auto‑consent

  • Add unsolicited claims

7.2 Verifier Requirements

Verifier obligations are listed below in two groups: per-transaction protocol behaviours, and deployment-time obligations. All items are normative MUSTs. The wallet’s reciprocal duty for the same protocol step is referenced in parentheses.

Verifiers MUST ensure, on every transaction, that:

  1. The Presentation Request Object is sealed (signed) by the Verifier. (Wallet reciprocal: 7.1.4)

  2. Nonces and audience restrictions are generated and included. (Wallet reciprocal: 7.1.8)

  3. All Presentation Responses are validated, including:

    • Signature of Presentation Proof

    • Credential authenticity

    • Wallet Unit Attestation validity (per HAIP)

    • SD‑JWT‑VC disclosure integrity

    • Holder binding

    • Nonce and audience binding

    • Satisfaction of request constraints

    (Wallet reciprocal: 7.1.5 to 7.1.8)

Verifiers MUST, at deployment:

  1. Support same‑device and cross‑device invocation. (Wallet reciprocal: 7.1.2, 7.1.3)

  2. Publish Verifier Metadata.

  3. Provide a Presentation Response Endpoint. (Wallet reciprocal: 7.1.9)

Verifiers MUST NOT:

  • Request unnecessary personal information

  • Disable nonce or audience validation

8. Interface Definitions

Interfaces in this chapter follow the structure from the Issuance Conformance Specification.

8.1 Wallet Invocation Interface

Direction: Verifier → Wallet
Transport: openid4vp:// scheme
Usage: Same-device or cross-device scanning

Example:

openid4vp://present?request_uri=https://verifier.example.org/request/123

Wallet MUST retrieve or validate the Presentation Request Object.

8.2 Presentation Request Object Interface

The Presentation Request Object MUST include:

  • Verifier identifier (client_id)

  • nonce

  • audience

  • Requested credential types

  • Disclosure constraints

  • Proof requirements

  • Expiry

  • Signature (integrity-protected object)

Wallet Units reject incomplete or invalid request objects.

8.3 Presentation Response Endpoint

Direction: Wallet → Verifier
Method: POST
Authentication: MAY use sender-constrained tokens

Request Body Example

{ "vp_token": "<JWT-Presentation>", "format": "vc+sd-jwt" }

Success Response Example

{ "status": "ok" }

Error Example

{ "error": "invalid_presentation", "error_description": "Nonce invalid or expired" }
8.4 Verifier Metadata Interface

Verifiers MUST publish metadata containing:

  • Presentation_endpoint

  • Supported vp_formats

  • Supported proof mechanisms

  • JWK set for Request signing

  • Required credential types

Wallet Units retrieves this metadata where available.

9. Conformance

An implementation conforms to this specification as a Wallet Provider if it:

  1. Implements all Wallet requirements in Section 7.1

  2. Implements all interfaces and behaviours in Section 8

  3. Supports flows defined in Section 6

  4. Supports SD‑JWT‑VC as defined for OpenID4VP

An implementation conforms to this specification as an Issuer if it:

  1. Implements all Verifier requirements in Section 7.2

  2. Publishes required Verifier Metadata

  3. Implements the Presentation Request and Presentation Response Endpoint interfaces

  4. Supports both same‑device and cross‑device flows

References

[1] OpenID Foundation (2025). OpenID for Verifiable Presentations 1.0. OpenID Foundation, 9 July. Available at: https://openid.net/specs/openid-4-verifiable-presentations-1_0.html (Accessed: 24 November 2025).

[2] OpenID Foundation (2025) OpenID4VC High Assurance Interoperability Profile — draft 03. OpenID Foundation. Available at: https://openid.net/specs/openid4vc-high-assurance-interoperability-profile-1_0-ID1.html (Accessed: 24 November 2025)

[3] IETF (2025) SD‑JWT‑based Verifiable Credentials. IETF. Available at: https://www.ietf.org/archive/id/draft-ietf-oauth-sd-jwt-vc-09.html (Accessed: 24 November 2025).

[4] WE BUILD (2025) Interoperability Test Bed - Reference Specification, 12 November, Available at: https://github.com/webuild-consortium/wp4-interop-test-bed/blob/main/docs/reference-implementation-interoperability-test-bed.md (Accessed: 24 November 2025).

WE BUILD - Conformance Specification: Remote Qualified Signing with Wallet Units

Version 1.2 / Draft Date: 29 April 2026

Authors / Contributors: WP4 Architecture

  • Lal Chandran, iGrant.io, Sweden

  • Hristian Daskalov, EvroTrust, Bulgaria

  • George J Padayatti, iGrant.io, Sweden

  • Andreas Abraham, ValidatedID, Spain

  • Alejandro Nieto, DigitelTS, Spain

  • Hidde Dorhout, Cleverbase, Netherlands

  • Andrew Freund, D-Trust, Germany

  • Michelle Ludovici, DIGG, Sweden

Table of Contents

1. Introduction

This document defines the WE BUILD Conformance Specification: Remote Qualified Signing with Wallet Units, describing how Wallet Units (WU) and other actors interoperate to create qualified electronic signatures using OpenID for Verifiable Presentations (OpenID4VP) 1.0 [1] and the CSC Data Model Bindings [3].

This specification extends the WE BUILD Conformance Specification: Credential Presentation [5] (hereafter CS-02). All requirements defined in CS-02 apply unless explicitly superseded here. This document defines only the signing-specific additions.

Two interaction models are specified:

  • Wallet-Centric Model — the Wallet Unit holds the signing key, and the signature is generated locally on the Signer’s device using the CSC X.509 credential format and the qesRequest transaction data type.

  • QTSP-Centric Model — the signing key is held in a Qualified Signature Creation Device (QSCD) operated by a Qualified Trust Service Provider (QTSP). The Wallet Unit is used for Signer identification and signature authorization, using an SD-JWT VC credential that carries a qesApproval binding as defined in CSC-DMB [3] Section 7.2.1.2. CSC-DMB [3] Section 7.3 refers to this as the "Provider-centric model".

NOTE_CSRS_00 In this specification, "remote" refers to the interaction pattern between the Signer and the other parties, in which signing-related requests and responses are exchanged over the network via OpenID4VP. In the Wallet-Centric Model, the Wallet Unit holds the signing key and generates the signature locally — "remote" does not imply a remote signing service in this model. In the QTSP-Centric Model, the signing key is held in a QSCD operated by the QTSP, and the signature is generated remotely upon authorization from the Signer.

It covers:

  • Signing request and response flows using the CSC qesRequest transaction data type [3] for the Wallet-Centric Model.

  • Signature authorization flows using the CSC qesApprovalRequest transaction data type [3] for the QTSP-Centric Model.

  • Support for the CSC X.509 credential format (Wallet-Centric Model) and the SD-JWT VC credential format with qesApproval binding (QTSP-Centric Model).

  • Signer consent requirements specific to qualified electronic signatures.

  • Inline and out-of-band signed document delivery (Wallet-Centric Model).

2. Scope

This specification defines the conformance profile for remote qualified electronic signature creation. It applies in addition to CS-02 [5].

Requirements are defined for:

  • Wallet Units that respond to signing requests (Wallet-Centric Model) and signature authorization requests (QTSP-Centric Model).

  • Relying Parties that initiate signing requests in the Wallet-Centric Model.

Mandatory features beyond CS-02:

Wallet-Centric Model

  • CSC qesRequest transaction data type [3].

  • CSC X.509 credential format (https://cloudsignatureconsortium.org/2025/x509).

  • AdES signature generation in the Wallet Unit.

  • Inline and out-of-band (responseURI) response delivery.

QTSP-Centric Model

  • CSC qesApprovalRequest transaction data type [3] Section 7.1.

  • SD-JWT VC credential format carrying the qesApproval binding as defined in [3] Section 7.2.1.2.

Common

  • Signer consent rendering requirements.

Out of scope:

  • All requirements already covered by CS-02 [5].

  • The CSC API endpoints used between a Relying Party and a QTSP in the QTSP-Centric Model (for example signatures/signDoc and signatures/signHash), and any QTSP-proprietary API used for the same purpose.

  • The identification and registration procedures by which a Signer obtains a signing credential from a QTSP.

  • The credential used for signature request confirmation in the Wallet-Centric Model.

NOTE_CSRS_01 The Relying Party ↔ QTSP interface in the QTSP-Centric Model is intentionally not normatively specified by this document. Implementations MAY use the CSC Architectures and Protocols for Remote Signature Applications v2 API, a QTSP-proprietary API, or any other agreed mechanism. This document only specifies the OpenID4VP leg between the QTSP and the Wallet Unit.

3. Normative Language

As defined in CS-02 [5] Section 3.

The following terms are used in this specification:

  • Long-term certificate: a signing certificate pre-issued and reused for multiple signatures, whose lifetime is independent of any single signing transaction.

  • Short-lived credential: a credential whose signing certificate is created during a signing transaction, bound to identity evidence presented in the same transaction, and used for a single qualified electronic signature or seal. Short-lived credentials are referred to in CSC API as "ad-hoc" or "on-the-go" credential signing.

4. Roles and Components

This specification uses the roles defined in CS-02 [5] Section 4, with substitutions and additions per model.

4.1 Wallet-Centric Model
  • Holder is referred to as Signer in this specification.

  • Verifier is referred to as Relying Party (RP) in this specification.

  • The Wallet Unit acts as both credential holder and Signature Creation Application, producing AdES signatures locally.

4.2 QTSP-Centric Model
  • Holder is referred to as Signer in this specification.

  • Relying Party (RP) is the organisation or natural person requesting a document to be signed.

  • Qualified Trust Service Provider (QTSP) operates a Remote Signing Service Provider (RSSP) as defined in CSC-DMB [3] Section 4. The RSSP manages signing keys in a QSCD on the Signer’s behalf.

  • Signature Creation Application is the application that accepts the Signer’s original document and produces a signature or signed document in accordance with AdES (per CSC-DMB [3] Section 4 and ETSI EN 319 102-1 [7]). The Signature Creation Application MAY be operated by the Relying Party or by the QTSP.

  • In the OpenID4VP exchange specified by this section, the QTSP plays the Verifier role toward the Wallet Unit for the signature authorization step. The Relying Party is not a direct party to this OpenID4VP exchange.

  • The Wallet Unit is used by the Signer for identification (via PID or equivalent EAA presentation) and for authorization and activation of the signing operation. Signing keys are not held by the Wallet Unit in this model.

NOTE_CSRS_02 Terminology note: CSC-DMB [3] Section 7.3 refers to the QTSP-Centric Model as the "Provider-centric model". The two terms are equivalent.

4.3 Certificate Lifecycle Profiles

This specification distinguishes two certificate lifecycles, applicable independently of the signing model (Wallet-Centric §4.1, QTSP-Centric §4.2):

  • long_term: the signing certificate exists prior to the signing transaction. This is the default lifecycle if not otherwise signalled.

  • short_lived: the signing certificate is created during the signing transaction, bound to identity evidence presented in the same transaction, and used for a single signature.

The applicable lifecycle MUST be signalled by the certificateLifecycle member in the qesRequest (Wallet-Centric) or qesApprovalRequest (QTSP-Centric). Permissible values for a given QES profile are governed by the rulebook bound to signatureQualifier. If the member is absent, long_term MUST be assumed.

5. Protocol Overview

This specification applies the protocol baseline defined in CS-02 [5] Section 5 without modification, with the signing-specific additions in this section.

5.1 Wallet-Centric Model

Additions on top of CS-02:

  • The Authorisation Request MUST include transaction_data containing a base64url-encoded qesRequest object as defined in CSC-DMB [3] Section 6.2.1.

  • signatureQualifier MUST always be present in the qesRequest.

  • Document integrity MUST be verified by the Wallet Unit when both href and checksum are present.

High-level steps:

  1. Relying Party creates a Signing Request containing a qesRequest transaction data object.

  2. Wallet Unit is invoked via openid4vp:// (same-device) or QR code (cross-device).

  3. Wallet Unit validates the Signing Request.

  4. Signer reviews documents and consents.

  5. Wallet Unit generates AdES signature(s).

  6. Wallet Unit submits the Presentation Response containing the signed document(s).

  7. Relying Party validates and returns the outcome.

The above flow is illustrated below:

Diagram


5.2 QTSP-Centric Model

Additions on top of CS-02:

  • The QTSP acts as the OpenID4VP Verifier toward the Wallet Unit.

  • The Authorisation Request MUST include transaction_data containing a base64url-encoded qesApprovalRequest object as defined in CSC-DMB [3] Section 7.1.

  • signatureQualifier MUST always be present in the qesApprovalRequest.

  • The Wallet Unit MUST return a qesApproval value in the Key Binding JWT of the SD-JWT VC presentation, computed as defined in CSC-DMB [3] Section 7.2.1.2.

High-level steps:

  1. The Relying Party (directly, or via its Signature Creation Application) requests the QTSP to sign one or more documents.

  2. The QTSP (directly, or via its Signature Creation Application) prepares a Signature Authorization Request containing a qesApprovalRequest transaction data object.

  3. The Signature Creation Application invokes the Wallet Unit via openid4vp:// (same-device) or QR code (cross-device).

  4. The Wallet Unit validates the Request Object, including that the OpenID4VP Verifier is the expected QTSP.

  5. The Signer identifies themselves (PID, or EAA from prior enrolment) and authorizes the signature. The Signer identification and the QES authorization MAY be conveyed in a single OpenID4VP request, or in two separate OpenID4VP requests.

  6. The Wallet Unit returns the SD-JWT VC presentation, whose Key Binding JWT carries the qesApproval value bound to the qesApprovalRequest.

  7. The QTSP validates the presentation and the qesApproval binding, activates the signature creation operation, and generates the signature using its RSSP.

  8. The signature value is returned to the Relying Party (and integrated into the document by the Signature Creation Application), which returns the outcome to the Signer. This step uses the Relying Party ↔ QTSP interface and is out of scope of this specification.

The flow is illustrated below:

Diagram


NOTE_CSRS_03 CSC-DMB [3] Section 7.1 Note 16 explicitly warns that the qesApprovalRequest transaction data type may change in future versions. Implementations of this specification SHOULD be prepared to track those changes.

NOTE_CSRS_04 ISO/IEC 18013-5 and ISO/IEC 18013-7 credential formats will be considered in subsequent versions based on use case requirements.

6. High-level Flows

6.1 Wallet-Centric Signing Flow (qesRequest)

The subsections below apply to both the same-device and cross-device variants of the Wallet-Centric Signing Flow. The cross-device variant follows CS-02 [5] Section 6.2 (rather than Section 6.1) at each corresponding step. Where the two variants differ, the difference is noted inline.

6.1.1 Signature Request Creation

The Relying Party prepares a signed Presentation Request Object as defined in CS-02 [5] Section 6.1.1, with the following additional requirements:

  • The DCQL query MUST contain a credential entry with format: "https://cloudsignatureconsortium.org/2025/x509" and optionally certificatePolicies or certificateFingerprints in the meta field. When certificateLifecycle = "short_lived", this credential entry MAY be omitted.

  • transaction_data MUST contain a base64url-encoded qesRequest specifying type, signatureQualifier, and at least one signatureRequests entry.

    • When certificateLifecycle = "long_term" (or absent), credential_ids MUST be present.

    • When certificateLifecycle = "short_lived", credential_ids MAY be omitted, consistent with CSC API v2 making credentialID conditional when signatureQualifier is present; signatureQualifier carries the binding semantics.

  • When certificateLifecycle = "short_lived", the DCQL query MUST additionally include a credential query for identity evidence (typically a PID), and the qesRequest MUST carry a certificateIssuance member identifying the issuing CA endpoint as defined in §8.5. The PID query and the signature authorization MUST share the same nonce, audience, client_id, and (where applicable) WU binding key.

6.1.2 Wallet Unit Invocation

As defined in CS-02 [5] Section 6.1.2 for the same-device variant (deeplink), or CS-02 [5] Section 6.2.2 for the cross-device variant (QR code).

6.1.3 Wallet Unit Validation

As defined in CS-02 [5] Section 6.1.3, with the following additional checks:

  • transaction_data MUST decode to a valid qesRequest.

  • signatureQualifier MUST be present and recognised.

  • If certificateLifecycle = "long_term" (or absent), the available credential MUST be capable of producing a QES with the specified signatureQualifier; if not, the Wallet Unit MUST abort.

  • If certificateLifecycle = "short_lived", the Wallet Unit MUST verify that the Authorization Request includes the identity evidence DCQL query and that it shares the same nonce, audience, client_id, and WU binding key as the signature authorization. If the evidence is split across multiple Authorization Requests, the Wallet Unit MUST abort.

  • If both href and checksum are present in a signatureRequest, the Wallet Unit MUST verify document integrity; if verification fails, the Wallet Unit MUST abort.

In addition to the consent requirements of CS-02 [5] Section 6.1.4, the Wallet Unit MUST display:

  • A clear indication that the transaction creates a qualified electronic signature or seal.

  • The trust framework identified by signatureQualifier.

  • The label of each document, or a clear indication that no label is provided.

  • Whether document integrity has been automatically verified.

  • The URI to which the signed response will be sent, if responseURI is specified.

  • When certificateLifecycle = "short_lived":

    • A clear statement that a short-lived signing certificate will be created for this signature using the holder’s identity attributes presented in the same transaction.

    • The identity of the issuing CA (Wallet-Centric).

    • The validity scope of the short-lived certificate (number of signatures permitted, expected lifetime).

The Wallet Unit SHOULD provide a preview or rendering of the to-be-signed document(s) where technically feasible, to allow the Signer to verify the content before approving.

6.1.4a Certificate Provisioning (Short-Lived Credentials)

Applies only when certificateLifecycle = "short_lived". The Wallet Unit MUST obtain a short-lived credential prior to Signature Generation (§6.1.5) using one of the following provisioning patterns:

  • Live issuance. The Wallet Unit MUST generate a fresh key pair in its Wallet Secure Cryptographic Device, build a Certificate Signing Request (CSR) for that key, and submit the CSR together with the identity evidence presented in the Authorization Request to the certificate issuance endpoint identified by certificateIssuance in the qesRequest, as defined in §8.5. The issuing CA returns a short-lived certificate bound to the fresh key and the presented identity.

  • Pre-batched pool. The Wallet Unit MAY draw an unused short-lived certificate from a pool previously provisioned by the issuing CA, where each certificate in the pool corresponds to a fresh key pair already bound by the WSCD. If using this pattern, the Wallet Unit MUST verify that the selected certificate has not previously been used for any signature.

The Wallet Unit MUST refuse provisioning if the issuing CA’s policy or the certificate’s signatureQualifier does not match the qesRequest. Once a short-lived certificate has been used in §6.1.5 it MUST NOT be reused.

6.1.5 Signature Generation

Upon consent, the Wallet Unit MUST generate AdES signature(s) per the signature_format and conformance_level specified in each signatureRequest.

6.1.6 Presentation Submission

As defined in CS-02 [5] Section 6.1.6 for the same-device variant (redirect with vp_token), or CS-02 [5] Section 6.2.6 for the cross-device variant (HTTP POST to response_uri), with the following additions:

The vp_token MUST include a qes object containing either:

  • documentWithSignature: base64-encoded signed document(s), for enveloped formats (e.g. PAdES).

  • signatureObject: base64-encoded detached signature(s).

If responseURI is specified in the qesRequest, the Wallet Unit MUST HTTP POST the qesResponse to that URI as defined in Section 8.3.1, and MUST return an empty credential response in the vp_token.

6.1.7 Result Handling

As defined in CS-02 [5] Section 6.1.7.

6.2 QTSP-Centric Signing Flow (qesApproval)

The subsections below apply to both the same-device and cross-device variants of the QTSP-Centric Signing Flow. The cross-device variant follows CS-02 [5] Section 6.2 (rather than Section 6.1) at each corresponding step. Where the two variants differ, the difference is noted inline.

6.2.1 Signature Authorization Request Creation

The QTSP (directly, or via its Signature Creation Application) prepares a signed Presentation Request Object as defined in CS-02 [5] Section 6.1.1, with the following additional requirements:

  • The client_id of the Request Object MUST identify the QTSP and MUST be resolvable to the QTSP’s published metadata in the applicable trust framework.

  • The DCQL query MUST request a credential in SD-JWT VC format whose issuance supports the org.cloudsignatureconsortium.dm.1.qesApproval claim as defined in CSC-DMB [3] Section 7.2.1.2.

  • transaction_data MUST contain a base64url-encoded qesApprovalRequest as defined in CSC-DMB [3] Section 7.1, specifying at minimum type, signatureQualifier, documentInfos, and hashAlgorithmOID.

    • When certificateLifecycle = "long_term" (or absent), credential_ids MUST be present.

    • When certificateLifecycle = "short_lived", credential_ids MAY be omitted, consistent with CSC API v2 making credentialID conditional when signatureQualifier is present; signatureQualifier carries the binding semantics.

Signer identification (for example via PID presentation) and QES authorization MAY be conveyed:

  • When certificateLifecycle = "long_term": in a single OpenID4VP authorization request (multiple DCQL credential queries plus the qesApprovalRequest) or in two separate OpenID4VP authorization requests, at the QTSP’s discretion. Wallet Units MUST support both patterns.

  • When certificateLifecycle = "short_lived": in a single OpenID4VP authorization request only. The identity evidence DCQL query and the qesApproval-capable credential query MUST share the same nonce, audience, client_id, and WU binding key. Splitting across two authorization requests is prohibited in this mode.

6.2.2 Wallet Unit Invocation

As defined in CS-02 [5] Section 6.1.2 for the same-device variant (deeplink), or CS-02 [5] Section 6.2.2 for the cross-device variant (QR code). The Signature Creation Application is the invoker; the OpenID4VP Verifier that signed the Request Object is the QTSP.

6.2.3 Wallet Unit Validation

As defined in CS-02 [5] Section 6.1.3, with the following additional checks:

  • The client_id of the Request Object MUST resolve to a QTSP listed in the applicable trust framework, and the Request Object signature MUST verify against that QTSP’s published metadata.

  • transaction_data MUST decode to a valid qesApprovalRequest.

  • signatureQualifier MUST be present and recognised.

  • The selected SD-JWT VC MUST support the org.cloudsignatureconsortium.dm.1.qesApproval claim (typically, by being issued with a type whose rulebook declares the claim); if not, the Wallet Unit MUST abort.

  • If certificateLifecycle = "short_lived", the Wallet Unit MUST verify that the identity evidence query and the qesApproval-capable credential query are conveyed in the same Authorization Request and share the same nonce, audience, client_id, and WU binding key. If they are split across multiple Authorization Requests, the Wallet Unit MUST abort.

  • If any documentInfos entry contains both a href and a checksum, the Wallet Unit MUST verify document integrity; if verification fails, the Wallet Unit MUST abort.

In addition to the consent requirements of CS-02 [5] Section 6.1.4, the Wallet Unit MUST display:

  • A clear indication that the transaction authorizes a qualified electronic signature or seal to be created by the QTSP’s Remote Signing Service Provider.

  • The identity of the QTSP operating the RSSP that will perform the signature creation.

  • The trust framework identified by signatureQualifier.

  • The label of each document in documentInfos, or a clear indication that no label is provided.

  • The number of signatures authorized, if numSignatures is present in the qesApprovalRequest.

  • Whether document integrity has been automatically verified.

  • When certificateLifecycle = "short_lived":

    • A clear statement that a short-lived signing certificate will be created by the QTSP for this signature using the holder’s identity attributes presented in the same transaction.

    • The validity scope of the short-lived certificate (typically single signature, short lifetime).

The Wallet Unit SHOULD provide a preview or rendering of the to-be-signed document(s) where technically feasible.

6.2.5 qesApproval Generation

Upon consent, the Wallet Unit MUST compute the qesApproval value as defined in CSC-DMB [3] Section 7.2.1.2:

  • Hash input: the base64url-encoded UTF-8 qesApprovalRequest as it appears in the Authorization Request.

  • Hash algorithm: as identified by hashAlgorithmOID in the qesApprovalRequest.

  • Representation: a String containing the base64-encoded digest.

The qesApproval value MUST be carried in the Key Binding JWT of the SD-JWT VC presentation, as a top-level claim with key org.cloudsignatureconsortium.dm.1.qesApproval.

6.2.6 Presentation Submission

As defined in CS-02 [5] Section 6.1.6 for the same-device variant (redirect with vp_token), or CS-02 [5] Section 6.2.6 for the cross-device variant (HTTP POST to response_uri). The vp_token MUST contain the SD-JWT VC presentation with its Key Binding JWT carrying the org.cloudsignatureconsortium.dm.1.qesApproval claim. No qes object (as defined in Section 6.1.6 for the Wallet-Centric Model) is produced in this model; the signature itself is generated remotely by the RSSP after the QTSP validates the qesApproval binding.

6.2.7 Result Handling

As defined in CS-02 [5] Section 6.1.7. After the QTSP validates the presentation and the qesApproval binding, the signature is created by the RSSP and returned to the Relying Party via the Relying Party ↔ QTSP interface, which is out of scope of this specification (see NOTE_CSRS_01).

7. Normative Requirements

7.1 Wallet Unit Requirements

In addition to all requirements in CS-02 [5] Section 7.1, Wallet Units MUST support at least one of the following models:

  • the Wallet-Centric Model, as defined in Section 7.1.1, or

  • the QTSP-Centric Model, as defined in Section 7.1.2.

Wallet Units MAY support both models. A Wallet Unit that supports a given model MUST comply with all requirements specified for that model.

Wallet Units MUST support certificateLifecycle = "long_term" for any signing model they conform to. Support for certificateLifecycle = "short_lived" is OPTIONAL; Wallet Units that claim short-lived support MUST additionally comply with Section 7.1.3.

7.1.1 Wallet-Centric Model

Wallet Units MUST:

  1. Support the CSC X.509 credential format (https://cloudsignatureconsortium.org/2025/x509).

  2. Process qesRequest transaction data as defined in CSC-DMB [3] Section 6.2.1.

  3. Verify document integrity against checksum when both href and checksum are present.

  4. Support data: URIs with base64 encoding in href.

  5. Display the signing-specific consent information defined in Section 6.1.4.

  6. Generate AdES signatures per the specified signature_format and conformance_level.

  7. Support inline response delivery via documentWithSignature or signatureObject.

  8. Support out-of-band response delivery via responseURI.

Wallet Units MUST NOT:

  • Proceed if document integrity verification fails.

  • Proceed if the credential cannot satisfy the specified signatureQualifier.

7.1.2 QTSP-Centric Model

Wallet Units MUST:

  1. Support the SD-JWT VC credential format for credentials that carry the org.cloudsignatureconsortium.dm.1.qesApproval claim as defined in CSC-DMB [3] Section 7.2.1.2.

  2. Process qesApprovalRequest transaction data as defined in CSC-DMB [3] Section 7.1.

  3. Verify that the OpenID4VP client_id resolves to a QTSP in the applicable trust framework, and verify the Request Object signature against that QTSP’s published metadata.

  4. Verify document integrity against checksum when both href and checksum are present in a documentInfos entry.

  5. Compute the qesApproval value as defined in CSC-DMB [3] Section 7.2.1.2 and carry it in the Key Binding JWT as a top-level claim org.cloudsignatureconsortium.dm.1.qesApproval.

  6. Display the signing-specific consent information defined in Section 6.2.4.

  7. Interoperate with both the single-request pattern (PID and qesApprovalRequest bundled in one OpenID4VP authorization request) and the separate-request pattern (PID presentation followed by a qesApprovalRequest authorization request).

Wallet Units MUST NOT:

  • Proceed if the selected credential does not support the org.cloudsignatureconsortium.dm.1.qesApproval claim.

  • Proceed if document integrity verification fails.

  • Return a qesApproval claim for credentials not issued with the intention of supporting QES authorization (see CSC-DMB [3] Section 7.2.1.2, Note 22).

7.1.3 Short-Lived Credential Support (optional)

Wallet Units MAY support certificateLifecycle = "short_lived". Where supported, the Wallet Unit MUST:

  1. Honour the conditional rules for short_lived mode in §6.1.1, §6.1.3, §6.1.4 (Wallet-Centric) and/or §6.2.1, §6.2.3, §6.2.4 (QTSP-Centric), depending on which signing model is supported.

  2. Implement the Certificate Provisioning step in §6.1.4a when supporting Wallet-Centric short-lived signing.

  3. Display the additional consent items defined in §6.1.4 / §6.2.4 for short_lived.

  4. Bind the short-lived credential’s identity attributes to the identity evidence presented in the same OpenID4VP Authorization Request, sharing the same nonce, audience, client_id, and WU binding key.

  5. Refuse to reuse a short-lived credential once it has been used for a signature.

  6. Refuse a qesRequest or qesApprovalRequest whose certificateLifecycle value is not declared as supported for the matching signatureQualifier.

7.2 Relying Party Requirements

These requirements apply to Relying Parties operating in the Wallet-Centric Model. In the QTSP-Centric Model, the Relying Party’s obligations are limited to the Relying Party ↔ QTSP interface, which is out of scope of this specification (see NOTE_CSRS_01).

In addition to all requirements in CS-02 [5] Section 7.2, Relying Parties MUST:

  1. Include transaction_data with a valid qesRequest in every signing request.

  2. Include signatureQualifier in every qesRequest.

  3. Use the CSC X.509 credential format in the DCQL query.

  4. Provide a valid access method (public or OTP) for all href document references.

  5. If using responseURI: implement an HTTPS endpoint accepting HTTP POST as defined in Section 8.3.1.

Relying Parties MUST NOT:

  • Omit signatureQualifier from qesRequest objects.

7.3 Remote Signing Service Provider Considerations

This section is informative.

In the QTSP-Centric Model, the QTSP operating the Remote Signing Service Provider plays the OpenID4VP Verifier role toward the Wallet Unit for the signature authorization step. Implementations are expected to:

  • Sign the Authorization Request Object with a key bound to the QTSP’s published metadata, such that the Wallet Unit’s client_id validation succeeds against the applicable trust framework.

  • Include a well-formed qesApprovalRequest in transaction_data as defined in CSC-DMB [3] Section 7.1.

  • Upon receipt of the vp_token, validate the qesApproval value in the Key Binding JWT against the base64url-encoded qesApprovalRequest as dispatched, using the algorithm identified by hashAlgorithmOID.

  • Use the validated qesApproval binding as the authorization basis for the subsequent signature creation call on the RSSP.

Detailed conformance of the RSSP itself (including signature creation, activation, and the Relying Party ↔ QTSP interface) is out of scope of this specification.

8. Interface Definitions

Interfaces in this specification follow the structure defined in CS-02 [5] Section 8. The Wallet Invocation Interface defined in CS-02 [5] Section 8.1 applies without modification.

8.1 Signing Request Object Interface (Wallet-Centric)

The Presentation Request Object MUST satisfy CS-02 [5] Section 8.2, with the following additions.

The DCQL query MUST include a credential entry of the following form:

{
  "id": "signing-cert-01",
  "format": "https://cloudsignatureconsortium.org/2025/x509",
  "meta": {
    "certificatePolicies": ["0.4.0.2042.1"]
  }
}

The transaction_data array MUST contain the following object, base64url-encoded:

{
  "type": "https://cloudsignatureconsortium.org/2025/qes",
  "credential_ids": ["signing-cert-01"],
  "signatureQualifier": "eu_eidas_qes",
  "signatureRequests": [
    {
      "label": "Example Contract",
      "access": { "type": "public" },
      "href": "https://rp.example.org/documents/contract.pdf",
      "checksum": "sha256-HZQzZmMAIWekfGH0/ZKW1nsdt0xg3H6bZYztgsMTLw0=",
      "signature_format": "P",
      "conformance_level": "AdES-B-B",
      "signed_envelope_property": "Certification"
    }
  ]
}

NOTE_CSRS_05 In this profile, the base64url-decoded transaction_data value is the CSC qesRequest object with type https://cloudsignatureconsortium.org/2025/qes. The credential_ids values refer to the id of the associated DCQL credential query, and not to CSC API credentialID values. For interoperability with Wallet Units that validate transaction_data strictly, Relying Parties should not include additional profile-specific members unless this specification defines them.

8.2 Signing Authorization Request Object Interface (QTSP-Centric)

The Presentation Request Object MUST satisfy CS-02 [5] Section 8.2, with the following additions.

  • The client_id MUST identify the QTSP and MUST be resolvable to the QTSP’s published metadata.

  • The Request Object MUST be signed by a key bound to that metadata.

The DCQL query MUST include a credential entry requesting an SD-JWT VC suitable for QES approval, for example:

{
  "id": "qes-approval-01",
  "format": "dc+sd-jwt",
  "meta": {
    "vct_values": ["https://example-qtsp.eu/credentials/service-user/1.0"]
  }
}

The credential requested MUST be one whose issuance policy supports the org.cloudsignatureconsortium.dm.1.qesApproval claim as defined in CSC-DMB [3] Section 7.2.1.2.

The transaction_data array MUST contain the following object, base64url-encoded:

{
  "type": "https://cloudsignatureconsortium.org/2025/qes-approval",
  "credential_ids": ["qes-approval-01"],
  "numSignatures": 1,
  "signatureQualifier": "eu_eidas_qes",
  "documentInfos": [
    {
      "label": "Example Contract",
      "hash": "sTOgwOm+474gFj0q0x1iSNspKqbcse4IeiqlDg/HWuI=",
      "hashType": "sodr",
      "access": { "type": "public" },
      "href": "https://public.rp-cdn.example/contract-01.pdf",
      "checksum": "sha256-sTOgwOm+474gFj0q0x1iSNspKqbcse4IeiqlDg/HWuI="
    }
  ],
  "hashAlgorithmOID": "2.16.840.1.101.3.4.2.1"
}

NOTE_CSRS_06 CSC-DMB [3] Section 7.1 renders the qesApprovalRequest type URI consistently as https://cloudsignatureconsortium.org/2025/qes-approval (hyphenated) in its heading and its example (§7.1.2), while the same section’s parameter table renders the identifier without the hyphen. This specification normatively uses the hyphenated form, matching the CSC example in [3] §7.1.2. Implementers should accept only the hyphenated form until the CSC specification resolves the inconsistency.

8.3 Presentation Endpoint

The Presentation Endpoint defined in CS-02 [5] Section 8.3 applies.

8.3.1 Wallet-Centric Model

The request body MUST use the following structure for inline signing responses:

{
  "signing-cert-01": {
    "qes": {
      "documentWithSignature": ["<base64-encoded signed document>"]
    }
  }
}

When responseURI (CSC-DMB parameter, not to be confused with OpenID4VP response_uri) is specified in the qesRequest, the Wallet Unit MUST HTTP POST the qesResponse to that URI. The following requirements apply:

  • responseURI MUST use the https scheme.

  • The Wallet Unit MUST verify that the responseURI host matches the Relying Party’s client_id or a domain listed in the Relying Party’s verified metadata. This prevents the signed output from being redirected to an endpoint not controlled by the authenticated Relying Party, even if the Request Object itself is properly signed.

  • If the HTTP POST to responseURI fails (network error or non-2xx response), the Wallet Unit MUST abort the signing flow and report an error to the Signer.

POST <responseURI path> HTTP/1.1
Host: <responseURI host>
Content-Type: application/json

{ "documentWithSignature": ["<base64-encoded signed document>"] }

The responseURI endpoint MUST return HTTP 200 OK on successful receipt.

NOTE_CSRS_07 Replay protection for the signing flow is provided by the OpenID4VP nonce binding mandated by CS-02, combined with the transaction_data hash bound into the VP token. Implementations SHOULD additionally consider including an application-specific nonce in the qesRequest as recommended by CSC Data Model Bindings Note 25, to provide defence-in-depth at the CSC layer.

The vp_token returned to the Presentation Endpoint when responseURI is used MUST be empty:

{ "signing-cert-01": {} }
8.3.2 QTSP-Centric Model

The request body MUST carry the SD-JWT VC presentation including the Key Binding JWT with the org.cloudsignatureconsortium.dm.1.qesApproval claim:

{
  "qes-approval-01": "<SD-JWT VC presentation including KB-JWT>"
}

The Key Binding JWT payload MUST include, at minimum:

{
  "iat": 1711449600,
  "aud": "<QTSP client_id>",
  "nonce": "<OpenID4VP nonce>",
  "org.cloudsignatureconsortium.dm.1.qesApproval": "<base64-encoded hash of base64url-encoded qesApprovalRequest>"
}

No qes object as defined for the Wallet-Centric Model is returned in this model. The signature value is produced remotely by the RSSP and delivered to the Relying Party via an interface that is out of scope of this specification (see NOTE_CSRS_01).

8.4 Verifier Metadata Interface

The Verifier Metadata Interface defined in CS-02 [5] Section 8.4 applies, with the following additions:

  • A Relying Party supporting the Wallet-Centric Model MUST declare support for the CSC X.509 credential format in vp_formats_supported.

  • A QTSP acting as OpenID4VP Verifier in the QTSP-Centric Model MUST declare support for the SD-JWT VC credential format in vp_formats_supported, and MUST publish metadata sufficient for the Wallet Unit to resolve its client_id and validate the Authorization Request Object signature.

  • A Relying Party or QTSP that supports certificateLifecycle = "short_lived" MUST declare the supported lifecycle values per signatureQualifier in its published metadata.

8.5 Certificate Issuance Endpoint (Wallet-Centric, Short-Lived)

Applies only to the Wallet-Centric Model when certificateLifecycle = "short_lived". The qesRequest MUST carry a certificateIssuance member identifying the issuing CA endpoint to which the Wallet Unit submits the CSR and identity evidence:

"certificateIssuance": {
  "endpoint": "https://ca.example/qes/short-lived",
  "csrFormat": "PKCS10",
  "identityBinding": "PID"
}

The endpoint MUST accept an HTTP POST with a JSON body containing:

  • csr: base64url-encoded CSR in the format identified by csrFormat.

  • identityEvidence: the verifiable presentation conveying the identity attributes used for binding (typically the PID presentation extracted from the same Authorization Request).

  • signatureQualifier: as conveyed in the qesRequest.

The endpoint response MUST be a JSON body containing:

  • certificate: base64-encoded short-lived certificate, or

  • error: a structured error per RFC 9457 Problem Details.

Implementations MAY substitute this endpoint with a "claim-from-pool" call when pre-batched provisioning is in use; the wire shape MUST remain JSON over HTTP POST and the request/response semantics MUST preserve the binding to the identity evidence presented in the Authorization Request.

9. Conformance

An implementation conforms to this specification as a Wallet Unit if it:

  1. Conforms to CS-02 [5] Section 9 as a Wallet Provider.

  2. Implements all Wallet Unit requirements in at least one of the following sections: 2.1. Section 7.1.1 of this specification (Wallet-Centric Model, long-term certificate baseline) to claim Wallet-Centric Model support. 2.2. Section 7.1.2 of this specification (QTSP-Centric Model, long-term certificate baseline) to claim QTSP-Centric Model support).

  3. Supports both the same-device and cross-device variants of the signing flow corresponding to each supported model: 3.1. Section 6.1 for the Wallet-Centric Model. 3.2. Section 6.2 for the QTSP-Centric Model.

A Wallet Unit that additionally claims short-lived credential support MUST also:

  1. Implement all Wallet Unit requirements in Section 7.1.3 of this specification.

  2. Support short-lived credential signing in at least one of the signing models it conforms to.

Conformance is declared as a set of profile identifiers covering the (signing model, certificate lifecycle) pairs supported:

  • WC-LT: Wallet-Centric Model, long_term. Mandatory for any implementation claiming Wallet-Centric conformance.

  • WC-SL: Wallet-Centric Model, short_lived. Optional. If claimed, §6.1.4a and §8.5 are normative.

  • QC-LT: QTSP-Centric Model, long_term. Mandatory for any implementation claiming QTSP-Centric conformance.

  • QC-SL: QTSP-Centric Model, short_lived. Optional.

An implementation MAY claim any combination of these profiles. Wallet Units MUST publish their declared profile set in their published capabilities.

An implementation conforms to this specification as a Relying Party if it:

  1. Conforms to CS-02 [5] Section 9 as a Verifier (referred to as "Issuer" in CS-02 Section 9).

  2. Implements all Relying Party requirements in Section 7.2 of this specification.

  3. Supports both the same-device and cross-device variants of the Wallet-Centric Signing Flow.

Conformance of a Qualified Trust Service Provider operating a Remote Signing Service Provider in the QTSP-Centric Model is not defined by this specification; see Section 7.3 and NOTE_CSRS_01.

References

[1] OpenID Foundation (2025). OpenID for Verifiable Presentations 1.0. Available at: https://openid.net/specs/openid-4-verifiable-presentations-1_0.html (Accessed: 5 March 2026).

[2] OpenID Foundation (2025). OpenID4VC High Assurance Interoperability Profile - Implementer’s Draft 1. Available at: https://openid.net/specs/openid4vc-high-assurance-interoperability-profile-1_0-ID1.html (Accessed: 5 March 2026).

[3] Cloud Signature Consortium (2025). CSC Data Model Bindings, version 1.0.0. Published 14 October 2025. Available at: https://cloudsignatureconsortium.org/wp-content/uploads/2025/10/data-model-bindings.pdf (Accessed: 30 March 2026)

[4] Cloud Signature Consortium (2025). Data Model for Remote Signature Applications, version 1.0.0. Published 16 October 2025. Available at: https://cloudsignatureconsortium.org/wp-content/uploads/2025/10/csc-dm.pdf (Accessed: 30 March 2026)

[5] WE BUILD (2025). Conformance Specification: Credential Presentation, version 1.0. Available at: https://github.com/webuild-consortium/wp4-architecture/blob/main/conformance-specs/cs-02-credential-presentation.md (Accessed: 5 March 2026).

[6] EWC Consortium (2025). RFC-010: Document Signing on a Remote Signing Service Provider using Long-Term Certificates, version 1.1. Available at: https://github.com/EWC-consortium/eudi-wallet-rfcs/blob/main/ewc-rfc010-long-term-certifice-qes-creation.md (Accessed: 5 March 2026).

[7] ETSI EN 319 102-1. Electronic Signatures and Trust Infrastructures (ESI); Procedures for Creation and Validation of AdES Digital Signatures; Part 1: Creation and Validation.

WE BUILD - Conformance Specification CS-04: Individual Wallet Unit Attestation (WUA) Lifecycle

Version 1.0 Date: 15-June-2026

Authors / Contributors: WP4 Architecture

  • Lal Chandran, iGrant.io, Sweden

  • George J Padayatti, iGrant.io, Sweden

  • Filip Hladky, BankID, Czech Republic

  • Nikolaos Triantafyllou, University of Aegean, Greece

  • Erik Eriksson, DIGG, Sweden

  • Miriam Weber, Procivis, Switzerland

  • Eelco Klaver, Credenco, Netherlands

1. Introduction

This document defines the WE BUILD Conformance Specification for the EUDI Wallet WUA lifecycle. It describes how a natural-person EUDI Wallet’s attestation (the WUA, comprising the WIA and KA) is created, maintained, revoked and rotated across its lifecycle, in a consistent and testable way.

It profiles and aligns with:

  • The EU ARF version 2.9.0 [1] and ARF discussion Topic C [2]

  • The EUDI Wallet Technical Specification TS-03 [3]

  • ETSI TS 119 472-3 [4], and OpenID4VCI [5], OpenID4VP [6] and HAIP [7] where relevant

It should be read together with CS-01 [10] and CS-02 [11]; CS-01 profiles the issuance transport and references this specification for the WUA (WIA and KA). The companion specification CS-05 covers the European Business Wallet (BWUA).

The WUA is an infrastructure attestation, not a user-facing credential. The WIA is a client attestation (OAuth attestation-based client authentication) and the KA is a key attestation; both are used by the Wallet Unit during issuance (the WIA for client authentication, the KA in the Credential Request) and are not presented to verifiers as credentials. Consequently, unlike user-facing attestation types such as PID or (Q)EAA, which are registered in the attestation catalogue and follow an attestation rulebook, the WUA has no attestation rulebook; its data model is defined normatively by TS-03 [3].

[!NOTE] Terminology priority: ARF 2.9.0 (Topic C). WUA is the umbrella for WIA (Wallet Instance Attestation) + KA (Key Attestation), for the natural-person EUDI Wallet. Where ETSI / older TS-03 text says "WUA" meaning the key attestation, read it as KA.

2. Scope

This specification defines the conformance expectations for the lifecycle of the WUA for the natural-person EUDI Wallet.

In scope:

  • WUA structure and role (WIA and KA) at the level needed to express lifecycle behaviour, based on TS-03 [3]

  • Lifecycle: activation, validity, revocation and status maintenance, rotation / re-issuance, as defined in TS-03 [3] and ARF Topic C [2] (Proposal 4, revocation maintenance period)

  • Binding: key binding, holder binding and attestation-to-session binding, as defined in TS-03 [3] (see also ARF Topic C [2], Proposal 7)

  • Signing of the WUA by the Wallet Provider (the signature over the WIA and KA), per TS-03 [3]

Out of scope (handled elsewhere):

  • The issuance protocol itself (CS-01 [10])

  • The presentation protocol itself (CS-02 [11])

  • Trust anchoring and discovery, including trusted-list and metadata discovery (handled separately)

  • European Business Wallet / BWUA specifics (CS-05)

3. Normative Language

The keywords MUST, MUST NOT, REQUIRED, SHALL, SHOULD, SHOULD NOT, RECOMMENDED, MAY and OPTIONAL are to be interpreted as described in RFC 2119 [8].

4. Roles and Components

The role names are protocol/functional roles, not products. One product may implement several roles.

  • Wallet Provider: creates and signs the WUA (WIA and KA); operates revocation status lists.

  • Wallet Unit (WU): the natural person’s wallet; presents the WUA.

  • Holder: the natural person controlling the WU.

  • Issuer / Attestation Provider: consumes the WUA when issuing PID / (Q)EAA.

  • Verifier / Relying Party: verifies PIDs or attestations and holder/device-binding evidence during presentation, as profiled in CS-02 [11]. The Verifier does not receive or validate the WIA or KA directly.

  • Authorization Server (AS): issues tokens during issuance.

  • WSCD / WSCA: Wallet Secure Cryptographic Device or Application, a secure device/application protecting the keys.

5. Protocol Overview

The WUA is the evidence that lets a PID Provider or Attestation Provider trust a natural-person EUDI Wallet during issuance, and that underpins holder binding when the resulting credentials are later presented. The Wallet Provider creates and signs two JSON Web Tokens: the Wallet Instance Attestation (WIA), attesting the integrity and authenticity of the wallet instance, and the Key Attestation (KA), attesting the security properties of the keys to which credentials will be bound (TS-03 [3], clauses 2.3.1 and 2.3.2). Together they form the WUA. Detailed behaviour is in sections 6 to 8; this section gives the high-level picture.

[!NOTE] WE BUILD profile decisions. This specification profiles TS-03 [3] for the WE BUILD ecosystem. Three scoping decisions, recorded here and reflected in the requirements in section 7, apply throughout:

  1. No long-lived Key Attestation; the WIA and KA are both short-lived. TS-03 [3] requires the WIA to be short-lived (time-to-live under 24 hours, clause 2.2.1.1) but permits the KA a longer validity period, leaving the KA’s technical validity period to the Wallet Provider (clause 2.4.2). WE BUILD does not use that allowance: as a deliberate simplification within the scope of WE BUILD, it keeps the KA short-lived as well, comparable to the WIA, so there is no long-lived KA (sections 5.2 and 7.1). The KA’s short token-level lifetime is independent of, and far shorter than, the key_storage_status.exp revocation-maintenance commitment (section 7.2).

  2. Multiple keys permitted, but a single proof of possession. TS-03 [3] permits a KA to attest multiple keys (attested_keys, in order to support batch issuance; clause 2.2.2.1). WE BUILD allows multiple attested keys but uses a single jwt proof of possession, signed with the key at index 0 of attested_keys (sections 5.3 and 7.3; TS-03 [3], clause 2.2.2.1).

  3. One WIA per issuance process. A WIA instance is used only once: there is a one-to-one relationship between a WIA instance and an issuance process, so the same WIA is never sent to more than one issuer (TS-03 [3], clause 2.2.1.1). The Wallet Provider maintains and serves the revocation status list (sections 7.2 and 8.2) and never reuses a status list entry across different issuers, which preserves unlinkability between issuers (TS-03 [3], clause 2.5.1).

5.1 Actors and information flows

The Wallet Provider issues and signs the attestations and publishes their revocation status; the Wallet Unit presents them; relying parties verify the signature and check revocation status (TS-03 [3], clause 2.5), as illustrated below:

WUA actors and interactions Figure 1: Actors and the High-level WUA Issuance and Verification

5.2 WUA lifecycle

This lifecycle is described from the Wallet Provider’s perspective, as the authority over the attestation’s state: the Wallet Provider issues each WUA, sets its validity, maintains its revocation status, and revokes it. The Wallet Unit holds and presents the WUA; relying parties (PID or Attestation Providers) read and re-check its status.

The WUA lifecycle is independent of two things the Wallet Provider does not track for it:

  • whether the Wallet Unit is installed or uninstalled (a Wallet Unit lifecycle matter, ARF 2.9.0 §6.5; the Wallet Provider is generally not notified of uninstallation and does not rely on it here); and

  • the presence, expiry or revocation of any PID or attestation the wallet holds (the PID/attestation lifecycle, ARF 2.9.0 §6.6, handled by the PID or Attestation Provider).

The Wallet Provider tracks only the WUAs it has issued, their status-list entries, and the events that trigger revocation.

From the Wallet Provider’s perspective a WUA has three states:

  • Issued: the Wallet Provider has signed and issued the WIA/KA to the Wallet Unit; it remains in use until it expires or is revoked. The WIA is deliberately short-lived, with a time-to-live under 24 hours so a stale one cannot be reused (TS-03 [3], clause 2.2.1.1). TS-03 [3] permits the KA a longer validity period (clause 2.4.2), but the WE BUILD profile keeps the KA short-lived too, to keep things simple within the scope of WE BUILD, so there is no long-lived KA.

  • Expired: the WIA’s time-to-live has elapsed (TS-03 [3], clause 2.2.1.1).

  • Revoked: the Wallet Provider has set the WUA’s status-list entry to revoked (TS-03 [3], clause 2.5.1).

Because WUAs are short-lived and single-use, the Wallet Provider issues fresh WUAs to the Wallet Unit as needed; each fresh WUA is a new instance of this lifecycle, not a reactivation of an expired one. Independently of any single WUA’s time-to-live, the Wallet Provider maintains the revocation status entry until its client_status.exp (kept at least 31 days ahead at presentation, TS-03 [3], clause 2.4.2; ARF Topic C [2], Proposal 4), so that relying parties can re-check it throughout the life of any credential issued against it (TS-03 [3], clause 2.4.3).

A WUA exists only while the Wallet Unit is Operational or Valid in the Wallet Unit lifecycle (ARF 2.9.0 [1], section 4.6.4). Revocation of the WIA client_status.status entry signals revocation of the Wallet Instance, which moves the Wallet Unit to Revoked (TS-03 [3], clause 2.5.1). Revocation of the KA key_storage_status.status entry signals that the WSCD or keystore referenced by the KA is no longer trusted (TS-03 [3], clause 2.5.2). If the breach affects the Wallet Instance as a whole, the Wallet Provider revokes the Wallet Instance and, where relevant, the corresponding KAs. The Operational/Valid distinction (whether a PID is present) and the Installed/Uninstalled states are Wallet Unit lifecycle matters outside this specification.

WUA attestation lifecycle

Figure 2: WUA (WIA/KA) attestation lifecycle, from the Wallet Provider’s perspective. Re-issuance produces a new WUA, i.e. a new run of this lifecycle. The Wallet Unit lifecycle (Installed, Operational, Valid, Revoked, Uninstalled) is defined separately in ARF 2.9.0 [1], section 4.6.4.

5.3 Signing and key binding

The Wallet Provider signs each WIA and KA as a JWT, using ES256, ES384 or ES512 (TS-03 [3], clause 2.6; see the requirement in section 7.1). A credential issuer verifies this signature against the Wallet Provider’s key before trusting the attestation.

Key binding links an issued credential to a key that the Wallet Unit controls in the WSCD. It is required whenever a credential must be cryptographically bound to such a key, for example a PID, or a (Q)EAA such as a Strong Customer Authentication (SCA) attestation.

Within a single issuance session, binding happens in two stages, shown in Figure 3 below.

Diagram

Figure 3: Key binding during issuance, in two stages (transport profiled in CS-01 [10]).

Stage A - attestation-to-session binding: the Access Token is bound to the WIA.

  1. Token request (Wallet Unit -> Authorization Server). The Wallet Unit requests an Access Token, authenticating with the WIA and using the WIA cnf key as its Demonstration of Proof-of-Possession (DPoP) key. By verifying the WIA (its Wallet Provider signature, that it has not expired, and its revocation status), the Authorization Server issues a token only to a genuine, non-revoked Wallet Unit, that is one in the Operational or Valid state of the Wallet Unit lifecycle (ARF 2.9.0 [1], section 4.6.4; TS-03 [3], clause 2.2.1.1).

  2. Access Token returned (Authorization Server -> Wallet Unit). The Access Token carries cnf.jkt.

  3. Session-binding check (Wallet Unit). The Wallet Unit verifies that the Access Token’s cnf.jkt matches the JWK thumbprint of the WIA cnf key, and aborts the session on any mismatch (TS-03 [3], clause 2.2.1.1; ARF Topic C [2], Proposal 7).

Stage B - key binding: the issued credential is bound to a key attested by the KA.

  1. Credential Request (Wallet Unit -> Credential Issuer). The Wallet Unit sends the KA as a jwt proof, signed with the key at index 0 of attested_keys, proving possession (TS-03 [3], clause 2.2.2.1). Although TS-03 permits a KA to attest multiple keys for batch issuance (clause 2.2.2.1), the WE BUILD profile uses a single jwt proof of possession, proving the key at index 0. See the example below.

  2. Credential issued (Credential Issuer -> Wallet Unit). The Credential Issuer binds the issued credential to the attested key.

The issuance transport that carries these messages is profiled in CS-01 [10]; CS-04 owns only the binding obligations (section 7.3).

Example Credential Request for step 4 (from TS-03 [3], illustrative):

{
  "credential_configuration_id": "org.iso.18013.5.1.mDL",
  "proofs": {
    "jwt": [
      "eyJraWQiOiJkaWQ6ZXhhbXBsZSIsImFsZyI6IkVTMjU2IiwidHlwIjoib3BlbmlkNHZjaS1wcm9vZitqd3QifQ..."
    ]
  }
}

Decoded JOSE header of the jwt proof sent in step 4 (the key_attestation parameter carries the KA; TS-03 [3], clause 2.2.2):

{
  "typ": "openid4vci-proof+jwt",
  "alg": "ES256",
  "key_attestation": "<the KA JWT>"
}

Decoded payload of the jwt proof sent in step 4 (the nonce, aud and iat provide the proof of possession the Credential Issuer verifies in step 5; TS-03 [3], clause 2.2.2):

{
  "aud": "https://credential-issuer.example.com",
  "iat": 1701960444,
  "nonce": "LarRGSbmUPYtRYO6BQ4yn8"
}
5.4 Wallet Provider responsibilities

This overview is non-normative; the binding requirements are in sections 7.1 and 7.2. Per TS-03 [3], the Wallet Provider:

  • Creates and signs each WIA and KA (ES256, ES384 or ES512) with the required claims (TS-03 [3], clauses 2.6, 2.3.1, 2.3.2);

  • Ensures the Wallet Unit has WIAs available as needed for issuance, and that a given WIA is used in a single issuance process and is never shared across issuers (TS-03 [3], clause 2.2.1.1);

  • Keeps each WIA short-lived (under 24 hours) and single-use (at most one credential issuance process) for freshness and unlinkability (TS-03 [3], clauses 2.2.1.1, 2.2.2.1); TS-03 permits a longer KA validity (clause 2.4.2), but the WE BUILD profile keeps the KA equally short-lived, with no long-lived KA;

  • Maintains revocation status via Token Status List [9], kept at least 31 days ahead at presentation and live until each entry’s exp (TS-03 [3], clauses 2.5, 2.4.2);

  • Revokes all client_status entries for a Wallet Unit on revocation, triggered by a detected security vulnerability or a user request such as loss or theft (TS-03 [3], clauses 2.4.2, 2.5.1).

6. High-level Flows

This section describes the main WUA flows as step-by-step sequences, from the Wallet Provider’s perspective, consistent with the lifecycle in section 5.2 and the requirements in section 7.

6.1 Activation and WUA provisioning

Actors: Wallet Provider, Wallet Unit, WSCD.

  1. The Wallet Unit is activated and the Wallet Provider verifies its integrity (a Wallet Unit lifecycle step, ARF 2.9.0 [1], section 4.6.4; out of scope here).

  2. Cryptographic keys are created in the WSCD.

  3. The Wallet Provider issues the first WIA(s) and KA(s) to the Wallet Unit, each signed as a JWT (section 7.1).

  4. The Wallet Provider records the association between each WUA and the Wallet Unit, together with the status-list entries it will maintain (ARF Topic C [2], Proposal 7).

Outcome: the Wallet Unit holds valid (Issued) WUAs and is Operational in the Wallet Unit lifecycle (ARF 2.9.0 [1], section 4.6.4).

6.2 Lifecycle and revocation

Actors: Wallet Provider, PID or Attestation Providers (relying parties).

  1. The Wallet Provider publishes and maintains the revocation status of each WUA using a Token Status List [9], keeping client_status.exp and key_storage_status.exp at least 31 days ahead at the time of presentation (section 7.2).

  2. On a revocation trigger (a security vulnerability detected by the Wallet Provider, or a user request such as loss or theft), the Wallet Provider sets all client_status entries for that Wallet Unit to revoked; the Wallet Unit moves to Revoked (section 7.2; ARF 2.9.0 [1], section 4.6.4).

  3. Relying parties re-check the WUA revocation status at least once every 24 hours for the validity period of the credential, and stop relying on a credential bound to a revoked Wallet Unit (section 7.2).

Outcome: revocation of a Wallet Unit propagates to every relying party still holding a credential issued against it.

6.3 Rotation / re-issuance

Actors: Wallet Provider, Wallet Unit.

  1. A WIA or KA approaches expiry, has been used (single-use), or its remaining maintenance period is insufficient for a forthcoming issuance.

  2. The Wallet Unit requests fresh WUAs from the Wallet Provider as needed (section 7.2).

  3. The Wallet Provider re-verifies the Wallet Unit’s integrity and issues fresh, single-use WIA(s) and KA(s) (sections 7.1 and 7.2).

Outcome: the Wallet Unit continuously holds usable WUAs while staying unlinkable; each fresh WUA is a new instance of the lifecycle in section 5.2, and the previous one simply expires.

6.4 Binding

The binding of the Access Token and of the issued credential during issuance is described as a step-by-step sequence in section 5.3 (Stage A and Stage B, Figure 3) and is not repeated here. Holder binding at presentation is out of scope and is profiled in CS-02 [11].

7. Normative Requirements

These requirements are pre-seeded from TS-03 [3] and ARF Topic C [2], with references and clause numbers inline. They are concrete candidate text for workshop ratification. Items still needing a decision are marked [DRAFT].

7.1 WUA structure and validity

Wallet Provider MUST:

  1. Sign every WIA and KA as a JWT using ES256, ES384 or ES512 (TS-03 [3], clause 2.6).

  2. Populate the WIA with at least wallet_name, wallet_version, wallet_solution_certification_information, a client_status object (containing status and exp) and a cnf key, as defined in TS-03 [3], clause 2.3.1.

  3. Populate the KA with at least the attested_keys array (one or more keys), key_storage, certification, user_authentication and a key_storage_status object (containing status and exp), as defined in TS-03 [3], clause 2.3.2.

  4. Issue each WIA with a time-to-live of less than 24 hours (TS-03 [3], clause 2.2.1.1).

  5. (WE BUILD profile) Issue each KA with a short token-level time-to-live comparable to the WIA. TS-03 [3] permits the KA a longer validity period and leaves its technical validity period to the Wallet Provider (clause 2.4.2); WE BUILD does not use that allowance and issues no long-lived KA, to keep things simple within the scope of WE BUILD. This token-level exp is independent of the key_storage_status.exp revocation-maintenance commitment (section 7.2; TS-03 [3], clause 2.4.1).

Wallet Provider SHOULD:

  1. Include wallet_link in the WIA (TS-03 [3], clause 2.3.1).

Wallet Unit MUST:

  1. Present a WIA whose time-to-live has not expired, together with a KA, where the consuming process requires it (TS-03 [3], clause 2.2.1.1).

Note (security levels). key_storage and user_authentication (KA) carry the attested security levels of the keystore/WSCD and of user authentication, expressed on the ISO 18045 AVA_VAN scale (OpenID4VCI [5], Appendix D, as referenced by TS-03 [3], clause 2.3.2). An issuer may require minimum levels via the key_attestations_required object in Credential Issuer Metadata. The Wallet Unit’s matching behaviour (provide a KA meeting the required level or a higher one, never lower) and the issuer’s acceptance decision on a discrepancy are profiled in CS-01 [10]; this specification defines only the claims.

7.2 Lifecycle, revocation and unlinkability

Wallet Provider MUST:

  1. Use Token Status List [9] as the revocation mechanism for both WIAs and KAs (TS-03 [3], clause 2.5).

  2. Maintain revocation status so that a Wallet Unit can always present a WIA and KA whose client_status.exp and key_storage_status.exp are at least 31 days in the future at the time of presentation (TS-03 [3], clause 2.4.2).

  3. For KA revocation, either reference the same status list index for all KAs attesting keys stored in the same WSCD or keystore type (Option 1, type-shared), or assign a fresh status list index to each KA (Option 2, per-KA) (TS-03 [3], clause 2.5.2).

  4. Ensure a Wallet Unit uses a single KA at most once, and that each attested public key is included in at most one KA (TS-03 [3], clause 2.2.2.1).

  5. Ensure a Wallet Unit sends the same WIA to at most one PID Provider or Attestation Provider, unless per-issuer reuse applies (TS-03 [3], clause 2.2.1.1).

  6. Ensure that a Wallet Unit has WIAs available as needed for issuance (TS-03 [3], clause 2.2.1.1). TS-03 does not mandate on-demand versus batch pre-provisioning.

  7. Keep each published status list entry available until its exp has passed (TS-03 [3], clause 2.4.2).

  8. On revocation of a Wallet Instance, revoke all client_status.status entries associated with that Wallet Unit (TS-03 [3], clause 2.4.2).

  9. Revoke a Wallet Instance upon detecting a security vulnerability in its device or operating environment, or upon a user request such as loss or theft (TS-03 [3], clause 2.5.1).

Note
the token-level exp (technical validity, under 24 hours) and client_status.exp (the revocation maintenance commitment) are independent. A short-lived WIA can carry a far-future client_status.exp (TS-03 [3], clause 2.4.1).

Wallet Unit MUST NOT (Option 2, per-KA index):

  1. Reuse the same per-KA status list index for interactions with different PID Providers or Attestation Providers (TS-03 [3], clause 2.5.2).

Relying parties MUST:

  1. (PID Provider) Check the revocation status of both the WIA and the KA received during issuance at least once every 24 hours for the validity period of the PID. Where the PID validity period is less than 24 hours, checking on issuance is sufficient (TS-03 [3], clause 2.4.3).

Relying parties SHOULD:

  1. (Attestation Provider) Apply the same revocation re-check cadence as PID Providers (TS-03 [3], clause 2.4.3).

Relying parties MAY:

  1. Express preferred_client_status_period (top level of Credential Issuer Metadata) and preferred_key_storage_status_period (within the key_attestations_required object) to state a preferred remaining status maintenance period, in seconds (TS-03 [3], clause 2.4).

Wallet Unit MUST:

  1. Where a preferred status period is expressed, present the available WIA or KA whose remaining maintenance period minus the preferred period is as small as possible but non-negative; if none is available, obtain a fresh one from the Wallet Provider that satisfies the preference (TS-03 [3], clause 2.4.2).

7.3 Binding

The issuance transport (Authorization Server, Token and Credential endpoints) is profiled in CS-01 [10]. The items below are the binding obligations CS-04 owns.

Wallet Unit MUST:

  1. Use the cnf key in the WIA as the DPoP key when requesting an Access Token from the Authorization Server (TS-03 [3], clause 2.2.1.1).

  2. Verify, on receipt of an Access Token, that its cnf.jkt matches the JWK Thumbprint of the cnf key in the WIA presented in the same issuance session, and abort the issuance session on mismatch (TS-03 [3], clause 2.2.1.1; ARF Topic C [2], Proposal 7, HLR WUA_37).

  3. Where a KA is included in a jwt proof element, sign that element with the key at index 0 of the attested_keys array (TS-03 [3], clause 2.2.2.1).

  4. Use a WIA in at most one credential issuance process, unless per-issuer reuse applies (TS-03 [3], clause 2.2.1.1).

  5. (WE BUILD profile) Include a single jwt proof of possession in the Credential Request, signed with the key at index 0 of attested_keys, even where the KA attests multiple keys. TS-03 [3] permits a KA to attest multiple keys for batch issuance (clause 2.2.2.1); WE BUILD permits multiple keys but uses a single proof of possession.

Relying parties MUST:

  1. Verify that the signature of the jwt proof element verifies under the key at index 0 of the attested_keys array (TS-03 [3], clause 2.2.2.2).

Note
Presentation-time holder binding is specified normatively in CS-02 [11]. CS-04 imposes no direct WIA or KA validation obligations on Relying Parties at presentation, because the WIA and KA are not presented to Relying Parties (section 4); CS-04 specifies only how the issued credential becomes bound, during issuance, to a key attested by the KA.

8. Interface Definitions

Logical interfaces; exact paths are deployment-specific.

8.1 WUA format

WIA and KA are JWTs signed with ES256, ES384 or ES512 (TS-03 [3], clause 2.6). WIA claims are defined in TS-03 [3], clause 2.3.1; KA claims in TS-03 [3], clause 2.3.2. (ETSI TS 119 472-3 [4], clauses 4.4.2 and 4.6.1.2, reference an older TS-03 numbering, clauses 2.3.3/2.3.4; see issue CS04-I7.)

8.2 Status / revocation interface

Token Status List [9] retrieval (TS-03 [3], clause 2.5): the Wallet Instance via client_status.status (TS-03 [3], clause 2.5.1), and the WSCD/keystore (type-shared or per-KA) via key_storage_status.status (TS-03 [3], clause 2.5.2). This specification pins the IETF Token Status List to draft-ietf-oauth-status-list-20 [9]. TS-03 [3] references the mechanism non-specifically (clause 2.5), so CS-04 fixes the version for conformance testability; see issue CS04-I8.

9. Conformance

An implementation conforms as a Wallet Provider if it: implements the requirements in 7.1 to 7.3 applicable to the Wallet Provider role and the interfaces in section 8.

An implementation conforms as a Wallet Unit if it: implements the WU requirements in section 7 and the relevant flows in section 6.

An implementation conforms as an Issuer or Verifier if it: implements the relying-party requirements in 7.2 and 7.3 and validates the WUA as specified.

Profiles MUST NOT weaken the mandatory requirements in this specification.

References

[1] European Commission (2025) The European Digital Identity Wallet Architecture and Reference Framework, version 2.9.0. Available at: https://eudi.dev/2.9.0/architecture-and-reference-framework-main/ (Accessed: 30 May 2026)

[2] European Commission (2025) ARF Discussion Topic C: Wallet Unit Attestations. Available at: https://eudi.dev/2.9.0/discussion-topics/c-rr-wallet-unit-attestations/ (Accessed: 30 May 2026)

[3] European Commission (2025) EUDI Wallet Technical Specification TS-03: Wallet Unit Attestations (WUA) used in issuance of PID and Attestations. Available at: https://github.com/eu-digital-identity-wallet/eudi-doc-standards-and-technical-specifications/blob/main/docs/technical-specifications/ts3-wallet-unit-attestation.md (Accessed: 30 May 2026)

[4] ETSI (2026) ETSI TS 119 472-3 V1.1.1: Electronic Signatures and Trust Infrastructures (ESI); Profiles for Electronic Attestation of Attributes; Part 3: Profiles for issuance of EAA or PID

[5] OpenID Foundation (2025) OpenID for Verifiable Credential Issuance 1.0. Available at: https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html (Accessed: 30 May 2026)

[6] OpenID Foundation (2025) OpenID for Verifiable Presentations 1.0. Available at: https://openid.net/specs/openid-4-verifiable-presentations-1_0.html (Accessed: 30 May 2026)

[7] OpenID Foundation (2025) OpenID4VC High Assurance Interoperability Profile (HAIP) 1.0. Available at: https://openid.net/specs/openid4vc-high-assurance-interoperability-profile-1_0-ID1.html (Accessed: 30 May 2026)

[8] IETF (1997) RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. Available at: https://datatracker.ietf.org/doc/html/rfc2119 (Accessed: 30 May 2026)

[9] IETF (2026) OAuth Token Status List, draft-ietf-oauth-status-list-20, 20 April 2026 (Internet-Draft, OAuth WG). Available at: https://datatracker.ietf.org/doc/draft-ietf-oauth-status-list/20/ (Accessed: 30 May 2026). CS-04 pins this revision (see issue CS04-I8); TS-03 [3] references the mechanism non-specifically.

[10] WE BUILD (2025) Conformance Specification CS-01: Credential Issuance, version 1.0

[11] WE BUILD (2026) Conformance Specification CS-02: Credential Presentation, version 1.1

[12] IETF (2025) SD-JWT-based Verifiable Credentials (SD-JWT-VC). Available at: https://datatracker.ietf.org/doc/draft-ietf-oauth-sd-jwt-vc/ (Accessed: 30 May 2026)

[13] IETF (2013) RFC 7800: Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs). Available at: https://datatracker.ietf.org/doc/html/rfc7800 (Accessed: 30 May 2026)

Annex A (informative): Example WUA

This annex is informative. It gives illustrative examples of a WIA and a KA to help readers and test developers. The normative data model is TS-03 [3], clause 2.3.1 (WIA) and clause 2.3.2 (KA); where this annex and TS-03 differ, TS-03 prevails. The WUA is an infrastructure attestation and has no attestation rulebook (see Section 1). All values below are placeholders.

A.1 Example WIA (decoded JWT)

JOSE header:

{ "alg": "ES256", "typ": "oauth-client-attestation+jwt", "x5c": ["<wallet provider signing certificate chain>"] }

Payload:

{
  "sub": "https://wallet-provider.example/instances/3f9a...c1",
  "iat": 1777000000,
  "exp": 1777040000,
  "cnf": { "jwk": { "kty": "EC", "crv": "P-256", "x": "...", "y": "..." } },
  "wallet_name": "Example EUDI Wallet",
  "wallet_version": "2.4.1",
  "wallet_link": "https://wallet-provider.example/info",
  "wallet_solution_certification_information": { "...": "conformity assessment body and certification details" },
  "client_status": {
    "status": { "status_list": { "idx": 1337, "uri": "https://wallet-provider.example/wia-statuslists/42" } },
    "exp": 1779678000
  }
}

Where each element comes from:

  • alg (ES256, ES384 or ES512) - TS-03 [3], clause 2.6.

  • typ (oauth-client-attestation+jwt) and the JWT encoding - the WIA is a Wallet Attestation per OpenID4VCI [5], Appendix E (TS-03 [3], clause 2.2.1; example in clause 3.1); JWT encoding follows RFC 7519.

  • cnf (DPoP key) and token-level exp under 24 hours - TS-03 [3], clause 2.2.1.1.

  • wallet_name, wallet_version, wallet_solution_certification_information, wallet_link, client_status - TS-03 [3], clause 2.3.1.

  • client_status.status (the status_list reference with idx and uri) - TS-03 [3], clause 2.5.1, using the IETF Token Status List [9].

  • client_status.exp (revocation maintenance commitment, at least 31 days ahead at presentation) - TS-03 [3], clauses 2.4.1 and 2.4.2.

A.2 Example KA (decoded JWT)

JOSE header:

{ "alg": "ES256", "typ": "keyattestation+jwt", "x5c": ["<wallet provider signing certificate chain>"] }

Payload:

{
  "iat": 1777000000,
  "exp": 1777040000,
  "attested_keys": [ { "kty": "EC", "crv": "P-256", "x": "...", "y": "..." } ],
  "key_storage": ["iso_18045_high"],
  "user_authentication": ["iso_18045_high"],
  "certification": { "...": "WSCD or keystore certification scheme, evaluated requirements and level" },
  "key_storage_status": {
    "status": { "status_list": { "idx": 8081, "uri": "https://wallet-provider.example/ka-statuslists/7" } },
    "exp": 1779678000
  }
}

Where each element comes from:

  • alg (ES256, ES384 or ES512) - TS-03 [3], clause 2.6.

  • attested_keys, key_storage, certification, key_storage_status - TS-03 [3], clause 2.3.2.

  • user_authentication - OpenID4VCI [5], Appendix D, as referenced by TS-03 [3], clause 2.3.2.

  • Signing a jwt proof with the key at index 0 of attested_keys - TS-03 [3], clause 2.2.2.1.

  • key_storage_status.status (type-shared or per-KA index) - TS-03 [3], clause 2.5.2, using the IETF Token Status List [9].

Note
the header typ values and the exact shapes of key_storage, user_authentication and certification are defined by TS-03 [3] and OpenID4VCI [5]; reproduce TS-03’s own examples for the authoritative form. The key_storage and user_authentication values are ISO 18045 AVA_VAN levels; the mechanism by which an issuer requires minimum levels is profiled in CS-01 [10]. iss is intentionally omitted from both the WIA and the KA: the Wallet Provider identity is inferred from the signing certificate in the x5c JOSE header (TS-03 [3], clause 2.2.1).

Annex B (informative): Key binding and holder binding

This annex is informative. It summarises how a credential becomes bound to a key that the KA attests (key binding, at issuance) and how the holder proves control of that key at presentation (holder binding). The issuance transport is profiled in CS-01 [10] and the presentation protocol in CS-02 [11]; the normative WUA requirements are in section 7. Formats follow OpenID4VCI [5], OpenID4VP [6], SD-JWT-VC [12] and RFC 7800 [13].

B.1 Key binding at issuance
  1. The Wallet Unit generates the key pair inside the WSCD; the private key never leaves it.

  2. In the Credential Request, the jwt proof carries the KA in its key_attestation header and is signed by the key at index 0 of attested_keys (TS-03 [3], clause 2.2.2.1), presenting the public key and proving possession in one step.

  3. The issuer verifies the KA against the trusted list, reads key_storage / certification (WSCD level) and user_authentication (TS-03 [3], clause 2.3.2), and verifies the proof of possession (TS-03 [3], clause 2.2.2.2).

  4. The issuer embeds the holder’s public key in the credential’s cnf claim (RFC 7800 [13]) and signs the credential (for example an SD-JWT-VC [12]). The credential is now bound to that key.

The credential’s cnf claim (illustrative):

"cnf": { "jwk": { "kty": "EC", "crv": "P-256", "x": "...", "y": "..." } }
B.2 Holder binding at presentation

Profiled in CS-02 [11]; summarised here for context.

  1. The verifier sends a request carrying a nonce and its identifier aud (OpenID4VP [6]).

  2. The Wallet Unit signs a Key Binding JWT with the bound private key; the WSCD requires user authentication (PIN or biometric) before the key can be used.

  3. The verifier verifies the KB-JWT against the cnf key inside the credential, checks nonce (anti-replay) and aud (intended verifier), and verifies the issuer’s signature and the credential’s revocation status. The WUA is not presented.

The KB-JWT (illustrative, SD-JWT-VC [12]):

{ "typ": "kb+jwt", "alg": "ES256" }
{ "nonce": "n-0S6_WzA2Mj", "aud": "https://verifier.example", "iat": 1777000000, "sd_hash": "..." }

For ISO mdoc, the device signature over the session transcript is the equivalent of the KB-JWT.

B.3 The sequence
Diagram

Figure B.1: Key binding (issuance) and holder binding (presentation). The KA assures the issuer that the cnf key is hardware-held; the verifier later checks the KB-JWT against that same key in the credential, not against the WUA.

Note
the two cnf uses are different. In the WIA, cnf is the DPoP key that binds the issuance session (section 7.3). In the issued credential, cnf is the holder key the credential is bound to (this annex).