WE BUILD - Membership Credential - SD-JWT VC payload

Schema for the SD-JWT VC payload of a Membership Credential as defined in the rb-ds-membership Rulebook (Chapter 3.2). This models the JSON claims set prior to SD-JWT disclosure/packing, aligned with the catalog baseline of HAIP draft-03 and SD-JWT VC draft -09.

eu.we-build.ds-membership.1 TS11

Display Properties

en-US

Name
Membership Credential -
Description
Schema for the SD-JWT VC payload of a Membership Credential as defined in the rb-ds-membership Rulebook (Chapter 3.2). This models the JSON claims set prior to SD-JWT disclosure/packing, aligned with the catalog baseline of HAIP draft-03 and SD-JWT VC draft -09.

TS11 Schema Metadata

Schema ID
89e98e55-ec69-5ffc-b394-e3dd0805581a
Version
0.1.0
Attestation LoS
iso_18045_high
Binding Type
key
Supported Formats
dc+sd-jwt
API Endpoint
GET /schemas/89e98e55-ec69-5ffc-b394-e3dd0805581a

Schema URIs

dc+sd-jwt
https://registry.siros.org/webuild-consortium/ds-membership.vctm.json

Attestation Rulebook

https://registry.siros.org/webuild-consortium/ds-membership/rulebook.html

Source

Repository
webuild-consortium/webuild-attestation-rulebooks-catalog
Last Updated

Claims (16)

Path Display Name
evidence
id
member
termsOfUse.acceptedAt
termsOfUse.url
termsOfUse.version
termsOfUse.hash
termsOfUse
memberOf
onboardedBy.platformId
onboardedBy.name
onboardedBy.operator
onboardedBy
attestation_legal_category
holderIdentifier
role

SD-JWT VC Type Metadata (IETF draft-ietf-oauth-sd-jwt-vc)

{
  "vct": "eu.we-build.ds-membership.1",
  "name": "WE BUILD - Membership Credential - SD-JWT VC payload",
  "description": "Schema for the SD-JWT VC payload of a Membership Credential as defined in the rb-ds-membership Rulebook (Chapter 3.2). This models the JSON claims set prior to SD-JWT disclosure/packing, aligned with the catalog baseline of HAIP draft-03 and SD-JWT VC draft -09.",
  "display": [
    {
      "locale": "en-US",
      "name": "Membership Credential -",
      "description": "Schema for the SD-JWT VC payload of a Membership Credential as defined in the rb-ds-membership Rulebook (Chapter 3.2). This models the JSON claims set prior to SD-JWT disclosure/packing, aligned with the catalog baseline of HAIP draft-03 and SD-JWT VC draft -09."
    }
  ],
  "claims": [
    {
      "path": [
        "evidence"
      ],
      "display": [
        {
          "locale": "en-US",
          "label": "Evidence"
        }
      ],
      "description": "The identification means used to prove the holder's identity during the initial onboarding process. Describes the HOLDER, never the platform or its operator. Subject to integrity rules IR-03 and IR-04. A single entry may appear as an object rather than a one-element array; both forms are accepted. See Rulebook Sections 2.6.1 and 3.3.1."
    },
    {
      "path": [
        "id"
      ],
      "display": [
        {
          "locale": "en-US",
          "label": "Id"
        }
      ],
      "description": "DID of the credential subject. May change, in contrast to member.legalIdentifier. DS-specific name retained for interoperability.",
      "mandatory": true
    },
    {
      "path": [
        "member"
      ],
      "display": [
        {
          "locale": "en-US",
          "label": "Member"
        }
      ],
      "description": "The holder of the credential, as an economic operator. member.legalIdentifier carries the stable, EU-level identifier; for the MVP this re-uses the EUID from the holder's EUBWOID. DS-specific name retained for interoperability.",
      "mandatory": true
    },
    {
      "path": [
        "termsOfUse",
        "acceptedAt"
      ],
      "display": [
        {
          "locale": "en-US",
          "label": "AcceptedAt"
        }
      ],
      "description": "Datetime when the rulebook was accepted, where present. Subject to integrity rule IR-01."
    },
    {
      "path": [
        "termsOfUse",
        "url"
      ],
      "display": [
        {
          "locale": "en-US",
          "label": "Url"
        }
      ],
      "description": "Reference to the online dataspace governance rulebook."
    },
    {
      "path": [
        "termsOfUse",
        "version"
      ],
      "display": [
        {
          "locale": "en-US",
          "label": "Version"
        }
      ],
      "description": "Version of the online rulebook at the time of acceptance."
    },
    {
      "path": [
        "termsOfUse",
        "hash"
      ],
      "display": [
        {
          "locale": "en-US",
          "label": "Hash"
        }
      ],
      "description": "SHA-256 hash of the rulebook, represented as 64 hexadecimal characters."
    },
    {
      "path": [
        "termsOfUse"
      ],
      "display": [
        {
          "locale": "en-US",
          "label": "TermsOfUse"
        }
      ],
      "description": "Dataspace governance rulebook information. See Rulebook Section 2.2.1.",
      "mandatory": true
    },
    {
      "path": [
        "memberOf"
      ],
      "display": [
        {
          "locale": "en-US",
          "label": "MemberOf"
        }
      ],
      "description": "DSI or dataspace membership value. An absolute IRI registered in Rulebook code list 2.8, under the owning DSI's or dataspace's own domain. The memberOf property is typed @id in the European Business Wallet Vocabulary, so the value is an IRI and not a plain label.",
      "mandatory": true
    },
    {
      "path": [
        "onboardedBy",
        "platformId"
      ],
      "display": [
        {
          "locale": "en-US",
          "label": "PlatformId"
        }
      ],
      "description": "DID identifying the platform through which the holder was onboarded."
    },
    {
      "path": [
        "onboardedBy",
        "name"
      ],
      "display": [
        {
          "locale": "en-US",
          "label": "Name"
        }
      ],
      "description": "Commercial name of the platform (DSI or onboarding partner)."
    },
    {
      "path": [
        "onboardedBy",
        "operator"
      ],
      "display": [
        {
          "locale": "en-US",
          "label": "Operator"
        }
      ],
      "description": "The economic operator hosting and running the platform. Its identifier identifies that organisation, NOT the holder."
    },
    {
      "path": [
        "onboardedBy"
      ],
      "display": [
        {
          "locale": "en-US",
          "label": "OnboardedBy"
        }
      ],
      "description": "The platform through which the holder was onboarded: the platform itself and the economic operator hosting it. Describes the onboarding party only; how the holder was identified is recorded in evidence. See Rulebook Section 2.2.2.",
      "mandatory": true
    },
    {
      "path": [
        "attestation_legal_category"
      ],
      "display": [
        {
          "locale": "en-US",
          "label": "Attestation Legal Category"
        }
      ],
      "description": "Legal category of the attestation. In EBWV v0.1, EAA denotes the non-qualified Electronic Attestation of Attributes category.",
      "mandatory": true
    },
    {
      "path": [
        "holderIdentifier"
      ],
      "display": [
        {
          "locale": "en-US",
          "label": "HolderIdentifier"
        }
      ],
      "description": "Stable and unique identifier used within the DSI or dataspace to refer to THE HOLDER. Populated only where it differs from member.legalIdentifier. Subject to integrity rules IR-06 and IR-07."
    },
    {
      "path": [
        "role"
      ],
      "display": [
        {
          "locale": "en-US",
          "label": "Role"
        }
      ],
      "description": "The roles the holder has within the DSI or dataspace. Each value is an absolute IRI; those registered in Rulebook code list 2.8 are the DataSpaceRole individuals under https://w3id.org/ebwv#. A DSI may mint further role IRIs under a namespace it owns. A single role may appear as a scalar rather than a one-element array; both forms are accepted. See Rulebook Section 3.3.1.",
      "mandatory": true
    }
  ]
}

WE BUILD Attestation Rulebook for attestations of type Membership Credential

