Skip to content
Open
Changes from 3 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
5846457
fix: resolved merge conflicts
awoie Jan 27, 2026
1380487
fix: removed credential data set id from 1.0
awoie Jan 27, 2026
2c0bf28
fix: editorial
awoie Jan 27, 2026
b69d883
Added use cases for dataset identifier next to parameter
awoie Feb 18, 2026
f9c993e
Applied Kristina's suggestion
awoie Feb 18, 2026
f7f1a0f
Made credential_dataset_id required for the issuer and optional for t…
awoie Mar 3, 2026
dbacd72
Apply suggestion from Ralph
awoie Mar 10, 2026
b20cbe4
Apply suggestion from Oliver
awoie Mar 10, 2026
efdf8da
Update 1.1/openid-4-verifiable-credential-issuance-1_1.md
awoie Apr 2, 2026
34a25d9
Update 1.1/openid-4-verifiable-credential-issuance-1_1.md
awoie Apr 2, 2026
825710b
Applied Frederik's suggestion
awoie Apr 27, 2026
63e5dc3
Applied Frederik's suggestion
awoie Apr 27, 2026
89dc241
Applied Paul's suggestion
awoie May 19, 2026
0c23080
Applied Paul's suggestion
awoie May 19, 2026
f56820b
fix: applied Frederik's suggestion
awoie Jun 11, 2026
d70dbe2
fix: applied Paul's suggestion
awoie Jun 11, 2026
0657f5c
fix: applied Paul's and Gareth's suggestions
awoie Jun 11, 2026
ff1faca
fix: applied Paul's, Gareth's, Frederik's suggestions
awoie Jun 12, 2026
dbf3e44
Merge branch 'main' into awoie/add-credential-versioning
awoie Jun 12, 2026
93e2526
fix: formatting improved
awoie Jun 12, 2026
dbbd8a6
fix: clarify ordering
awoie Jun 12, 2026
d9e48b8
fix: improved backward compatibility note for wallets
awoie Jun 12, 2026
2f9a1fa
fix: applied Gareth's suggestion
awoie Jun 12, 2026
abd7528
fix: clarified that timestamps won't change the versioin
awoie Jun 12, 2026
9804ab6
Apply suggestions from code review
paulbastian Jul 30, 2026
e50f281
Apply suggestion from @paulbastian
paulbastian Aug 5, 2026
1d171ed
Apply suggestion from @paulbastian
paulbastian Aug 5, 2026
b3b759d
remove DS_Store and add to gitignore
paulbastian Aug 5, 2026
6130266
Apply suggestion from @paulbastian
paulbastian Aug 5, 2026
31d6b65
Merge branch 'main' into awoie/add-credential-versioning
paulbastian Aug 5, 2026
95c6287
add credential dataset identifier and redesign credential dataset ver…
paulbastian Aug 6, 2026
69e8161
Apply suggestions from Joseph
paulbastian Aug 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions 1.1/openid-4-verifiable-credential-issuance-1_1.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,9 @@ This specification also defines the following terms. In the case where a term ha
Credential Dataset:
: A set of one or more claims about a subject, provided by a Credential Issuer.
Comment thread
paulbastian marked this conversation as resolved.

Credential Dataset Identifier
Comment thread
awoie marked this conversation as resolved.
Outdated
: A unique identifier that refers to a specific version of a Credential Dataset. This identifier remains stable across multiple instances of a Credential that share the same set of claim values, even if they differ in cryptographic proofs. When the claim values in the dataset change, a new Credential Dataset Identifier is assigned. This identifier enables Wallets to detect changes to the underlying data and to distinguish between Credentials issued with different versions of a Credential Dataset under the same Credential Configuration.

Comment thread
awoie marked this conversation as resolved.
Credential (or Verifiable Credential (VC)):
: An instance of a Credential Configuration with a particular Credential Dataset, that is signed by an Issuer and can be cryptographically verified. An Issuer may provide multiple Credentials as separate instances of the same Credential Configuration and Credential Dataset but with different cryptographic values. In this specification, the term "Verifiable Credential" is also referred to as "Credential". It's important to note that the use of the term "Credential" here differs from its usage in [@!OpenID.Core] and [@!RFC6749]. In this context, "Credential" specifically does not encompass other meanings such as passwords used for login credentials.