This WE BUILD v1 Rulebook specifies the Membership Credential used in the WE BUILD Supply Chain 2 (SC2) MVP scenario "seamless onboarding" piloted by the Data Sharing Initiatives (DSI) DjustConnect (ILVO), DADS (ITC) and Tritom (Dataspace Europe), and the common agriculture dataspace "Agri-X".

Version Date Description
01 25.06.2026 Initial Rulebook derived from the MVP Membership credential attestation description.
02 26.08.2026 consolidated draft
03 26.08.2026 BREAKING: role/roles values changed from bare strings to absolute URIs under https://w3id.org/ebwv/roles#; memberOf values changed from bare strings to absolute URIs minted per-DSI under the DSI's own domain. See Section 2.8.
04 27.08.2026 onboardedBy gains memberIdentifier, the platform-local identifier of the holder (Section 2.2.2/2.2.4), bridging the EBWOID/EUID to legacy identifiers; code list 2.8 corrected accordingly. Chapter 3 (SD-JWT VC and W3C VCDM) realigned with the Chapter 2 attribute names (member, role, termsOfUse) after drift; holder legalName folded into member. Disclosability rules made consistent (Section 3.2.2). Use of the credential in data-sharing transactions marked out of scope for the pilot.
05 01.09.2026 Editorial: "SC2" expanded to "Supply Chain 2 (SC2)" on first use; feedback channel now points to the Supply Chain 2 contact points.
06 01.09.2026 BREAKING, aligns the Rulebook with the published European Business Wallet Vocabulary and its JSON-LD context. Reverts entry 03: role and memberOf values return from absolute URIs to plain terms, since both properties are typed xsd:string in the vocabulary and the https://w3id.org/ebwv/roles# namespace does not exist — role individuals are published under https://w3id.org/ebwv#. Namespace-prefix trust withdrawn accordingly (Section 5), IR-05 added. onboardedBy.memberIdentifier refactored to credential-level evidence (Section 2.6), recording the identification means used to prove the holder's identity during initial onboarding; onboardedBy now describes the onboarding platform only. Identifiers adopt the vocabulary's typed-literal pattern; the Identifier object of entry 04 is withdrawn and member uses legalIdentifier. Cardinality in compacted and expanded JSON-LD documented (Section 3.3.1). New Section 3.3.2 records the type declarations required for expansion, after a round-trip through a JSON-LD processor showed that the previous credential-level type of Membership caused member, memberOf, role and onboardedBy to be dropped silently; Membership now types the credential subject.
07 02.09.2026 The credential subject gains the optional holderIdentifier attribute (Section 2.3), derived from the source attestation description (MVP Membership credential — attestation description, v1.0, section 1.4.1). It carries the identifier by which the onboarding platform refers to the holder, and is populated only where the value differs from member.legalIdentifier. It sits alongside memberOf on the credential subject rather than inside onboardedBy, because it describes the holder and not the onboarding platform; onboardedBy now identifies the onboarding party only. No companion holderIdentifierType is defined: the scheme follows from the onboarding platform named in onboardedBy, and where it must be stated explicitly the identifier is carried as evidence, whose scheme is machine-readable. IR-06 and IR-07 added. The attribute has no property term in the published vocabulary context, so it is recorded among the known expansion gaps in Section 3.3.2. The credential-level type now includes ElectronicAttestationOfAttributes, which is what brings attestationLegalCategory into scope; that attribute previously dropped on expansion and now resolves to the EAA individual, closing the gap recorded in entry 06. attestation_legal_category moved from the Membership attribute table (Section 2.2) to mandatory metadata (Section 2.5), since it qualifies the attestation rather than the member and is carried at credential level.
08 02.09.2026 BREAKING, follows the European Business Wallet Vocabulary context republished on 2 September 2026. That context retypes role and memberOf from xsd:string to @id, so both now carry absolute IRIs and expand to node references; the plain terms introduced in entry 06 are withdrawn. Role values are the DataSpaceRole individuals under https://w3id.org/ebwv#. Verified by expansion: a relative value such as DataRightsHolder resolves against the document base, yielding a different IRI for every location a credential is served from. Namespace-prefix trust for role is reinstated (Section 5) and a DSI may now mint its own role IRIs without a vocabulary or Rulebook change. The same context adds holderIdentifier to the Membership type-scoped context, closing the last expansion gap from entry 07; Section 3.3.2 now records full coverage. IR-05 restated in terms of IRI matching.

Feedback:

  • Main feedback channel: GitHub issues
  • Alternative: contact Supply Chain 2 contact points in WE BUILD.

1 Introduction

1.1 Document scope and purpose

The Membership Credential expresses that its holder is a member of a specific Data Sharing Initiative (DSI) or dataspace, which roles the holder has within that DSI or dataspace, and to which dataspace governance rulebook the holder has conformed. It exists to enable seamless onboarding: common information already presented in a previous onboarding flow is trusted and not requested again when the holder onboards into a further DSI or the common dataspace.

In plain language, the credential combines all necessary information about the dataspace or DSI membership into a single attestation held in an EU Business Wallet (EBW), independent of any dataspace-specific connector technology.

  • Real-world fact expressed: membership of a DSI or dataspace, the roles held within it (e.g. Data Rights Holder, Data Provider, Data Consumer, Operator, Onboarding Service Provider), and acceptance of the dataspace governance rulebook.
  • Issuers: trusted issuers / onboarding service providers (the participating DSIs, or another technology partner acting as onboarding service provider). Agri-X is envisaged as a federation of DSIs; participants join Agri-X via a DSI or directly via a trusted issuer.
  • Holders: organisations (legal persons) participating in a DSI or dataspace. The MVP scenario is limited to legal persons.
  • Relying parties: DSI / dataspace platforms and participants that verify membership and roles during onboarding. Use during data-sharing transactions is a potential future application and is out of scope for this pilot: a data-transfer flow would likely require the Membership Credential to be transformed into a connector-native credential (for instance an EDC / dataspace protocol participant credential) rather than presented directly.
  • Use case: WE BUILD SC2 "seamless onboarding" piloted by DjustConnect (ILVO), DADS (ITC) and Tritom (Dataspace Europe), targeting the common agriculture dataspace "Agri-X".
  • Source document: MVP Membership credential — attestation description.

The schema is designed to be re-usable and interoperable with other dataspaces. It is aligned with the membership credential used within Catena-X; attributes that must remain interoperable with such operational dataspaces are marked as dataspace-specific (DS-specific) terminology that SHALL NOT be renamed.

1.2 Document structure

  • Chapter 2, which describes the attestation attributes and metadata in an encoding-independent manner.
  • Chapter 3, which specifies how the attestation attributes and metadata are encoded in case the attestation complies with [ISO/IEC 18013-5] and/or [SD-JWT VC] and/or [W3C VCDM v2.0]. Each encoding SHALL be specified in a separate section, or even in a separate chapter.
  • Chapter 4, which specifies attestation usage.
  • Chapter 5, which defines how trust anchors for attestation verification can be obtained.
  • Chapter 6, which defines attestation revocation mechanisms.
  • Chapter 7, which provides compliance information.

1.3 Key words

This document uses the capitalised key words 'SHALL', 'SHOULD' and 'MAY' as specified in [RFC 2119], i.e., to indicate requirements, recommendations and options specified in this document.

In addition, 'must' (non-capitalised) is used to indicate an external constraint, i.e., a requirement that is not mandated by this document, but, for instance, by an external document. The word 'can' indicates a capability, whereas other words, such as 'will', and 'is' or 'are' are intended as statements of fact.

1.4 Terminology

This document uses the terminology specified in Annex 1 of the ARF.

2 Attestation attributes and metadata

Chapter overview and requirements

This chapter is used for defining all attributes that an attestation of the defined type may contain. In this section the attributes SHALL be defined in an encoding-independent manner (see ARB_06 in [Topic 12]). Each attribute can be mandatory, optional, or conditional and this SHALL be specified in the corresponding section (see ARB_09 in [Topic 12]).

When attributes are defined, referring to attributes that already exist in a catalogue of attestation attributes SHOULD be considered (see ARB_07 in [Topic 12]).

Where use-case documentation or an attestation description already defines attribute meanings, logical models, code lists, or integrity constraints, authors SHOULD align terminology with those sources and may copy and refine that material for this Rulebook.

[Topic 12] of Annex 2 of the ARF defines the following High-Level Requirements with respect to the Attestation Rulebooks:

Requirements for QEAA

  • An attribute as meant in Annex V point a) of the [European Digital Identity Regulation] SHALL be included (see ARB_11 in [Topic 12]). See also section 2.1.
  • One or more attributes or metadata representing the set of data meant in Annex V point b) of the [European Digital Identity Regulation] SHALL be included (see ARB_13 in [Topic 12])
  • One or more attributes representing the set of data meant in Annex V point c)
    of the [European Digital Identity Regulation] SHALL be included (see ARB_16 in [Topic 12]).
  • One or more attributes or metadata representing the set of data meant in Annex V point e) of the [European Digital Identity Regulation] SHALL be included (see ARB_18 in [Topic 12]).
  • One or more attributes or metadata representing the location meant in Annex V point h) of the [European Digital Identity Regulation] SHALL be included. This location SHALL indicate at least the URL at which a machine-readable version of the trust anchor to be used for verifying the QEAA can be found or looked up (see ARB_20 in [Topic 12]).

Requirements for PuB-EAA

  • An attribute as meant in Annex VII point a) of the [European Digital Identity Regulation] SHALL be included (see ARB_11 in [Topic 12]). See also section 2.1.
  • One or more attributes or metadata representing the set of data meant in Annex VII point b) of the [European Digital Identity Regulation] SHALL be included (see ARB_14 in [Topic 12]).
  • One or more attributes representing the set of data meant in Annex VII point c) of the [European Digital Identity Regulation] SHALL be included (see ARB_16 in [Topic 12]).
  • One or more attributes or metadata representing the set of data meant in Annex VII point e) of the [European Digital Identity Regulation] SHALL be included (see ARB_18 in [Topic 12]).
  • one or more attributes or metadata representing the location meant in Annex VII point h) of the [European Digital Identity Regulation] SHALL be included. This location SHALL indicate at least the URL at which a machine-readable version of the qualified certificate that signed the PuB-EAA can be found or looked up. (see ARB_20 in [Topic 12])

Requirements for non-qualified EAA

  • An attribute indicating that the attestation is an EAA should be included (see ARB_12 in [Topic 12]). See also section 2.1.
  • One or more attributes or metadata representing the set of data meant in Annex V point b) of the [European Digital Identity Regulation] SHALL be included (see ARB_15 in [Topic 12]).
  • One or more attributes representing the set of data meant in Annex V point c) of the [European Digital Identity Regulation] SHOULD be included (see ARB_17 in [Topic 12])
  • One or more attributes representing the set of data meant in Annex V point e) of the [European Digital Identity Regulation] SHOULD be defined (see ARB_19 in [Topic 12]).
  • One or more attributes or metadata representing the location at which a machine-readable version of the trust anchor to be used for verifying the EAA can be found or looked up SHOULD be defined. What this location indicates precisely is dependent on the nature of the mechanism used for distributing trust anchors, detailed in section 5 (see ARB_21 in [Topic 12])

2.1 Introduction

The Membership Credential is a non-qualified EAA. This document defines the attribute attestationLegalCategory which SHALL have the value EAA. It qualifies the attestation as a whole rather than the member, and is therefore carried at credential level, outside the credential subject; in the W3C VCDM encoding the credential-level type SHALL include ElectronicAttestationOfAttributes, which is what defines the attribute. See Section 3.3.2.

The credential describes the member (the CredentialSubject) together with the dataspace governance rulebook the member conforms to (termsOfUse), the roles the member has within the DSI or dataspace (role), and the platform through which the member was onboarded (onboardedBy). Separately, at credential level, evidence records the identification means by which the holder's identity was proven during the initial onboarding process.

Logical model. The Membership Credential is structured as follows:

  • The credential subject is identified by id (a UUID, may change) and member, an object of type EconomicOperator carrying the stable identifier of the holder in legalIdentifier; for the MVP this re-uses the EUID from the EUBWOID of that economic operator.
  • memberOf names the DSI or dataspace the membership is for.
  • role is an array of roles the holder has within that DSI or dataspace. The membership and its set of roles share the same lifecycle: a change of roles requires re-issuance of the credential.
  • termsOfUse is an object of type GovernanceRulebook referencing the accepted dataspace governance rulebook (URL, version, SHA-256 hash, and acceptance datetime).
  • holderIdentifier optionally carries the identifier by which the onboarding platform refers to the holder, where that differs from member.legalIdentifier. It sits alongside memberOf on the credential subject, because it describes the holder rather than the platform.
  • onboardedBy is an object of type Platform identifying the onboarding party: the platform's identifier (platformId) and commercial name, and the operator — the economic operator hosting and running the platform.
  • evidence records the identification means used to prove the holder's identity during the initial onboarding process, for example the VAT identifier presented in a paper-based onboarding flow. It is credential metadata about the issuance, not an attribute of the subject, and is therefore carried at credential level rather than inside the credential subject (Section 2.6).

Note that evidence describes how the holder was identified, whereas onboardedBy describes the platform and the organisation that performed the onboarding. Keeping the two apart is deliberate: an identifier recorded as evidence belongs to the holder, never to the platform operator. As a side effect, evidence also bridges the EU-level identifier in member.legalIdentifier to a legacy or platform-local identifier of the same holder, which may not be recognisable or interoperable outside the onboarding platform; see IR-03 and IR-04 for the limits on that use.

Standard credential metadata (issuer, issuance time, expiry, status) follows from the chosen VC format and is documented in Chapter 3 rather than as attributes here. Each Membership Credential has its own unique identifier.

DS-specific terminology. Attributes marked (*) below (id, member, memberOf) keep their names for cross-dataspace interoperability (e.g. with Catena-X) and SHALL NOT be renamed. For extensibility purposes the JSON Schema definition allows additional properties in the onboardedBy data type definition.

Subsections 2.2 - 2.7 define the attributes and metadata in an encoding-independent manner. Code lists are in Section 2.8 and integrity rules in Section 2.9. The structured objects termsOfUse and onboardedBy are defined as sub-tables in Section 2.2; evidence is defined in Section 2.6.

2.2 Mandatory attributes of object Membership

Data Identifier Semantic Reference Definition Data type Example value
id (*) @id UUID of the credential subject. May change, in contrast to member.legalIdentifier which is a persistent, stable identifier. Name kept for cross-dataspace interoperability. UUID did:web:example.com:participant:123
member (*) member The holder, as an economic operator carrying the stable identifier that uniquely identifies it. For the MVP this re-uses the EUID (part of the EUBWOID); scope is legal persons only. Name kept for cross-dataspace interoperability. Object, see table below. EconomicOperator see 2.2.3
memberOf (*) memberOf The DSI or dataspace the holder is a member of. Within a DSI/DS all issued membership credentials use the same value. The value is an absolute IRI registered in code list 2.8, matched by exact IRI comparison. Name kept for cross-dataspace interoperability. URL https://agri-x.eu
role role The roles the holder has within the DSI or dataspace. A member may have multiple roles; the set of roles shares the membership lifecycle. Each value is an absolute IRI from code list 2.8. See also Section 3.3.1 on cardinality. array of IRIs ["https://w3id.org/ebwv#DataProvider"]
termsOfUse termsOfUse Dataspace governance rulebook information. Object, see table below. GovernanceRulebook see 2.2.1
onboardedBy onboardedBy The platform through which the holder was onboarded into the DSI or dataspace: the platform itself and the economic operator hosting it. Object, see table below. Platform see 2.2.2

2.2.1 termsOfUse object of type GovernanceRulebook