Expand Down Expand Up @@ -1382,6 +1385,7 @@ The following parameters are used in the JSON-encoded Credential Response body:
* `transaction_id`: OPTIONAL. String identifying a Deferred Issuance transaction. This parameter is contained in the response if the Credential Issuer cannot immediately issue the Credential. The value is subsequently used to obtain the respective Credential with the Deferred Credential Endpoint (see (#deferred-credential-issuance)). It MUST not be used if the `credentials` parameter is present. It MUST be invalidated after the Credential for which it was meant has been obtained by the Wallet.
* `interval`: REQUIRED if `transaction_id` is present. Contains a positive number that represents the minimum amount of time in seconds that the Wallet SHOULD wait after receiving the response before sending a new request to the Deferred Credential Endpoint. It MUST NOT be used if the `credentials` parameter is present.
* `notification_id`: OPTIONAL. String identifying one or more Credentials issued in one Credential Response. It MUST be included in the Notification Request as defined in (#notification). It MUST not be used if the `credentials` parameter is not present.
* `credential_dataset_id`: OPTIONAL. An opaque string containing the Credential Dataset Identifier associated with the returned Credential(s). This allows Wallets to detect changes to the underlying Credential Dataset across different Credential Responses.
Comment thread
awoie marked this conversation as resolved.
Outdated

Comment thread
GarethCOliver marked this conversation as resolved.
Additional Credential Response parameters MAY be defined and used. The Wallet MUST ignore any unrecognized parameters.

Expand All @@ -1401,7 +1405,7 @@ Cache-Control: no-store
}
```

Below is a non-normative example of a Credential Response in an immediate issuance flow for multiple Credential instances in JWT VC format (JSON encoded) with an additional `notification_id` parameter:
Below is a non-normative example of a Credential Response in an immediate issuance flow for multiple Credential instances in JWT VC format (JSON encoded) with additional `notification_id` and `credential_dataset_id` parameters:
Comment thread
awoie marked this conversation as resolved.
Outdated

```
HTTP/1.1 200 OK
Expand Down Expand Up @@ -1523,7 +1527,7 @@ A Deferred Credential Response may either contain the requested Credentials or f
* If the Credential Issuer is able to issue the requested Credentials, the Deferred Credential Response MUST use the `credentials` parameter as defined in (#credential-response) and MUST respond with the HTTP status code 200 (see Section 15.3.3 of [@!RFC9110]).
* If the Credential Issuer still requires more time, the Deferred Credential Response MUST use the `interval` and `transaction_id` parameters as defined in (#credential-response) and it MUST respond with the HTTP status code 202 (see Section 15.3.3 of [@!RFC9110]). The value of `transaction_id` MUST be same as the value of `transaction_id` in the Deferred Credential Request.

The Deferred Credential Response MAY use the `notification_id` parameter as defined in (#credential-response).
The Deferred Credential Response MAY use the `notification_id` and the `credential_dataset_id` parameter as defined in (#credential-response).
Comment thread
awoie marked this conversation as resolved.
Outdated

Additional Deferred Credential Response parameters MAY be defined and used.
The Wallet MUST ignore any unrecognized parameters.
Expand All @@ -1547,7 +1551,8 @@ Content-Type: application/json
"credential": "YXNkZnNhZGZkamZqZGFza23....29tZTIzMjMyMzIzMjMy"
}
],
"notification_id": "3fwe98js"
"notification_id": "3fwe98js",
"credential_data_set_id": "Jk0eOt4CXQe1NXK"
Comment thread
awoie marked this conversation as resolved.
Outdated
}
```

Expand Down Expand Up @@ -3609,3 +3614,4 @@ The technology described in this specification was made available from contribut
* use derived origin for `expected_origins` in IAE flow
* add require_interactive_authorization_request to AS metadata
* add interactive_authorization_endpoint to AS metadata section
* add cerdential dataset identifier
Comment thread
awoie marked this conversation as resolved.
Outdated