Data Identifier Semantic Reference Definition Data type Optionality Example value
url N/A Reference to the online dataspace governance rulebook for the given DSI or DS. string (URI) M https://agri-x.eu/rulebook
version N/A Version of the online rulebook at the time of acceptance. string M 1.2
hash N/A SHA-256 hash of the rulebook, for quick comparison. string (SHA-256 hash) M 9f86d081...
acceptedAt N/A Datetime when the rulebook was accepted. May differ from issuance time in an outbound flow where a credential is issued to an existing member based on a previously completed onboarding flow. datetime O 2026-06-01T10:00:00Z

2.2.2 onboardedBy object of type Platform

This object identifies the onboarding party: which platform performed the onboarding and which legal entity hosts it. Example reading: "DjustConnect, a platform hosted by ILVO, onboarded farmer XYZ."

Identifiers of the holder are not carried here. The identifier by which the onboarding platform refers to the holder is holderIdentifier at credential-subject level (Section 2.3), and the identification means used to prove the holder's identity is evidence at credential level (Section 2.6). The only identifier in this object, operator.identifier, belongs to the organisation hosting the platform.

Data Identifier Semantic Reference Definition Data type Optionality Example value
platformId platformId DID identifying the platform through which the holder was onboarded. string (URI) M did:web:djustconnect.be
name name Commercial name of the platform (DSI or onboarding partner). string M DjustConnect
operator operator The economic operator hosting and running the platform. Object, see 2.2.3. EconomicOperator M see 2.2.3

2.2.3 EconomicOperator object

Used by member (the holder) and by onboardedBy.operator (the organisation hosting the onboarding platform). Identifier values follow the European Business Wallet Vocabulary pattern for identifiers: a typed literal whose datatype is the identifier scheme. See Section 2.8.

Data Identifier Semantic Reference Definition Data type Optionality Example value
legalName legalName Official legal name of the economic operator. For member, see integrity rule IR-02. string M Farm Example BV
legalIdentifier legalIdentifier The stable, EU-level identifier of the economic operator. Used by member: for the MVP the EUID taken from the holder's EUBWOID. Scheme SHALL be Euid or PublicSectorBodyId (range of the property). typed literal M for member {"@type":"Euid","@value":"BEEUID0123456789"}
identifier identifier A further identifier of the economic operator, in any scheme from code list 2.8. Used by onboardedBy.operator to identify the organisation hosting the platform. typed literal M for operator {"@type":"VatId","@value":"BE0848278827"}

2.3 Optional attributes

This attribute belongs to the Membership credential subject, alongside the mandatory attributes of Section 2.2. It describes the holder, not the onboarding platform, and is optional: an issuer populates it only where the onboarding platform holds an identifier for the holder other than the one in member.legalIdentifier.

Data Identifier Semantic Reference Definition Data type Example value
holderIdentifier holderIdentifier Stable and unique identifier used within the DSI or dataspace to refer to the holder. To be specified only where it differs from member.legalIdentifier. Supports platforms whose own identifier for a data partner is not recognisable or interoperable at EU level. See IR-06, IR-07. string BE0123456789

The scheme of the value is not stated by a separate attribute. It follows from the onboarding platform, which onboardedBy identifies (Section 2.2.2): a Relying Party that knows the platform knows which identifier that platform issues. Where the scheme has to be stated explicitly and machine-readably, evidence carries it as the datatype of a typed literal (Section 2.6.1).

The holder's official name is carried by member.legalName (Section 2.2.3).

Relationship to evidence (Section 2.6). The two are distinct and may both be present. holderIdentifier is the identifier the onboarding platform uses operationally to refer to the holder — the value that appears in that platform's own APIs and records. evidence records the identification means by which the holder's identity was proven at onboarding. In practice a platform will often use the same value for both, for instance a VAT identifier that was both checked during onboarding and used as the platform's reference thereafter. Where an issuer has only one of the two facts, it SHOULD populate only the corresponding attribute rather than duplicating the value into both.

2.5 Mandatory metadata

Standard VC metadata (issuer, issuance time, expiry, status, credential id) is provided by the chosen VC format and specified per encoding in Chapter 3. This Rulebook defines one additional mandatory metadata attribute.

Data Identifier Semantic Reference Definition Data type Example value
attestation_legal_category attestationLegalCategory Indication that the attestation is a non-qualified EAA (per ARB_12). Qualifies the attestation as a whole, not the member, and is therefore carried at credential level rather than in the credential subject. SHALL be EAA. See Sections 2.1 and 3.3.2. AttestationLegalCategory EAA

2.6 Optional metadata

Data Identifier Semantic Reference Definition Data type Example value
evidence evidence The identification means used to prove the identity of the holder during the initial onboarding process. Metadata about the issuance, carried at credential level. Object or array of objects, see 2.6.1. array of objects see 2.6.1

2.6.1 evidence attribute

Each evidence entry records one identification means presented by, or verified for, the holder during the initial onboarding process — for example the VAT identifier checked in a paper-based onboarding flow. evidence is optional; where the onboarding platform holds such a record, the issuer SHOULD include it.

Data Identifier Semantic Reference Definition Data type Optionality Example value
type @type The evidence entry describes the holder as an economic operator identified by the means used at onboarding. SHALL be EconomicOperator; see Section 3.3.2 for why this declaration is required. class name M in W3C VCDM; omitted in SD-JWT VC EconomicOperator
identifier identifier The identification means: the identifier by which the holder's identity was proven, as a typed literal whose datatype is the identifier scheme. Where no scheme from code list 2.8 applies, an untyped string. typed literal M {"@type":"VatId","@value":"BE0123456789"}

evidence describes the holder. It SHALL NOT be used to carry an identifier of the onboarding platform or of its operator; those belong in onboardedBy (Section 2.2.2). See IR-03 and IR-04.

2.7 Conditional metadata

Data Identifier Semantic Reference Definition Data type Example value
N/A N/A N/A N/A N/A

2.8 Code lists

The following code lists apply to attributes defined in Section 2. Lists are kept fit-for-pilot: they cover the minimal set needed by the three participating DSIs and are not exhaustive.

memberOf — fixes the DSI or dataspace the holder is a member of. The value is agreed at the governance level of the DSI or dataspace itself and registered in the code list below, as a URL under that DSI's or dataspace's own domain. Uniqueness therefore rests on domain ownership, and two DSIs cannot collide by independently choosing the same label.

The memberOf property is typed @id in the European Business Wallet Vocabulary, so the value is an absolute IRI and expands to a node reference, {"@id": "https://agri-x.eu"}. A Relying Party matches it by exact IRI comparison. The value need not dereference to anything, and a Relying Party SHALL NOT depend on it resolving. A relative value SHALL NOT be used: it would be resolved against the document base, so the same credential would yield different IRIs depending on where it was retrieved from. A new DSI or dataspace SHALL register its IRI in this code list before issuing.

Field name Value Meaning Source / vocabulary
memberOf https://agri-x.eu The common agriculture dataspace (federation level). WE BUILD SC2 use case
memberOf https://dih-agrifood.com/ DSI operated by ITC. WE BUILD SC2 use case
memberOf https://djustconnect.be DSI operated by ILVO. WE BUILD SC2 use case
memberOf https://www.dataspace.fi/ DSI operated by DataSpace Europe Oy. WE BUILD SC2 use case

role — roles a member can have. A member may have multiple roles in one credential. Based on the common roles agreed across the piloting DSIs, treating Agri-X as a federation of DSIs.

The role property is typed @id in the European Business Wallet Vocabulary, so each value is an absolute IRI and expands to a node reference. The values below are the DataSpaceRole individuals published in that vocabulary, under the https://w3id.org/ebwv# namespace. A relative value such as DataRightsHolder SHALL NOT be used: it would be resolved against the document base, so the same credential would yield different role IRIs depending on where it was retrieved from.

Field name Value (absolute IRI) Meaning Source / vocabulary
role https://w3id.org/ebwv#DataRightsHolder Owns the rights to the data (e.g. farmers) and can consent to data being shared from a data provider to a data consumer. WE BUILD SC2 use case
role https://w3id.org/ebwv#DataProvider Partner that enables sharing data, e.g. via an API. WE BUILD SC2 use case
role https://w3id.org/ebwv#DataConsumer Partner that wants to use data, e.g. by calling an API. WE BUILD SC2 use case
role https://w3id.org/ebwv#Operator Partner providing DSSC building-block services (identity management, consent management, logging, …). WE BUILD SC2 use case (custom role part of DADS)
role https://w3id.org/ebwv#OnboardingServiceProvider Partner that onboards members into Agri-X; may be a DSI or another technology partner. WE BUILD SC2 use case (role part of Catena-X)

Because values are IRIs, a DSI MAY mint an additional role under a namespace it owns without any change to this Rulebook, to the JSON Schema, or to the vocabulary context, and a Relying Party MAY trust roles by namespace prefix rather than enumerating each value. Roles minted outside https://w3id.org/ebwv# are governed by the minting DSI's own trust framework; see Section 5. New roles intended for common use across the piloting DSIs SHOULD still be published as DataSpaceRole individuals by the WE BUILD Semantics work group and registered here.

Identifier schemes — the datatype of an identifier typed literal, wherever one appears: member.legalIdentifier, onboardedBy.operator.identifier and evidence.identifier. The European Business Wallet Vocabulary publishes these as named individuals used as datatypes, in the pattern {"@type": "VatId", "@value": "…"}.

Field name Scheme Meaning Source / vocabulary Notes
@type Euid The unique identifier attributed in accordance with Article 9 of EBW, taken from the holder's EUBWOID. The expected scheme of member.legalIdentifier in the MVP. [European Business Wallet Vocabulary v0.1], rb-ebwoid In range of legalIdentifier
@type PublicSectorBodyId Identifier of a public sector body. [European Business Wallet Vocabulary v0.1] In range of legalIdentifier
@type VatId VAT identifier. Used by DjustConnect and Tritom as an identification means during onboarding. [European Business Wallet Vocabulary v0.1]
@type Lei, Eori, Tin, Iban, Bic, PeppolId, GlobalLocationNumber, ClearingNumber, Excise Further schemes published by the vocabulary, available where applicable. [European Business Wallet Vocabulary v0.1] Not used in the MVP

Not every identification means in the pilot has a published scheme. The KMG-MID used by the DADS platform (unique farm id issued by the Slovenian Ministry of Agriculture) and any purely platform-specific identifier have no individual in the vocabulary. Until one is published, such a value SHALL be carried as an untyped string — "identifier": "1234567" — which is valid and expands correctly but does not record the scheme. Publishing KmgMid, a generic PlatformSpecific scheme, and an OnboardingEvidence class is the recommended vocabulary addition.

No code list applies to holderIdentifier (Section 2.3). Its scheme is not stated by a separate attribute: it follows from the onboarding platform identified by onboardedBy. Where the scheme has to be stated explicitly, the identifier is carried as evidence instead, using the schemes in the table above.

A common code list distinguishing Legal Person from Natural Person identifiers is being prepared by the WE BUILD Semantics work group. It is not required for this version: the MVP scenario pilots legal persons only. Values will be added once provided.

2.9 Integrity rules

Rule ID Rule statement Why it exists Where enforced Verifier / issuer behavior on failure
IR-01 If termsOfUse.acceptedAt is present, its value SHALL be a datetime less than or equal to the issuance datetime of the credential. Acceptance of the rulebook cannot logically occur after the credential was issued; supports outbound flows where acceptance happened during an earlier onboarding. Issuer business rules, schema validation, and verifier business validation. Issuer SHALL reject the value; verifier SHALL treat termsOfUse as invalid.
IR-02 If the member is a Legal Person, member.legalName SHOULD carry the official name as registered. Improves readability and identification of legal-person holders. Issuer business rules. Issuer SHOULD populate member.legalName; verifier MAY warn if absent.
IR-03 Every evidence entry SHALL record an identification means by which the identity of the holder — the legal person identified by member — was proven during the initial onboarding process. evidence SHALL NOT carry an identifier of the onboarding platform or of its operator. Evidence is about proofing the holder. Recording the platform operator's own identifier there would misidentify the holder, which is the failure this separation exists to prevent. Issuer business rules and verifier business validation. Issuer SHALL NOT issue the credential; verifier SHALL treat the credential as inconsistent.
IR-04 A Relying Party SHALL NOT treat an evidence identifier as an authoritative identifier of the holder. member.legalIdentifier is authoritative. An identification means may be a legacy or platform-local identifier with no recognition or interoperability outside the onboarding platform, and it records how proofing was done rather than who the holder is at EU level. Verifier business validation. Verifier MAY use the value only to reconcile the holder against its own legacy records, never as the basis of identification.
IR-05 role and memberOf values SHALL be absolute IRIs. A Relying Party SHALL match them by exact IRI comparison against code list 2.8, or for role by namespace prefix where its policy permits, and SHALL ignore any value it does not recognise. A relative value is resolved against the document base, so the same credential would yield different IRIs depending on where it was retrieved from. Inferring authorisation from an unrecognised value would grant access on an unverifiable claim. Verifier business validation. Verifier SHALL disregard the unrecognised value and SHALL NOT treat it as conferring any role or membership.
IR-06 If holderIdentifier is present, it SHALL identify the same legal person as member, and SHALL be populated only where its value differs from member.legalIdentifier. It is the same holder under the onboarding platform's own scheme, not a second subject. Repeating a value already carried by member.legalIdentifier adds no information and risks the two drifting apart. Issuer business rules and verifier business validation. Issuer SHALL NOT issue the credential; verifier SHALL treat the credential as inconsistent.
IR-07 A Relying Party SHALL NOT treat holderIdentifier as an authoritative identifier of the holder. member.legalIdentifier is authoritative. The value is the onboarding platform's operational reference for the holder and may have no recognition or interoperability outside that platform. Verifier business validation. Verifier MAY use the value only to reconcile the holder against its own records, never as the basis of identification.

3 Attestation encoding

3.1 ISO/IEC 18013-5-compliant encoding

Not applicable for this version. The Membership Credential is used in online onboarding flows; no proximity / offline presentation requirement applies (ARB_02). The primary format is W3C VCDM (JSON-LD), see Section 3.3, with SD-JWT VC considered as an additional flow (Section 3.2). No ISO/IEC 18013-5 mdoc document type is defined.

3.2 SD-JWT VC-based encoding

Considered as an additional flow (not the primary format for the MVP). The Membership Credential MAY additionally be piloted as an SD-JWT VC. If issued in this format, attestations SHALL comply with the 'SD-JWT VCs' profile specified in [HAIP] (ARB_01b). This Rulebook follows the catalog baseline of [HAIP] draft-03 and [SD-JWT VC] draft-ietf-oauth-sd-jwt-vc-09.

Verifiable Credential Type (vct): eu.we-build.ds-membership.1

The issued SD-JWT VC SHALL use the JOSE typ header value required by [SD-JWT VC]. For draft -09, this value is dc+sd-jwt.

3.2.1 IANA-registered and standard JWT / SD-JWT VC claims

The following claims are standard JWT or SD-JWT VC claims.

Data Identifier Attribute identifier Encoding format Reference / Notes Disclosable
iss iss string (HTTPS URL) Issuer identifier. MUST NOT
iat iat NumericDate Issued-at timestamp. MUST NOT
nbf nbf NumericDate Not-before timestamp, where used. MUST NOT
exp exp NumericDate Expiration timestamp. MUST NOT
jti jti string Unique credential instance identifier. MUST NOT
vct vct string SHALL be eu.we-build.ds-membership.1. MUST NOT
status status JSON object Status-list revocation information. See Section 3.2.3. MUST NOT
cnf cnf JSON object Holder binding confirmation claim, where used. MUST NOT

3.2.2 Private names specific to the Membership Credential

The following private claims map to the attributes defined in Chapter 2. Claim names are identical to the Chapter 2 data identifiers; the two SHALL be kept in step.

Data Identifier Attribute identifier Encoding format Reference / Notes Optionality Disclosable
attestationLegalCategory attestation_legal_category string SHALL be EAA. Credential-level metadata, see Section 2.5. M MUST NOT
id id string (DID) DID of the credential subject. M MUST
member member JSON object The holder as an economic operator. See Section 2.2.3. M MUST
member.legalName member.legalName string Official name of the holder. See IR-02. M MUST
member.legalIdentifier member.legalIdentifier JSON object Stable, EU-level identifier of the holder. See Section 2.2.3. M MUST
member.legalIdentifier.scheme member.legalIdentifier.scheme string Identifier scheme; Euid in the MVP. See code list 2.8. M MUST
member.legalIdentifier.value member.legalIdentifier.value string Identifier value. For the MVP this re-uses the EUID from the EUBWOID. M MUST
memberOf memberOf string (absolute IRI, see code list 2.8) DSI or dataspace membership value. M MUST
holderIdentifier holderIdentifier string Identifier used within the DSI or dataspace to refer to the holder, where it differs from member.legalIdentifier. See IR-06, IR-07. O MUST
role role array of strings (absolute IRIs, see code list 2.8) Non-empty array of role values. M MUST (per element)
termsOfUse termsOfUse JSON object Dataspace governance rulebook information. See Section 2.2.1. M MUST
termsOfUse.url termsOfUse.url string (URI) Reference to the online dataspace governance rulebook. M MUST
termsOfUse.version termsOfUse.version string Version of the online rulebook at the time of acceptance. M MUST
termsOfUse.hash termsOfUse.hash string (SHA-256 hash) SHA-256 hash of the rulebook, represented as 64 hexadecimal characters. M MUST
termsOfUse.acceptedAt termsOfUse.acceptedAt string (date-time) Datetime when the rulebook was accepted, where present. See IR-01. O MUST
onboardedBy onboardedBy JSON object The platform through which the holder was onboarded. See Section 2.2.2. M MUST
onboardedBy.platformId onboardedBy.platformId string (DID) DID identifying the onboarding platform. M MUST
onboardedBy.name onboardedBy.name string Commercial name of the onboarding platform. M MUST
onboardedBy.operator onboardedBy.operator JSON object Economic operator hosting the platform. See Section 2.2.3. M MUST
onboardedBy.operator.legalName onboardedBy.operator.legalName string Legal name of the organisation hosting the platform. M MUST
onboardedBy.operator.identifier onboardedBy.operator.identifier JSON object Identifier of that organisation, as scheme and value. See Section 2.2.3. M MUST
evidence evidence array of JSON objects Identification means used to prove the holder's identity during initial onboarding. Credential-level metadata, see Section 2.6.1 and IR-03, IR-04. O MUST
evidence[].identifier evidence[].identifier JSON object The identification means, as scheme and value. Where no scheme from code list 2.8 applies, a plain string. M within an entry MUST

Identifier representation in this encoding. SD-JWT VC is not JSON-LD, so an identifier is encoded as a plain JSON object with scheme and value members — for example {"scheme": "VatId", "value": "BE0123456789"}. This is the SD-JWT VC form of the typed literal described in Section 2.2.3; the W3C VCDM encoding uses the JSON-LD form {"@type": "VatId", "@value": "BE0123456789"} (Section 3.3). Both carry the same scheme and value, and the scheme is drawn from the same code list 2.8. Where no published scheme applies, the identifier is a plain string in both encodings.

Reading the Disclosable column. MUST means the issuer SHALL make the claim selectively disclosable; MAY means the issuer MAY do so; MUST NOT means the claim SHALL remain in the always-visible signed payload.

Disclosability is independent of whether an attribute is mandatory in the credential. Optionality governs what the issuer SHALL include when issuing; disclosability governs what the holder may withhold when presenting. All subject attributes are therefore selectively disclosable, including the mandatory ones: a Relying Party enforces the set it needs through its presentation request and rejects a presentation that omits any of them, so disclosability costs the Relying Party nothing while leaving the holder in control of everything beyond that set. The claims marked MUST NOT are exactly those required to process or validate the credential itself, which no presentation can omit.

Granularity for structured attributes. Where an attribute is an object or an array, the following applies:

  • Members of termsOfUse, member, onboardedBy and their nested objects SHALL be individually disclosable (structured/recursive selective disclosure), so that a holder can present, for example, termsOfUse.hash and termsOfUse.version without disclosing termsOfUse.acceptedAt, which is onboarding-date metadata a Relying Party rarely needs.
  • Elements of role SHALL be individually disclosable, so that a holder with several roles can present only the role or roles the Relying Party's policy requires.
  • Elements of evidence SHALL be individually disclosable. Evidence reveals how the holder was identity-proofed and carries an identifier that may correlate the holder across services, so a holder SHOULD be able to withhold it entirely or disclose a single entry.

Note that the granularity, not the requirement, is what depends on the data type: MUST applies uniformly to memberOf, role and termsOfUse alike, since all three are part of the atomic set a Relying Party uses to decide whether to accept the credential. The distinction between a string, an array of strings and an object determines only how selective disclosure is applied to each.

3.2.3 Status Claim

The Membership Credential is revocable (Chapter 6). Therefore, an SD-JWT VC-compliant Membership Credential SHALL include a status claim unless a future profile explicitly defines a short-lived, non-revocable variant.

The status claim SHALL use the status-list mechanism used by the other SD-JWT VC rulebooks in this catalog. It SHALL be a JSON object with the following members:

  • type (string): SHALL be "status-list".
  • status_list_credential (string, URI): URI of the Status List Credential that contains the status bitstring.
  • status_list_index (integer, >= 0): zero-based index into the status list bitstring for this credential.
  • status_purpose (string): SHALL be "revocation" for this attestation.

Example:

{
  "status": {
    "type": "status-list",
    "status_list_credential": "https://djustconnect.be/status/membership/1",
    "status_list_index": 42,
    "status_purpose": "revocation"
  }
}

3.2.4 Example Payload

The following non-normative example shows the JWT claim set before SD-JWT processing.

{
  "iss": "https://djustconnect.be",
  "iat": 1782205200,
  "nbf": 1782205200,
  "exp": 1813741200,
  "jti": "urn:uuid:8d6f0e3c-1c2a-4e2b-9f1a-1234567890ab",
  "vct": "eu.we-build.ds-membership.1",
  "attestation_legal_category": "EAA",
  "id": "did:web:example.com:participant:123",
  "member": {
    "legalName": "Farm Example BV",
    "legalIdentifier": {
      "scheme": "Euid",
      "value": "BEEUID0123456789"
    }
  },
  "memberOf": "https://agri-x.eu",
  "holderIdentifier": "BE0123456789",
  "role": ["https://w3id.org/ebwv#DataRightsHolder", "https://w3id.org/ebwv#DataProvider"],
  "termsOfUse": {
    "url": "https://agri-x.eu/rulebook",
    "version": "1.2",
    "hash": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
    "acceptedAt": "2026-06-20T14:30:00Z"
  },
  "onboardedBy": {
    "platformId": "did:web:djustconnect.be",
    "name": "DjustConnect",
    "operator": {
      "legalName": "Instituut voor Landbouw-, Visserij- en Voedingsonderzoek (ILVO)",
      "identifier": {
        "scheme": "VatId",
        "value": "BE0848278827"
      }
    }
  },
  "evidence": [
    {
      "identifier": {
        "scheme": "VatId",
        "value": "BE0123456789"
      }
    }
  ],
  "status": {
    "type": "status-list",
    "status_list_credential": "https://djustconnect.be/status/membership/1",
    "status_list_index": 42,
    "status_purpose": "revocation"
  },
  "cnf": {
    "jwk": {
      "kty": "EC",
      "crv": "P-256",
      "x": "...",
      "y": "..."
    }
  }
}

Note the distinct roles of the VAT identifiers. onboardedBy.operator.identifier is the VAT-ID of ILVO, the organisation hosting the DjustConnect platform. holderIdentifier is the VAT-ID by which DjustConnect refers to the holder, Farm Example BV, in its own communication. evidence[0].identifier is the VAT-ID that was used to prove that holder's identity during initial onboarding. The latter two carry the same value here, as they commonly will; member identifies the same legal person at EU level by its EUID.

The SD-JWT VC JSON Schema and sample payload are published at:

  • data-schemas/sd-jwt/ds-membership-sd-jwt.json
  • data-schemas/sd-jwt/sample-data/ds-membership-sd-jwt-sample.json

3.3 W3C Verifiable Credentials Data Model-based encoding

This is the primary format for the MVP. The Membership Credential is a non-qualified EAA, which is the only legal category permitted to use the W3C VCDM format (ARB_01a). W3C VCDM (JSON-LD) is chosen for semantic interoperability with the dataspaces domain and because it supports selective disclosure via ZKP.

The credential subject carries the attributes defined in Chapter 2. Standard VCDM metadata is used for the credential envelope: issuer, validFrom, validUntil, credentialStatus, and the credential id (unique per credential). The credential subject is modeled by the Membership class

evidence is credential-level, not part of the credential subject. The W3C VCDM v2 context defines evidence inside the type-scoped context of VerifiableCredential. It is therefore only defined as a member of the credential itself. Placing it inside credentialSubject, whose type is Membership, leaves the term undefined; since the VCDM v2 context is @protected and sets no @vocab, that is an expansion failure rather than a silent omission. This placement is also the semantically correct one: evidence records how the issuer verified the holder's identity, which is a statement about the issuance, not an attribute of the subject.

evidence is optional, but where the onboarding platform holds a record of the identification means used, the issuer SHOULD include it: it is what allows a Relying Party operating a legacy system to reconcile the holder against its existing records. It SHALL NOT be confused with onboardedBy.operator.identifier, which identifies the organisation hosting the platform. See IR-03 and IR-04.

Illustrative example (informative):

{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://w3id.org/ebwv/v0.1"
  ],
  "type": ["VerifiableCredential","ElectronicAttestationOfAttributes"],
  "id": "urn:uuid:8d6f0e3c-1c2a-4e2b-9f1a-1234567890ab",
  "issuer": "did:web:djustconnect.be",
  "validFrom": "2026-06-23T09:00:00Z",
  "validUntil": "2027-06-23T09:00:00Z",
  "attestationLegalCategory": "EAA",
  "credentialStatus": {
    "id": "https://djustconnect.be/status/membership#42",
    "type": "BitstringStatusListEntry"
  },
  "evidence": [
    {
      "type": "EconomicOperator",
      "identifier": { "@type": "VatId", "@value": "BE0123456789" }
    }
  ],
  "credentialSubject": {
    "id": "urn:uuid:650805cd-8abf-4f2d-bc23-9552511c7e01",
    "type": "Membership",
    "member": {
      "type": "EconomicOperator",
      "legalName": "Farm Example BV",
      "legalIdentifier": { "@type": "Euid", "@value": "BEEUID0123456789" }
    },
    "memberOf": "https://agri-x.eu",
    "holderIdentifier": "BE0123456789",
      "role": ["https://w3id.org/ebwv#DataRightsHolder", "https://w3id.org/ebwv#DataProvider"],
    "termsOfUse": {
      "type":"GovernanceRulebook",
      "url": "https://agri-x.eu/rulebook",
      "version": "1.2",
      "hash": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
      "acceptedAt": "2026-06-20T14:30:00Z" 
    },
    "onboardedBy": {
      "type": "Platform",
      "platformId": "did:web:djustconnect.be",
      "name": "DjustConnect",
      "operator": {
        "type": "EconomicOperator",
        "legalName": "Instituut voor Landbouw-, Visserij- en Voedingsonderzoek (ILVO)",
        "identifier": { "@type": "VatId", "@value": "BE0848278827" }
      }
    }
  }
}

This example reads: "DjustConnect, a platform hosted by ILVO, onboarded Farm Example BV — proven during onboarding by VAT-ID BE0123456789 and identified at EU level by EUID BEEUID0123456789 — into Agri-X as a Data Rights Holder and Data Provider." The VAT-ID under operator.identifier belongs to ILVO; the VAT-ID under evidence is the identification means used for the holder.

Expanding this example makes three things explicit. role and memberOf become node references{"@id": "https://w3id.org/ebwv#DataProvider"}, {"@id": "https://agri-x.eu"} — because the vocabulary types both properties @id (Section 2.8). This is why their values are absolute IRIs: a relative value would be resolved against the document base, producing a different IRI for every location the credential is served from. holderIdentifier, by contrast, is typed xsd:string and expands as a plain literal. Identifiers expand as typed literals carrying their scheme as the datatype IRI, for example {"@value": "BE0123456789", "@type": "https://w3id.org/ebwv#VatId"}. And attestationLegalCategory expands to a node reference, {"@id": "https://w3id.org/ebwv#EAA"}, because the vocabulary types it @vocab. Section 3.3.2 sets out the type declarations this depends on.

3.3.2 Type declarations required for expansion

The European Business Wallet Vocabulary context defines almost all of its properties inside type-scoped contexts, not at the top level. Only description, issuer, name and termsOfUse are defined globally. A property is therefore undefined — and, since the context sets no @vocab, silently dropped on expansion — unless the enclosing object declares the type that scopes it. Issuers SHALL declare the following types, and verifiers SHOULD reject a credential in which an expected attribute does not survive expansion:

Object type that SHALL be declared Properties it brings into scope
the credential VerifiableCredential and ElectronicAttestationOfAttributes attestationLegalCategory; evidence and the other VCDM envelope terms come from VerifiableCredential
credentialSubject Membership member, memberOf, role, onboardedBy
credentialSubject.member, onboardedBy.operator, each evidence entry EconomicOperator legalName, legalIdentifier, identifier
credentialSubject.onboardedBy Platform platformId, operator
credentialSubject.termsOfUse GovernanceRulebook url, version, hash, acceptedAt

Three consequences worth stating plainly:

  • ElectronicAttestationOfAttributes SHALL appear in the credential-level type. It is what brings attestationLegalCategory into scope; without it the attribute required by Section 2.1 is dropped on expansion. The vocabulary types that property @type: @vocab with a nested context mapping EAA, QEAA and Pub-EAA to their individuals, so the value expands to a node reference — {"@id": "https://w3id.org/ebwv#EAA"} — rather than a string literal. That nested context also sets "@vocab": "ebwv:INVALID_VALUE:", so a value outside the three published categories expands to a visibly invalid IRI instead of being silently dropped.

  • Membership types the credential subject, not the credential. The credential-level type is ["VerifiableCredential", "ElectronicAttestationOfAttributes"], neither of which is Membership. Membership is declared a subclass of CredentialSubject in the vocabulary, and putting it in the credential-level type array leaves every Membership property undefined inside credentialSubject, so member, memberOf, role and onboardedBy are all dropped on expansion without any error being raised.

  • Each evidence entry is typed EconomicOperator. The identifier property is scoped to that type, and the entry does describe the holder as an economic operator identified by the means used at onboarding, so the typing is both necessary and semantically correct. It also satisfies the domain of identifier.

Coverage. Every attribute defined by this Rulebook now has a property term in the European Business Wallet Vocabulary context, and the illustrative example in Section 3.3 expands without loss. This was verified against the context published on 2 September 2026, which added holderIdentifier to the Membership type-scoped context.

Because that context sets no @vocab, an attribute with no term is silently dropped on expansion rather than raising an error. Issuers and verifiers SHOULD therefore treat a successful expansion as something to check rather than assume: a Relying Party SHALL NOT infer the absence of an attribute from an expanded document alone without confirming that its context set defines the corresponding term.

Proof type: an EU-approved Data Integrity proof / VC-JOSE-COSE securing mechanism SHALL be used. [PROOF TYPE TO BE FIXED once the WE BUILD profile selects it; e.g. a Data Integrity ECDSA proof to support ZKP-based selective disclosure.]

4 Attestation usage

The Membership Credential is used in the WE BUILD SC2 "seamless onboarding" scenario. Its use case in this pilot is:

  • Onboarding into a DSI or into Agri-X. The holder presents the EUBWOID to identify their organisation, accepts the applicable dataspace governance rulebook, and receives a Membership Credential reflecting their membership and roles. Information already presented during a previous onboarding flow is trusted and not requested again. Where the onboarding platform holds a identification means used to prove the holder's identity, it is recorded in evidence, so that a later Relying Party can reconcile the holder with its own legacy records.

Potential future use, out of scope for this pilot. Verifying membership and roles during data-sharing transactions between participants of a DSI or dataspace is a plausible further application, but it is not piloted in the MVP and is not specified by this Rulebook. Direct presentation of the Membership Credential inside a data-transfer flow is not assumed: such a flow would most likely require the credential to be transformed into a connector-native credential (for instance an EDC / dataspace protocol participant credential) first. Any statement about data-sharing use elsewhere in this document is to be read in that light.

PID verification. The holder is a legal person identified via the EUBWOID/EUID, not via a PID. A Relying Party therefore does not need to request and verify a PID (ARB_27) for this attestation in the MVP scenario.

Relying Party obligations. A Relying Party SHALL verify the issuer signature/proof, check credential validity (validFrom/validUntil) and revocation status (Section 6), and confirm the issuer is an authorised onboarding service provider for the relevant memberOf value (Section 5). Where rulebook conformance matters, the Relying Party MAY compare termsOfUse.hash / termsOfUse.version against the expected rulebook. A Relying Party MAY additionally use evidence to reconcile the holder with its own legacy records, subject to IR-04. It SHALL match role and memberOf as exact, case-sensitive strings per IR-05.

Presentation requirements. Presentation is online. The primary format is W3C VCDM (JSON-LD) presented via OpenID4VP; an SD-JWT VC flow may be piloted additionally. No proximity/offline presentation is required.

Device binding. The attestation is bound to an organisation (legal person) held in an EU Business Wallet rather than to a natural person's device; the MVP does not require cryptographic binding to a PID. The cryptographically_bound_to attribute (ARB_28) is therefore not included. If a future scenario requires binding to the EUBWOID, add cryptographically_bound_to as optional metadata in Section 2.6 with the corresponding attestation type / vct value.

Transactional data. No transactional data (per [Topic 20]) is defined for this attestation; it is not used for strong user authentication of electronic payments.

5 Trust anchors

This Rulebook (non-qualified EAA): the trust anchor is the public key of the issuing onboarding service provider, resolvable from the issuer DID (issuer in the VCDM credential, e.g. a did:web document). A Relying Party obtains the trust anchor by resolving that DID and verifies the credential proof against it. Authorisation of an issuer to issue Membership Credentials for a given memberOf value is governed by the WE BUILD / dataspace trust framework (WP4).

memberOf vocabulary governance. memberOf values are absolute IRIs registered in code list 2.8 by the governance level of the owning DSI or dataspace, under that DSI's or dataspace's own domain. A Relying Party SHALL match memberOf by exact IRI comparison and confirm WP4 authorisation of the issuer for that specific value (IR-05). Domain ownership makes the values globally unique. Prefix matching does not apply, since each value identifies a distinct DSI or dataspace rather than a term in a shared vocabulary, and a Relying Party SHALL NOT depend on the IRI dereferencing. Registering the value in code list 2.8 before issuing remains a governance obligation, not a convenience.

Role vocabulary governance. role values are absolute IRIs. Those registered in code list 2.8 are the DataSpaceRole individuals published by the WE BUILD Semantics work group under https://w3id.org/ebwv#, independently of this Rulebook's own versioning. Because the vocabulary types role as @id, a Relying Party MAY trust roles by namespace prefix rather than an exact-match list, so that new individuals published under that namespace do not require a Relying Party policy change. A DSI MAY likewise mint role IRIs under a namespace it owns without a change to this Rulebook or to the vocabulary context; such values SHALL be governed by that DSI's own trust framework, and a Relying Party SHALL ignore any role IRI it does not recognise (IR-05).

6 Revocation

The Membership Credential is revocable. Membership and the associated set of roles share a single lifecycle: adding, changing, or removing a role requires re-issuance of the credential and revocation of the superseded one. The credential carries a credentialStatus entry (see the Section 3.3 example) used to publish status.

7 Compliance

The Membership Credential is defined as a non-qualified EAA under the [European Digital Identity Regulation]:

  • It includes an attribute indicating it is an EAA (attestation_legal_category = EAA, Sections 2.1 and 2.5), per ARB_12.
  • It carries attributes about the holder (member.legalIdentifier, member.legalName, memberOf, role) per ARB_15 / ARB_17 (Annex V points b and c).
  • The W3C VCDM (JSON-LD) format is used, which is permitted only for non-qualified EAA (ARB_01a).
  • The trust-anchor location is provided via the issuer DID (Section 5), per ARB_21 / ARB_26.
  • Revocation is addressed in Section 6, per [Topic 7].

8 References

Item Reference Standard name/details
[European Business Wallet Vocabulary v0.1] WE BUILD Semantics work group, European Business Wallet Vocabulary, version 0.1
[European Digital Identity Regulation] Regulation (EU) 2024/1183 of the European Parliament and of the Council of 11 April 2024 amending Regulation (EU) No 910/2014 as regards establishing the European Digital Identity Framework
[HAIP] Yasuda, K. et al, OpenID4VC High Assurance Interoperability Profile, OpenId Foundation, Version draft-03
[IANA-JWT-Claims] IANA JSON Web Token Claims Registry. Available: https://www.iana.org/assignments/jwt/jwt.xhtml
[ISO/IEC 18013-5] ISO/IEC 18013-5, Personal identification --- ISO-compliant driving licence - Part 5: Mobile driving licence (mDL) application, First edition, 2021-09
[OIDC] Sakimura, N. et al., "OpenID Connect Core 1.0", OpenID Foundation. Available: https://openid.net/specs/openid-connect-core-1_0.html
[RFC 3339] RFC 3339 - Date and Time on the Internet: Timestamps, G. Klyne et al., July 2002
[RFC 8610] RFC 8610 - Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures, H. Birkholz et al., June 2019
[RFC 8943] RFC 8943 - Concise Binary Object Representation (CBOR) Tags for Date, M. Jones et al., November 2020
[RFC 8949] RFC 8949 - Concise Binary Object Representation (CBOR), C. Bormann et al., December 2020
[SD-JWT VC] SD-JWT-based Verifiable Credentials (SD-JWT VC). Available: https://datatracker.ietf.org/doc/draft-ietf-oauth-sd-jwt-vc/, version draft-ietf-oauth-sd-jwt-vc-09
[Topic 7] ARF Annex 2 - Topic 7 - Attestation revocation and revocation checking Available: https://eu-digital-identity-wallet.github.io/eudi-doc-architecture-and-reference-framework/latest/annexes/annex-2/annex-2-high-level-requirements/#a237-topic-7-attestation-revocation-and-revocation-checking
[Topic 10] ARF Annex 2 - Topic 10 - Issuing a PID or attestation to a Wallet Unit: https://eu-digital-identity-wallet.github.io/eudi-doc-architecture-and-reference-framework/latest/annexes/annex-2/annex-2-high-level-requirements/#a2310-topic-10-issuing-a-pid-or-attestation-to-a-wallet-unit
[Topic 12] ARF Annex 2 - Topic 12 - Attestation Rulebooks, Available: https://eu-digital-identity-wallet.github.io/eudi-doc-architecture-and-reference-framework/latest/annexes/annex-2/annex-2-high-level-requirements/#a2312-topic-12-attestation-rulebooks
[Topic 20] ARF Annex 2 - Strong User authentication for electronic payments, Available: https://eu-digital-identity-wallet.github.io/eudi-doc-architecture-and-reference-framework/latest/annexes/annex-2/annex-2-high-level-requirements/#a2320-topic-20-strong-user-authentication-for-electronic-payments
[W3C VCDM v2.0] Sporny, M. et al, Verifiable Credentials Data Model v2.0, W3C Recommendation.