<?xml version="1.0" encoding="utf-8"?>
<!-- name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Processor - mmark.miek.nl" -->
<rfc version="3" ipr="trust200902" docName="draft-fett-selective-disclosure-jwt-00" submissionType="IETF" category="std" xml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude" consensus="true">

<front>
<title abbrev="oauth-selective-disclosure-jwt">Selective Disclosure JWT (SD-JWT)</title><seriesInfo value="draft-fett-selective-disclosure-jwt-00" stream="IETF" status="standard" name="Internet-Draft"></seriesInfo>
<author initials="D." surname="Fett" fullname="Daniel Fett"><organization>yes.com</organization><address><postal><street></street>
</postal><email>mail@danielfett.de</email>
<uri>https://danielfett.de/</uri>
</address></author>
<author initials="K." surname="Yasuda" fullname="Kristina Yasuda"><organization>Microsoft</organization><address><postal><street></street>
</postal><email>Kristina.Yasuda@microsoft.com</email>
</address></author>
<date/>
<area>Security</area>
<workgroup>Web Authorization Protocol</workgroup>
<keyword>security</keyword>
<keyword>oauth2</keyword>

<abstract>
<t>This document specifies conventions for creating JSON Web Token (JWT)
documents that support selective disclosure of JWT claim values.</t>
</abstract>

</front>

<middle>

<section anchor="Introduction"><name>Introduction</name>
<t>The JSON-based claims in a signed JSON Web Token (JWT) <xref target="RFC7519"></xref> document
are secured against modification using JSON Web Signature (JWS) <xref target="RFC7515"></xref> digital signatures.
A consumer of a signed JWT document that has checked the document's signature can safely assume
that the contents of the document have not been modified.  However, anyone
receiving an unencrypted JWT can read all of the claims and likewise,
anyone with the decryption key receiving an encrypted JWT
can also read all of the claims.</t>
<t>This document describes a format for JWTs that support selective
disclosure (SD-JWT), enabling sharing only a subset of the claims included in
the original JWT instead of releasing all the claims to every verifier.
This document also defines a format for so-called SD-JWT Releases (SD-JWT-R).</t>
<t>One of the common use cases of a signed JWT is representing a user's identity created by an issuer.
In such a use case, there has been no privacy-related concerns with existing JOSE signature schemes,
because when a signed JWT is one-time use, it contains only JWT claims that the user has consented
in real time to release to the verifier. However, when a signed JWT is intended to be multi-use,
the ability to selectively disclose a subset of the claims depending on the verifier becomes crucial
to ensure minimum disclosure and prevent verifier from obtaining claims irrelevant for the use case at hand.</t>
<t>One example of such a multi-use JWT is a verifiable credential, or a
tamper-evident credential with a cryptographically verifiable authorship that
contains claims about a subject. SD-JWTs defined in this document enable such
selective disclosure of claims.</t>
<t>While JWTs for claims describing natural persons are a common use case, the
mechanisms defined in this document can be used for many other use cases as
well.</t>
<t>Note: so far agreed to define holder binding (user's public key contained inside an SD-JWT) as an option.
It is not mandatory since holder binding is use case specific and orthogonal to the general mechanism of
selective disclosure we are trying to define here.</t>

<section anchor="conventions-and-terminology"><name>Conventions and Terminology</name>
<t>The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL
NOT&quot;, &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;, &quot;NOT RECOMMENDED&quot;,
&quot;MAY&quot;, and &quot;OPTIONAL&quot; in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"></xref> <xref target="RFC8174"></xref> when, and only when, they
appear in all capitals, as shown here.</t>
<t><strong>base64url</strong> denotes the URL-safe base64 encoding without padding defined in
Section 2 of <xref target="RFC7515"></xref>.</t>
</section>
</section>

<section anchor="terms-and-definitions"><name>Terms and Definitions</name>

<section anchor="selective-disclosure-jwt-sd-jwt"><name>Selective Disclosure JWT (SD-JWT)</name>
<t>A JWT <xref target="RFC7515"></xref> created by the issuer, which can be signed as a JWS <xref target="RFC7515"></xref>,
   that supports selective disclosure as defined in this document.</t>
</section>

<section anchor="sd-jwt-salt-value-container-svc"><name>SD-JWT Salt/Value Container (SVC)</name>
<t>A JSON object created by the issuer that contains mapping between
   raw claim values that contained in the SD-JWT and the salts for each claim value.</t>
</section>

<section anchor="sd-jwt-release-sd-jwt-r"><name>SD-JWT Release (SD-JWT-R)</name>
<t>A JWT created by the holder that contains a subset of the claim values of an SD-JWT in a verifiable way.</t>
</section>

<section anchor="holder-binding"><name>Holder binding</name>
<t>Ability of the holder to prove legitimate possession of SD-JWT by proving
   control over the same private key during the issuance and presentation. SD-JWT signed by the issuer contains
   a public key or a reference to a public key that matches to the private key controlled by the holder.</t>
</section>

<section anchor="issuer"><name>issuer</name>
<t>An entity that creates SD-JWTs (2.1).</t>
</section>

<section anchor="holder"><name>holder</name>
<t>An entity that received SD-JWTs (2.1) from the issuer and has control over them.</t>
</section>

<section anchor="verifier"><name>verifier</name>
<t>An entity that entity that requests, checks and extracts the claims from SSD-JWT-R (2.2)</t>
<t>Note: discuss if we want to include Client, Authorization Server for the purpose of
ensuring continuity and separating the entity from the actor.</t>
</section>
</section>

<section anchor="concepts"><name>Concepts</name>
<t>In the following section, the concepts of SD-JWTs and SD-JWT Releases are described at a
conceptual level.</t>

<section anchor="creating-an-sd-jwt"><name>Creating an SD-JWT</name>
<t>An SD-JWT, at its core, is a digitally signed document containing hashes over the claim values with unique salts,
optionally the holder's public key or a reference thereto and other metadata. It is digitally signed using the issuer's private key.</t>

<artwork>SD-JWT-DOC = (METADATA, HOLDER-PUBLIC-KEY?, HS-CLAIMS)
SD-JWT = SD-JWT-DOC | SIG(SD-JWT-DOC, ISSUER-PRIV-KEY)
</artwork>
<t><tt>HS-CLAIMS</tt> is usually a simple object with claim names mapped to hashes over the claim values with unique salts:</t>

<artwork>HS-CLAIMS = (
    CLAIM-NAME: HASH(SALT | CLAIM-VALUE)
)*
</artwork>
<t><tt>HS-CLAIMS</tt> can also be nested deeper to capture more complex objects, as will be shown later.</t>
<t>The SD-JWT is sent from the issuer to the holder, together with the mapping of the plain-text claim values, the salt values, and potentially some other information.</t>
</section>

<section anchor="creating-an-sd-jwt-release"><name>Creating an SD-JWT Release</name>
<t>To disclose to a verifier a subset of the SD-JWT claim values, a holder creates a JWS such as the
following:</t>

<artwork>RELEASE-DOC = (METADATA, SALTS)
RELEASE = RELEASE-DOC | SIG(RELEASE-DOC, HOLDER-PRIV-KEY)?
</artwork>
<t>Note that the signature over <tt>RELEASE-DOC</tt> is optional and required if, and only
if, holder binding is desired.</t>
<t><tt>SALTS</tt> is usually a simple object with claim names mapped to values and salts:</t>

<artwork>SALTS = (
    CLAIM-NAME: (DISCLOSED-SALT, DISCLOSED-VALUE)
)
</artwork>
<t>Just as <tt>HS-CLAIMS</tt>, <tt>SALTS</tt> can be more complex as well.</t>
<t>The SD-JWT-R is sent together with the SD-JWT from the holder to the
verifier.</t>
</section>

<section anchor="verifying-an-sd-jwwt-release"><name>Verifying an SD-JWWT Release</name>
<t>A verifier checks that</t>

<ul>
<li><t>if holder binding is desired, the <tt>RELEASE</tt> was signed by
the private key belonging to the public key contained in <tt>SD-JWT-DOC</tt>.</t>
</li>
<li><t>for each claim in <tt>RELEASE</tt>, the hash <tt>HASH(DISCLOSED-SALT | DISCLOSED-VALUE)</tt>
matches the hash under the given claim name in the SD-JWT.</t>
</li>
</ul>
<t>The detailed algorithm is described below.</t>
</section>
</section>

<section anchor="data-formats"><name>Data Formats</name>
<t>This section defines a data format for SD-JWTs (containing hashes of the salted claim values)
and for SD-JWT Salt/Value Containers (containing the mapping of the plain-text claim values
and the salt values).</t>

<section anchor="sd-jwt-format"><name>SD-JWT Format</name>
<t>An SD-JWT is a JWT that is optionally signed using the issuer's private key.</t>

<section anchor="payload"><name>Payload</name>
<t>The payload of an SD-JWT can consist of the following claims.</t>

<section anchor="selectively-disclosable-claims"><name>Selectively Disclosable Claims</name>
<t>An SD-JWT MUST include hashes of the salted claim values that are included by the issuer
under the property <tt>_sd</tt>.</t>
<t>The issuer MUST choose a unique salt value for each claim value. Each salt value
MUST contain at least 128 bits of pseudorandom data, making it hard for an
attacker to guess. The salt value MUST then be encoded as a string. It is
RECOMMENDED to base64url encode at least 16 pseudorandom bytes.</t>
<t>The issuer MUST build the hashes by hashing over a string that is formed by
JSON-encoding an ordered array containing the salt and the claim value, e.g.:
<tt>[&quot;6qMQvRL5haj&quot;,&quot;Peter&quot;]</tt>. The hash value is then base64url-encoded. Note that
the precise JSON encoding can vary, and therefore, the JSON encodings MUST be
sent to the holder along with the SD-JWT, as described below.</t>
<t>The <tt>_sd</tt> object can be a 'flat' object, directly containing all claim names and
hashed claim values without any deeper structure. The <tt>_sd</tt> object can also be a
'structured' object, where some claims and their respective hashes are contained
in places deeper in the structure. It is up to the issuer to decide how to
structure the representation such that it is suitable for the use case. Examples
1 and 2 below show this using the <xref target="OIDC"></xref> <tt>address</tt> claim, a structured claim.
Appendix 1 shows a more complex example using claims from eKYC (todo:
reference).</t>
<t>Note that it is at the issuer's discretion whether to turn the payload of SD-JWT
into a 'flat' or 'structured' <tt>_sd</tt> SD-JWT object.</t>
</section>

<section anchor="holder-public-key"><name>Holder Public Key</name>
<t>If the issuer wants to enable holder binding, it includes a public key
associated with the holder, or a reference thereto.</t>
<t>It is out of the scope of this document to describe how the holder key pair is
established. For example, the holder MAY provide a key pair to the issuer,
the issuer MAY create the key pair for the holder, or
holder and issuer MAY use pre-established key material.</t>
<t>Note: need to define how holder public key is included, right now examples are using <tt>sub_jwk</tt> I think.</t>
</section>

<section anchor="other-claims"><name>Other Claims</name>
<t>The SD-JWT payload MAY contain other claims and will typically contain other JWT claims, such as <tt>iss</tt>, <tt>iat</tt>, etc.</t>
</section>
</section>

<section anchor="example-1-flat-sd-jwt"><name>Example 1 - Flat SD-JWT</name>
<t>This example shows a simple SD-JWT containing user claims. The issuer here
decided to use a completely flat structure, i.e., the <tt>address</tt> claim can only
be disclosed in full.</t>
<t>In this example, these claims are the payload of the SD-JWT:</t>

<sourcecode anchor="example-simple-sd-jwt-claims" type="json">{
  &quot;sub&quot;: &quot;6c5c0a49-b589-431d-bae7-219122a9ec2c&quot;,
  &quot;given_name&quot;: &quot;John&quot;,
  &quot;family_name&quot;: &quot;Doe&quot;,
  &quot;email&quot;: &quot;johndoe@example.com&quot;,
  &quot;phone_number&quot;: &quot;+1-202-555-0101&quot;,
  &quot;address&quot;: {
    &quot;street_address&quot;: &quot;123 Main St&quot;,
    &quot;locality&quot;: &quot;Anytown&quot;,
    &quot;region&quot;: &quot;Anystate&quot;,
    &quot;country&quot;: &quot;US&quot;
  },
  &quot;birthdate&quot;: &quot;1940-01-01&quot;
}
</sourcecode>
<t>The following shows the resulting SD-JWT payload:</t>

<sourcecode anchor="example-simple-sd-jwt-payload" type="json">{
  &quot;iss&quot;: &quot;https://example.com/issuer&quot;,
  &quot;sub_jwk&quot;: {
    &quot;kty&quot;: &quot;RSA&quot;,
    &quot;n&quot;: &quot;6GwTTwcjVyOtKtuGf7ft5PAU0GiDtnD4DGcmtVrFQHVhtx05-DJigfmR-3Tetw-Od5su4TNZYzjh3tQ6Bj1HRdOfGmX9E9YbPw4goKg_d0kM4oZMUd64tmlAUFtX0NYaYnRkjQtok2CJBUq22wucK93JV11T38PYDATqbK9UFqMM3vu07XXlaQGXP1vh4iX04w4dU4d2xTACXho_wKKcV85yvIGrO1eGwwnSilTiqQbak31_VnHGNVVZEk4dnVO7eOc6MVZa-qPkVj77GaILO53TMq69Vp1faJoGFHjha_Ue5D8zfpiAEx2AsAeotIwNk2QT0UZkeZoK23Q-s4p1dQ&quot;,
    &quot;e&quot;: &quot;AQAB&quot;
  },
  &quot;iat&quot;: 1516239022,
  &quot;exp&quot;: 1516247022,
  &quot;_sd&quot;: {
    &quot;sub&quot;: &quot;LbnhkOr5oS7KjeUrxezAu8TG0CpWz0jSixy6tffuo04&quot;,
    &quot;given_name&quot;: &quot;fUMdn88aaoyKTHrvZd6AuLmPraGhPJ0zF5r_JhxCVZs&quot;,
    &quot;family_name&quot;: &quot;9h5vgv6TpFV6GmnPtugiMLl5tHetHeb5X_2cKHjN7cw&quot;,
    &quot;email&quot;: &quot;fPZ92dtYMCN2Nb-2ac_zSH19p4yakUXrZl_-wSgaazA&quot;,
    &quot;phone_number&quot;: &quot;QdSffzNzzd0n60MsSmuiKj6Y6Enk2b-BS-KtEePde5M&quot;,
    &quot;address&quot;: &quot;JFu99NUXPq55f6DFBZ22rMkxMNHayCrfPG0FDsqbyDs&quot;,
    &quot;birthdate&quot;: &quot;Ia1Tc6_Xnt5CJc2LtKcu6Wvqr42glBGGcjGOye8Zf3U&quot;
  }
}
</sourcecode>
<t>The SD-JWT is then signed by the issuer to create a document like the following:</t>

<artwork anchor="example-simple-sd-jwt-encoded">eyJhbGciOiAiUlMyNTYifQ.eyJpc3MiOiAiaHR0cHM6Ly9leGFtcGxlLmNvbS9pc3N1ZXI
iLCAic3ViX2p3ayI6IHsia3R5IjogIlJTQSIsICJuIjogInRYMnhjV3ZqQWtMbDV1TjVnY
VREZURWRnBldk9jTmpqUE0tcnlDV0tqYlVvaDVueURFYUZwcXZ2M1dEZUd3V2VCak1YZWQ
0aHRvdlItM2ZKeVc1UzBkX3RVV2NkRW1TR2VxcmNVbmI4QzcxVlVfcENRWUQ2TUg5WWpSQ
210M1JqbnVGZUhaaUp5bWJnVDhoN2NWTDBpdlRYN3FMOWZ0TUNONUpSb05ZRjVETUdCWGx
2Q2dMQ0dJYmRLNy10a1B5aGRlR2dzRkphX2FNNGZ0NVNSU3NxenJQNzZ2eXY1NVZ4UE1tR
G9HSnJBSm4zOEhsa3FvSUVYaGpqTWgwRUFDdUM4SFhNOVh3b3Z0T3FlWEFPNEdnSndLRXd
XZ3lwYTVRd3FSZUhvUUljVVlxWVRKQ3dpa3J6a2h2dElscUlka1NSS1VTWC1BOWdqdFFfR
S1neXQ5M05HUSIsICJlIjogIkFRQUIifSwgImlhdCI6IDE1MTYyMzkwMjIsICJleHAiOiA
xNTE2MjQ3MDIyLCAiX3NkIjogeyJzdWIiOiAiTGJuaGtPcjVvUzdLamVVcnhlekF1OFRHM
ENwV3owalNpeHk2dGZmdW8wNCIsICJnaXZlbl9uYW1lIjogImZVTWRuODhhYW95S1RIcnZ
aZDZBdUxtUHJhR2hQSjB6RjVyX0poeENWWnMiLCAiZmFtaWx5X25hbWUiOiAiOWg1dmd2N
lRwRlY2R21uUHR1Z2lNTGw1dEhldEhlYjVYXzJjS0hqTjdjdyIsICJlbWFpbCI6ICJmUFo
5MmR0WU1DTjJOYi0yYWNfelNIMTlwNHlha1VYclpsXy13U2dhYXpBIiwgInBob25lX251b
WJlciI6ICJRZFNmZnpOenpkMG42ME1zU211aUtqNlk2RW5rMmItQlMtS3RFZVBkZTVNIiw
gImFkZHJlc3MiOiAiSkZ1OTlOVVhQcTU1ZjZERkJaMjJyTWt4TU5IYXlDcmZQRzBGRHNxY
nlEcyIsICJiaXJ0aGRhdGUiOiAiSWExVGM2X1hudDVDSmMyTHRLY3U2V3ZxcjQyZ2xCR0d
jakdPeWU4WmYzVSJ9fQ.IS4oc1f3XuxhNSnecIXbpT-3ZVwgbjpMSfpyqhFUEE2T_ij3uW
Bqb1_zn0nLvIvXDs8rn6l10ilHwCgpMaPmYAE8_nfZtNwvfAFnwBFjzdrJOJWhZ5dp6UJe
VULOZvjsCw1EpyRbBgIyZ9QiLzRJ_5JS1C1AelDDyXxI3FZYYc3-1MqQMnaXR7AWOct698
t-LsookAA_LxXx-RYKG1wygEp9e9BzgCxQugsdGejMPTZyfaQewGrJalQm8bYvSXKcJ1DG
-T297kFEV_VTaeLCOoan1DS1DtaH48Q13yUUmdwil8jqjpVgf_lU0A7dO4AYmojgvdng-c
MLWSp5YtL_Gw.ewogICAgIl9zZCI6IHsKICAgICAgICAic3ViIjogIltcImVsdVY1T2czZ
1NOSUk4RVluc3hBX0FcIiwgXCI2YzVjMGE0OS1iNTg5LTQzMWQtYmFlNy0yMTkxMjJhOWV
jMmNcIl0iLAogICAgICAgICJnaXZlbl9uYW1lIjogIltcIjZJajd0TS1hNWlWUEdib1M1d
G12VkFcIiwgXCJKb2huXCJdIiwKICAgICAgICAiZmFtaWx5X25hbWUiOiAiW1wiZUk4Wld
tOVFuS1BwTlBlTmVuSGRoUVwiLCBcIkRvZVwiXSIsCiAgICAgICAgImVtYWlsIjogIltcI
lFnX082NHpxQXhlNDEyYTEwOGlyb0FcIiwgXCJqb2huZG9lQGV4YW1wbGUuY29tXCJdIiw
KICAgICAgICAicGhvbmVfbnVtYmVyIjogIltcIkFKeC0wOTVWUHJwVHRONFFNT3FST0FcI
iwgXCIrMS0yMDItNTU1LTAxMDFcIl0iLAogICAgICAgICJhZGRyZXNzIjogIltcIlBjMzN
KTTJMY2hjVV9sSGdndl91ZlFcIiwge1wic3RyZWV0X2FkZHJlc3NcIjogXCIxMjMgTWFpb
iBTdFwiLCBcImxvY2FsaXR5XCI6IFwiQW55dG93blwiLCBcInJlZ2lvblwiOiBcIkFueXN
0YXRlXCIsIFwiY291bnRyeVwiOiBcIlVTXCJ9XSIsCiAgICAgICAgImJpcnRoZGF0ZSI6I
CJbXCJHMDJOU3JRZmpGWFE3SW8wOXN5YWpBXCIsIFwiMTk0MC0wMS0wMVwiXSIKICAgIH0
KfQ
</artwork>
<t>(Line breaks for presentation only.)</t>
</section>

<section anchor="example-2-structured-sd-jwt"><name>Example 2 - Structured SD-JWT</name>
<t>In this example, the issuer decided to create a structured object for the
hashes. This allows for the release of individual members of the address claim
separately.</t>
<t>The user claims are as in Example 1 above. The resulting SD-JWT payload is as follows:</t>

<sourcecode anchor="example-simple_structured-sd-jwt-payload" type="json">{
  &quot;iss&quot;: &quot;https://example.com/issuer&quot;,
  &quot;sub_jwk&quot;: {
    &quot;kty&quot;: &quot;RSA&quot;,
    &quot;n&quot;: &quot;lg9Nie6g-pgoUrDK5Kyni4xZd5ILVnGtBcWx-caAq2FLmtGNIHD9qEzlcLjJCNhrGAUNYOBlkpS0ySJPBlGkdI45WfJLNQVIHwpp1IzgWXPuyM9NvHiPuxef-C6sPZsQeUXTP9YavMBPn0bMt6xi92PGk8KYT9ljajxd8ySbKN8VHsOi34Pdnxy4oe6pOOaoS5vCIFVENXmrTu8pSqWQUsXNju6qsS0wwG6ClifNqp-a6HkOz1UJjdn1w2NVT34LNqzIBuWxFvMQzdXfetgpICwRvj29fJvh9Z6E--b48CHNqppaAzH5DmhMY5DacTxsKwJJmUwo9J6AXrnCwouTdQ&quot;,
    &quot;e&quot;: &quot;AQAB&quot;
  },
  &quot;iat&quot;: 1516239022,
  &quot;exp&quot;: 1516247022,
  &quot;_sd&quot;: {
    &quot;sub&quot;: &quot;LbnhkOr5oS7KjeUrxezAu8TG0CpWz0jSixy6tffuo04&quot;,
    &quot;given_name&quot;: &quot;fUMdn88aaoyKTHrvZd6AuLmPraGhPJ0zF5r_JhxCVZs&quot;,
    &quot;family_name&quot;: &quot;9h5vgv6TpFV6GmnPtugiMLl5tHetHeb5X_2cKHjN7cw&quot;,
    &quot;email&quot;: &quot;fPZ92dtYMCN2Nb-2ac_zSH19p4yakUXrZl_-wSgaazA&quot;,
    &quot;phone_number&quot;: &quot;QdSffzNzzd0n60MsSmuiKj6Y6Enk2b-BS-KtEePde5M&quot;,
    &quot;address&quot;: {
      &quot;street_address&quot;: &quot;4FpVpd563Owh9G3HkGNTN9FiSHT0e6y9-Abk_IuG86M&quot;,
      &quot;locality&quot;: &quot;Kr0BpdZz6yU8HMhjyYHh1EEgJxeUyLIpJEi47iXhp8Y&quot;,
      &quot;region&quot;: &quot;QXxWKvcV4Bc9t3M7MF43W5vdCnWtA9hsYX8ycWLu1LQ&quot;,
      &quot;country&quot;: &quot;3itkoMzrDrinn7T0MUbAmrMm1ya1LzbBgif_50WoFOs&quot;
    },
    &quot;birthdate&quot;: &quot;fvLCnDm3r4VSYcBF3pIlXP4ulEoHuHOfG_YmFZEuxpQ&quot;
  }
}
</sourcecode>
</section>
</section>

<section anchor="sd-jwt-salt-value-container-svc-1"><name>SD-JWT Salt/Value Container (SVC)</name>
<t>Besides the SD-JWT itself, the holder needs to learn the raw claim values that
are contained in the SD-JWT, along with the precise input to the hash
calculation, and the salts. There MAY be other information the issuer needs to
communicate to the holder, such as a private key key if the issuer selected the
holder key pair.</t>

<section anchor="payload-1"><name>Payload</name>
<t>A SD-JWT Salt/Value Container (SVC) is a JSON object containing at least the
top-level property <tt>_sd</tt>. Its structure mirrors the one of <tt>_sd</tt> in
the SD-JWT, but the values are the inputs to the hash calculations the issuer
used, as strings.</t>
<t>The SVC MAY contain further properties, for example, to transport the holder
private key.</t>
</section>

<section anchor="example-1-svc-for-a-flat-sd-jwt"><name>Example 1 - SVC for a Flat SD-JWT</name>
<t>The SVC for Example 1 is as follows:</t>

<sourcecode anchor="example-simple-svc-payload" type="json">{
  &quot;_sd&quot;: {
    &quot;sub&quot;: &quot;[\&quot;eluV5Og3gSNII8EYnsxA_A\&quot;, \&quot;6c5c0a49-b589-431d-bae7-219122a9ec2c\&quot;]&quot;,
    &quot;given_name&quot;: &quot;[\&quot;6Ij7tM-a5iVPGboS5tmvVA\&quot;, \&quot;John\&quot;]&quot;,
    &quot;family_name&quot;: &quot;[\&quot;eI8ZWm9QnKPpNPeNenHdhQ\&quot;, \&quot;Doe\&quot;]&quot;,
    &quot;email&quot;: &quot;[\&quot;Qg_O64zqAxe412a108iroA\&quot;, \&quot;johndoe@example.com\&quot;]&quot;,
    &quot;phone_number&quot;: &quot;[\&quot;AJx-095VPrpTtN4QMOqROA\&quot;, \&quot;+1-202-555-0101\&quot;]&quot;,
    &quot;address&quot;: &quot;[\&quot;Pc33JM2LchcU_lHggv_ufQ\&quot;, {\&quot;street_address\&quot;: \&quot;123 Main St\&quot;, \&quot;locality\&quot;: \&quot;Anytown\&quot;, \&quot;region\&quot;: \&quot;Anystate\&quot;, \&quot;country\&quot;: \&quot;US\&quot;}]&quot;,
    &quot;birthdate&quot;: &quot;[\&quot;G02NSrQfjFXQ7Io09syajA\&quot;, \&quot;1940-01-01\&quot;]&quot;
  }
}
</sourcecode>
</section>

<section anchor="example-2-svc-for-a-structured-sd-jwt"><name>Example 2 - SVC for a Structured SD-JWT</name>
<t>The SVC for Example 2 is as follows:</t>

<sourcecode anchor="example-simple_structured-svc-payload" type="json">{
  &quot;_sd&quot;: {
    &quot;sub&quot;: &quot;[\&quot;eluV5Og3gSNII8EYnsxA_A\&quot;, \&quot;6c5c0a49-b589-431d-bae7-219122a9ec2c\&quot;]&quot;,
    &quot;given_name&quot;: &quot;[\&quot;6Ij7tM-a5iVPGboS5tmvVA\&quot;, \&quot;John\&quot;]&quot;,
    &quot;family_name&quot;: &quot;[\&quot;eI8ZWm9QnKPpNPeNenHdhQ\&quot;, \&quot;Doe\&quot;]&quot;,
    &quot;email&quot;: &quot;[\&quot;Qg_O64zqAxe412a108iroA\&quot;, \&quot;johndoe@example.com\&quot;]&quot;,
    &quot;phone_number&quot;: &quot;[\&quot;AJx-095VPrpTtN4QMOqROA\&quot;, \&quot;+1-202-555-0101\&quot;]&quot;,
    &quot;address&quot;: {
      &quot;street_address&quot;: &quot;[\&quot;Pc33JM2LchcU_lHggv_ufQ\&quot;, \&quot;123 Main St\&quot;]&quot;,
      &quot;locality&quot;: &quot;[\&quot;G02NSrQfjFXQ7Io09syajA\&quot;, \&quot;Anytown\&quot;]&quot;,
      &quot;region&quot;: &quot;[\&quot;lklxF5jMYlGTPUovMNIvCA\&quot;, \&quot;Anystate\&quot;]&quot;,
      &quot;country&quot;: &quot;[\&quot;nPuoQnkRFq3BIeAm7AnXFA\&quot;, \&quot;US\&quot;]&quot;
    },
    &quot;birthdate&quot;: &quot;[\&quot;5bPs1IquZNa0hkaFzzzZNw\&quot;, \&quot;1940-01-01\&quot;]&quot;
  }
}
</sourcecode>
</section>
</section>

<section anchor="sd-jwt-and-svc-combined-format"><name>SD-JWT and SVC Combined Format</name>
<t>For transporting the SVC together with the SD-JWT from the issuer to the holder,
the SVC is base64ur-encoded and appended to the SD-JWT using <tt>.</tt> as the
separator. For Example 1, the combined format looks as follows:</t>

<artwork anchor="example-simple-combined-sd-jwt-svc">eyJhbGciOiAiUlMyNTYifQ.eyJpc3MiOiAiaHR0cHM6Ly9leGFtcGxlLmNvbS9pc3N1ZXI
iLCAic3ViX2p3ayI6IHsia3R5IjogIlJTQSIsICJuIjogIjZHd1RUd2NqVnlPdEt0dUdmN
2Z0NVBBVTBHaUR0bkQ0REdjbXRWckZRSFZodHgwNS1ESmlnZm1SLTNUZXR3LU9kNXN1NFR
OWll6amgzdFE2QmoxSFJkT2ZHbVg5RTlZYlB3NGdvS2dfZDBrTTRvWk1VZDY0dG1sQVVGd
FgwTllhWW5Sa2pRdG9rMkNKQlVxMjJ3dWNLOTNKVjExVDM4UFlEQVRxYks5VUZxTU0zdnU
wN1hYbGFRR1hQMXZoNGlYMDR3NGRVNGQyeFRBQ1hob193S0tjVjg1eXZJR3JPMWVHd3duU
2lsVGlxUWJhazMxX1ZuSEdOVlZaRWs0ZG5WTzdlT2M2TVZaYS1xUGtWajc3R2FJTE81M1R
NcTY5VnAxZmFKb0dGSGpoYV9VZTVEOHpmcGlBRXgyQXNBZW90SXdOazJRVDBVWmtlWm9LM
jNRLXM0cDFkUSIsICJlIjogIkFRQUIifSwgImlhdCI6IDE1MTYyMzkwMjIsICJleHAiOiA
xNTE2MjQ3MDIyLCAiX3NkIjogeyJzdWIiOiAiTGJuaGtPcjVvUzdLamVVcnhlekF1OFRHM
ENwV3owalNpeHk2dGZmdW8wNCIsICJnaXZlbl9uYW1lIjogImZVTWRuODhhYW95S1RIcnZ
aZDZBdUxtUHJhR2hQSjB6RjVyX0poeENWWnMiLCAiZmFtaWx5X25hbWUiOiAiOWg1dmd2N
lRwRlY2R21uUHR1Z2lNTGw1dEhldEhlYjVYXzJjS0hqTjdjdyIsICJlbWFpbCI6ICJmUFo
5MmR0WU1DTjJOYi0yYWNfelNIMTlwNHlha1VYclpsXy13U2dhYXpBIiwgInBob25lX251b
WJlciI6ICJRZFNmZnpOenpkMG42ME1zU211aUtqNlk2RW5rMmItQlMtS3RFZVBkZTVNIiw
gImFkZHJlc3MiOiAiSkZ1OTlOVVhQcTU1ZjZERkJaMjJyTWt4TU5IYXlDcmZQRzBGRHNxY
nlEcyIsICJiaXJ0aGRhdGUiOiAiSWExVGM2X1hudDVDSmMyTHRLY3U2V3ZxcjQyZ2xCR0d
jakdPeWU4WmYzVSJ9fQ.rJmWAVghpour5wvdqw8xwdpSEEDMwGJKX1UZ-4mLxYUFv2qCJJ
gQrwtXNccxHpR86F3_51zT9v2TffwZcuU3q4xi-YdyUrVtB6PHHo8F11qanGtnhxqAcFMM
XXQRb7iO_P2Vr7j0Ad8yMcxLituyVLxwjJ0T1s3X-PTomH_zb2wsNsSgrltpjNdoVDHE9k
K8uOWmvx8VMXlaxks74gWjFQoBpnySrlo6PDy2V8zGnj7qc93Qo2Ei01rLYua2jMZJQlRE
ZEp1mI25WYGuz4lJMMjq_SsysLr_r1qGCk1YU12yVz9-xtgL7zVz7KEUY-8TjQEsr_UTbg
vcSUDyd3Smgg.ewogICAgIl9zZCI6IHsKICAgICAgICAic3ViIjogIltcImVsdVY1T2czZ
1NOSUk4RVluc3hBX0FcIiwgXCI2YzVjMGE0OS1iNTg5LTQzMWQtYmFlNy0yMTkxMjJhOWV
jMmNcIl0iLAogICAgICAgICJnaXZlbl9uYW1lIjogIltcIjZJajd0TS1hNWlWUEdib1M1d
G12VkFcIiwgXCJKb2huXCJdIiwKICAgICAgICAiZmFtaWx5X25hbWUiOiAiW1wiZUk4Wld
tOVFuS1BwTlBlTmVuSGRoUVwiLCBcIkRvZVwiXSIsCiAgICAgICAgImVtYWlsIjogIltcI
lFnX082NHpxQXhlNDEyYTEwOGlyb0FcIiwgXCJqb2huZG9lQGV4YW1wbGUuY29tXCJdIiw
KICAgICAgICAicGhvbmVfbnVtYmVyIjogIltcIkFKeC0wOTVWUHJwVHRONFFNT3FST0FcI
iwgXCIrMS0yMDItNTU1LTAxMDFcIl0iLAogICAgICAgICJhZGRyZXNzIjogIltcIlBjMzN
KTTJMY2hjVV9sSGdndl91ZlFcIiwge1wic3RyZWV0X2FkZHJlc3NcIjogXCIxMjMgTWFpb
iBTdFwiLCBcImxvY2FsaXR5XCI6IFwiQW55dG93blwiLCBcInJlZ2lvblwiOiBcIkFueXN
0YXRlXCIsIFwiY291bnRyeVwiOiBcIlVTXCJ9XSIsCiAgICAgICAgImJpcnRoZGF0ZSI6I
CJbXCJHMDJOU3JRZmpGWFE3SW8wOXN5YWpBXCIsIFwiMTk0MC0wMS0wMVwiXSIKICAgIH0
KfQ
</artwork>
<t>(Line breaks for presentation only.)</t>
</section>

<section anchor="sd-jwt-r-format"><name>SD-JWT-R Format</name>
<t>The following shows the contents of an SD-JWT-R for Example 1:</t>

<sourcecode anchor="example-simple-release-payload" type="json">{
  &quot;nonce&quot;: &quot;2GLC42sKQveCfGfryNRN9w&quot;,
  &quot;aud&quot;: &quot;https://example.com/verifier&quot;,
  &quot;_sd&quot;: {
    &quot;given_name&quot;: &quot;[\&quot;6Ij7tM-a5iVPGboS5tmvVA\&quot;, \&quot;John\&quot;]&quot;,
    &quot;family_name&quot;: &quot;[\&quot;eI8ZWm9QnKPpNPeNenHdhQ\&quot;, \&quot;Doe\&quot;]&quot;,
    &quot;address&quot;: &quot;[\&quot;Pc33JM2LchcU_lHggv_ufQ\&quot;, {\&quot;street_address\&quot;: \&quot;123 Main St\&quot;, \&quot;locality\&quot;: \&quot;Anytown\&quot;, \&quot;region\&quot;: \&quot;Anystate\&quot;, \&quot;country\&quot;: \&quot;US\&quot;}]&quot;
  }
}
</sourcecode>
<t>For each claim, an array of the salt and the claim value is contained in the
<tt>_sd</tt> object.</t>
<t>Again, the SD-JWT-R follows the same structure as the <tt>_sd</tt> in the SD-JWT. For Example 2, a SD-JWT-R limiting <tt>address</tt> to <tt>region</tt> and <tt>country</tt> only could look as follows:</t>

<sourcecode anchor="example-simple_structured-release-payload" type="json">{
  &quot;nonce&quot;: &quot;2GLC42sKQveCfGfryNRN9w&quot;,
  &quot;aud&quot;: &quot;https://example.com/verifier&quot;,
  &quot;_sd&quot;: {
    &quot;given_name&quot;: &quot;[\&quot;6Ij7tM-a5iVPGboS5tmvVA\&quot;, \&quot;John\&quot;]&quot;,
    &quot;family_name&quot;: &quot;[\&quot;eI8ZWm9QnKPpNPeNenHdhQ\&quot;, \&quot;Doe\&quot;]&quot;,
    &quot;birthdate&quot;: &quot;[\&quot;5bPs1IquZNa0hkaFzzzZNw\&quot;, \&quot;1940-01-01\&quot;]&quot;,
    &quot;address&quot;: {
      &quot;region&quot;: &quot;[\&quot;lklxF5jMYlGTPUovMNIvCA\&quot;, \&quot;Anystate\&quot;]&quot;,
      &quot;country&quot;: &quot;[\&quot;nPuoQnkRFq3BIeAm7AnXFA\&quot;, \&quot;US\&quot;]&quot;
    }
  }
}
</sourcecode>
<t>The SD-JWT-R MAY contain further claims, for example, to ensure a binding
to a concrete transaction (in the example the <tt>nonce</tt> and <tt>aud</tt> claims).</t>
<t>If holder binding is desired, the SD-JWT-R is signed by the holder. If no
holder binding is to be used, the <tt>none</tt> algorithm is used, i.e., the document
is not signed.</t>
<t>In any case, the result is encoded as described in <xref target="RFC7519"></xref> (here for Example 1):</t>

<artwork anchor="example-simple-release-encoded">eyJhbGciOiAiUlMyNTYifQ.eyJub25jZSI6ICIyR0xDNDJzS1F2ZUNmR2ZyeU5STjl3Iiw
gImF1ZCI6ICJodHRwczovL2V4YW1wbGUuY29tL3ZlcmlmaWVyIiwgIl9zZCI6IHsiZ2l2Z
W5fbmFtZSI6ICJbXCI2SWo3dE0tYTVpVlBHYm9TNXRtdlZBXCIsIFwiSm9oblwiXSIsICJ
mYW1pbHlfbmFtZSI6ICJbXCJlSThaV205UW5LUHBOUGVOZW5IZGhRXCIsIFwiRG9lXCJdI
iwgImFkZHJlc3MiOiAiW1wiUGMzM0pNMkxjaGNVX2xIZ2d2X3VmUVwiLCB7XCJzdHJlZXR
fYWRkcmVzc1wiOiBcIjEyMyBNYWluIFN0XCIsIFwibG9jYWxpdHlcIjogXCJBbnl0b3duX
CIsIFwicmVnaW9uXCI6IFwiQW55c3RhdGVcIiwgXCJjb3VudHJ5XCI6IFwiVVNcIn1dIn1
9.b0hG3v71rzHvtoDTdroZ9m-lt9tf8nobFKb2YGiyGOjIklfcKc2KWj72oi_tBKcOCqZh
dX6IV4BRXIw-aspQfLh-xBrNLuGqiC-Y3rZBBlWw0WWnbbtsy1tj8yZOiXBr8vO6mCgZGA
d4MgPYPd-QzOr9ukObYDRB4I24xHrqlAEYPJIzSw9MI_dEmIkNnAuIfLQKiuyTqVVVp6Ly
pBIz6fBLm6NOLC4-uVXlOzI91iT4zlkrhP0-vj8TmfB-XL9aD3-xqytvLBHTESct49OSRZ
FrwkLUKTM56_6KW3pG7Ucuv8VnpHXHIka0SGRaOh8x6v5-rCQJl_IbM8wb7CSHvQ
</artwork>
<t>(Line breaks for presentation only.)</t>
</section>

<section anchor="presentation-format"><name>Presentation Format</name>
<t>The SD-JWT and the SD-JWT-R can be combined into one document using <tt>.</tt> as a separator (here for Example 1):</t>

<artwork anchor="example-simple-combined-sd-jwt-sd-jwt-release">eyJhbGciOiAiUlMyNTYifQ.eyJpc3MiOiAiaHR0cHM6Ly9leGFtcGxlLmNvbS9pc3N1ZXI
iLCAic3ViX2p3ayI6IHsia3R5IjogIlJTQSIsICJuIjogIjZHd1RUd2NqVnlPdEt0dUdmN
2Z0NVBBVTBHaUR0bkQ0REdjbXRWckZRSFZodHgwNS1ESmlnZm1SLTNUZXR3LU9kNXN1NFR
OWll6amgzdFE2QmoxSFJkT2ZHbVg5RTlZYlB3NGdvS2dfZDBrTTRvWk1VZDY0dG1sQVVGd
FgwTllhWW5Sa2pRdG9rMkNKQlVxMjJ3dWNLOTNKVjExVDM4UFlEQVRxYks5VUZxTU0zdnU
wN1hYbGFRR1hQMXZoNGlYMDR3NGRVNGQyeFRBQ1hob193S0tjVjg1eXZJR3JPMWVHd3duU
2lsVGlxUWJhazMxX1ZuSEdOVlZaRWs0ZG5WTzdlT2M2TVZaYS1xUGtWajc3R2FJTE81M1R
NcTY5VnAxZmFKb0dGSGpoYV9VZTVEOHpmcGlBRXgyQXNBZW90SXdOazJRVDBVWmtlWm9LM
jNRLXM0cDFkUSIsICJlIjogIkFRQUIifSwgImlhdCI6IDE1MTYyMzkwMjIsICJleHAiOiA
xNTE2MjQ3MDIyLCAiX3NkIjogeyJzdWIiOiAiTGJuaGtPcjVvUzdLamVVcnhlekF1OFRHM
ENwV3owalNpeHk2dGZmdW8wNCIsICJnaXZlbl9uYW1lIjogImZVTWRuODhhYW95S1RIcnZ
aZDZBdUxtUHJhR2hQSjB6RjVyX0poeENWWnMiLCAiZmFtaWx5X25hbWUiOiAiOWg1dmd2N
lRwRlY2R21uUHR1Z2lNTGw1dEhldEhlYjVYXzJjS0hqTjdjdyIsICJlbWFpbCI6ICJmUFo
5MmR0WU1DTjJOYi0yYWNfelNIMTlwNHlha1VYclpsXy13U2dhYXpBIiwgInBob25lX251b
WJlciI6ICJRZFNmZnpOenpkMG42ME1zU211aUtqNlk2RW5rMmItQlMtS3RFZVBkZTVNIiw
gImFkZHJlc3MiOiAiSkZ1OTlOVVhQcTU1ZjZERkJaMjJyTWt4TU5IYXlDcmZQRzBGRHNxY
nlEcyIsICJiaXJ0aGRhdGUiOiAiSWExVGM2X1hudDVDSmMyTHRLY3U2V3ZxcjQyZ2xCR0d
jakdPeWU4WmYzVSJ9fQ.rJmWAVghpour5wvdqw8xwdpSEEDMwGJKX1UZ-4mLxYUFv2qCJJ
gQrwtXNccxHpR86F3_51zT9v2TffwZcuU3q4xi-YdyUrVtB6PHHo8F11qanGtnhxqAcFMM
XXQRb7iO_P2Vr7j0Ad8yMcxLituyVLxwjJ0T1s3X-PTomH_zb2wsNsSgrltpjNdoVDHE9k
K8uOWmvx8VMXlaxks74gWjFQoBpnySrlo6PDy2V8zGnj7qc93Qo2Ei01rLYua2jMZJQlRE
ZEp1mI25WYGuz4lJMMjq_SsysLr_r1qGCk1YU12yVz9-xtgL7zVz7KEUY-8TjQEsr_UTbg
vcSUDyd3Smgg.eyJhbGciOiAiUlMyNTYifQ.eyJub25jZSI6ICIyR0xDNDJzS1F2ZUNmR2
ZyeU5STjl3IiwgImF1ZCI6ICJodHRwczovL2V4YW1wbGUuY29tL3ZlcmlmaWVyIiwgIl9z
ZCI6IHsiZ2l2ZW5fbmFtZSI6ICJbXCI2SWo3dE0tYTVpVlBHYm9TNXRtdlZBXCIsIFwiSm
9oblwiXSIsICJmYW1pbHlfbmFtZSI6ICJbXCJlSThaV205UW5LUHBOUGVOZW5IZGhRXCIs
IFwiRG9lXCJdIiwgImFkZHJlc3MiOiAiW1wiUGMzM0pNMkxjaGNVX2xIZ2d2X3VmUVwiLC
B7XCJzdHJlZXRfYWRkcmVzc1wiOiBcIjEyMyBNYWluIFN0XCIsIFwibG9jYWxpdHlcIjog
XCJBbnl0b3duXCIsIFwicmVnaW9uXCI6IFwiQW55c3RhdGVcIiwgXCJjb3VudHJ5XCI6IF
wiVVNcIn1dIn19.b0hG3v71rzHvtoDTdroZ9m-lt9tf8nobFKb2YGiyGOjIklfcKc2KWj7
2oi_tBKcOCqZhdX6IV4BRXIw-aspQfLh-xBrNLuGqiC-Y3rZBBlWw0WWnbbtsy1tj8yZOi
XBr8vO6mCgZGAd4MgPYPd-QzOr9ukObYDRB4I24xHrqlAEYPJIzSw9MI_dEmIkNnAuIfLQ
KiuyTqVVVp6LypBIz6fBLm6NOLC4-uVXlOzI91iT4zlkrhP0-vj8TmfB-XL9aD3-xqytvL
BHTESct49OSRZFrwkLUKTM56_6KW3pG7Ucuv8VnpHXHIka0SGRaOh8x6v5-rCQJl_IbM8w
b7CSHvQ
</artwork>
<t>(Line breaks for presentation only.)</t>
</section>
</section>

<section anchor="verification"><name>Verification</name>
<t>Verifiers MUST follow <xref target="RFC8725"></xref> for checking the SD-JWT and, if signed, the
SD-JWT Release.</t>
<t>Verifiers MUST go through (at least) the following steps before
trusting/using any of the contents of an SD-JWT:</t>

<ol>
<li><t>Determine if holder binding is to be checked for the SD-JWT. Refer to <xref target="holder_binding_security"></xref> for details.</t>
</li>
<li><t>Check that the presentation consists of six <tt>.</tt>-separated elements; if holder binding is not required, the last element can be empty.</t>
</li>
<li><t>Separate the SD-JWT from the SD-JWT Release.</t>
</li>
<li><t>Validate the SD-JWT:</t>

<ol>
<li><t>Ensure that a signing algorithm was used that was deemed secure for the application. Refer to <xref target="RFC8725"></xref>, Sections 3.1 and 3.2 for details.</t>
</li>
<li><t>Validate the signature over the SD-JWT.</t>
</li>
<li><t>Validate the issuer of the SD-JWT and that the signing key belongs to this issuer.</t>
</li>
<li><t>Check that the SD-JWT is valid using <tt>nbf</tt>, <tt>iat</tt>, and <tt>exp</tt> claims, if provided in the SD-JWT.</t>
</li>
<li><t>Check that the claim <tt>_sd</tt> is present in the SD-JWT.</t>
</li>
</ol></li>
<li><t>Validate the SD-JWT Release:</t>

<ol>
<li><t>If holder binding is required, validate the signature over the SD-JWT using the same steps as for the SD-JWT plus the following steps:</t>

<ol>
<li><t>Determine that the public key for the private key that used to sign the SD-JWT-R is bound to the SD-JWT, i.e., the SD-JWT either contains a reference to the public key or contains the public key itself.</t>
</li>
<li><t>Determine that the SD-JWT-R is bound to the current transaction and was created for this verifier (replay protection). This is usually achieved by a <tt>nonce</tt> and <tt>aud</tt> field within the SD-JWT Release.</t>
</li>
</ol></li>
<li><t>For each claim in the SD-JWT Release:</t>

<ol>
<li><t>Ensure that the claim is present as well in <tt>_sd</tt> in the SD-JWT.
If <tt>_sd</tt> is structured, the claim MUST be present at the same
place within the structure.</t>
</li>
<li><t>Check that the base64url-encoded hash of the claim value in the SD-JWT-R
(which includes the salt and the actual claim value) matches
the hash provided in the SD-JWT.</t>
</li>
<li><t>Ensure that the claim value in the SD-JWT-R is a JSON-encoded
array of exactly two values.</t>
</li>
<li><t>Store the second of the two values.</t>
</li>
</ol></li>
<li><t>Once all necessary claims have been verified, their values can be
validated and used according to the requirements of the application. It
MUST be ensured that all claims required for the application have been
released.</t>
</li>
</ol></li>
</ol>
<t>If any step fails, the input is not valid and processing MUST be aborted.</t>
</section>

<section anchor="security_considerations"><name>Security Considerations</name>
<t>For the security of this scheme, the following properties are required of the hash function:</t>

<ul>
<li><t>Given a claim value, a salt, and the resulting hash, it is hard to find a second salt value so that HASH(salt | claim_value) equals the hash.</t>
</li>
</ul>
<t>Add: The Salts must be random/long enough so that the attacker cannot brute force them.</t>
<t>Note: No need for the wallet-generated hashes? to prevent issuer-verifier collusion</t>

<section anchor="holder_binding_security"><name>Holder Binding</name>
</section>
</section>

<section anchor="privacy_considerations"><name>Privacy Considerations</name>

<section anchor="claim-names"><name>Claim Names</name>
<t>Claim names are not hashed in the SD-JWT and are used as keys in a key-value pair, where the value is the hash.
This is because SD-JWT already reveals information about the issuer and the schema,
and revealing the claim names does not provide any additional information.</t>
</section>

<section anchor="unlinkability"><name>Unlinkability</name>
<t>It is also important to note that this format enables selective disclosure of claims, but
in itself it does not achieve unlinkability of the subject of a JWS document.</t>
</section>
</section>

<section anchor="Acknowledgements"><name>Acknowledgements</name>
<t>We would like to thank ...</t>
</section>

<section anchor="iana_considerations"><name>IANA Considerations</name>
<t>TBD</t>
</section>

</middle>

<back>
<references><name>Normative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7519.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7515.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
</references>
<references><name>Informative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8725.xml"/>
<reference anchor="OIDC" target="https://openid.net/specs/openid-connect-core-1_0.html">
  <front>
    <title>OpenID Connect Core 1.0 incorporating errata set 1</title>
    <author fullname="Nat Sakimura" initials="N." surname="Sakimura">
      <organization>NRI</organization>
    </author>
    <author fullname="John Bradley" initials="J." surname="Bradley">
      <organization>Ping Identity</organization>
    </author>
    <author fullname="Mike Jones" initials="M." surname="Jones">
      <organization>Microsoft</organization>
    </author>
    <author fullname="Breno de Medeiros" initials="B." surname="de Medeiros">
      <organization>Google</organization>
    </author>
    <author fullname="Chuck Mortimore" initials="C." surname="Mortimore">
      <organization>Salesforce</organization>
    </author>
    <date year="2014" month="Nov" day="8"></date>
  </front>
</reference>
</references>

<section anchor="additional-examples"><name>Additional Examples</name>

<section anchor="example-3-complex-structured-sd-jwt"><name>Example 3 - Complex Structured SD-JWT</name>
<t>In this example, a complex object such as those used for ekyc (todo reference) is used.</t>
<t>These claims are the payload of the SD-JWT:</t>

<sourcecode anchor="example-complex_structured-sd-jwt-claims" type="json">{
  &quot;verified_claims&quot;: {
    &quot;verification&quot;: {
      &quot;trust_framework&quot;: &quot;de_aml&quot;,
      &quot;time&quot;: &quot;2012-04-23T18:25Z&quot;,
      &quot;verification_process&quot;: &quot;f24c6f-6d3f-4ec5-973e-b0d8506f3bc7&quot;,
      &quot;evidence&quot;: [
        {
          &quot;type&quot;: &quot;document&quot;,
          &quot;method&quot;: &quot;pipp&quot;,
          &quot;time&quot;: &quot;2012-04-22T11:30Z&quot;,
          &quot;document&quot;: {
            &quot;type&quot;: &quot;idcard&quot;,
            &quot;issuer&quot;: {
              &quot;name&quot;: &quot;Stadt Augsburg&quot;,
              &quot;country&quot;: &quot;DE&quot;
            },
            &quot;number&quot;: &quot;53554554&quot;,
            &quot;date_of_issuance&quot;: &quot;2010-03-23&quot;,
            &quot;date_of_expiry&quot;: &quot;2020-03-22&quot;
          }
        }
      ]
    },
    &quot;claims&quot;: {
      &quot;given_name&quot;: &quot;Max&quot;,
      &quot;family_name&quot;: &quot;Meier&quot;,
      &quot;birthdate&quot;: &quot;1956-01-28&quot;,
      &quot;place_of_birth&quot;: {
        &quot;country&quot;: &quot;DE&quot;,
        &quot;locality&quot;: &quot;Musterstadt&quot;
      },
      &quot;nationalities&quot;: [
        &quot;DE&quot;
      ],
      &quot;address&quot;: {
        &quot;locality&quot;: &quot;Maxstadt&quot;,
        &quot;postal_code&quot;: &quot;12344&quot;,
        &quot;country&quot;: &quot;DE&quot;,
        &quot;street_address&quot;: &quot;An der Weide 22&quot;
      }
    }
  },
  &quot;birth_middle_name&quot;: &quot;Timotheus&quot;,
  &quot;salutation&quot;: &quot;Dr.&quot;,
  &quot;msisdn&quot;: &quot;49123456789&quot;
}
</sourcecode>
<t>The following shows the resulting SD-JWT payload:</t>

<sourcecode anchor="example-complex_structured-sd-jwt-payload" type="json">{
  &quot;iss&quot;: &quot;https://example.com/issuer&quot;,
  &quot;sub_jwk&quot;: {
    &quot;kty&quot;: &quot;RSA&quot;,
    &quot;n&quot;: &quot;wlcpuJjcdshL2NqMsT2HMJiqyPFEPQZ2FMXKD_r3an-09_k-cdoJifVodKUZ8QBiU6w_JUYh3lScrJ-TSEueS-mGU9Kkn_9q5xzXbnTEy2P6N_4b7NNaeJe25DnklEPUJU5tRcjODtHDO7MIgsIPK-NtCW6x7YB2x6_3H2t6EfRtDjZe-adelOA09UQ8x9d8DBOR2rxaFm3_QAlAfHvD7lLlewAiGvjMTd614FkA8CEqlnSWl4gD2Pd3A5J3X_2UDK0IqIb8ed8_b2yToRIwqzU1g1p2VEZBJ0XGSbeSY9e-EN_ScrVT5YBwoIWovB0AeSsMj5K8ekedak9PwEfMvQ&quot;,
    &quot;e&quot;: &quot;AQAB&quot;
  },
  &quot;iat&quot;: 1516239022,
  &quot;exp&quot;: 1516247022,
  &quot;_sd&quot;: {
    &quot;verified_claims&quot;: {
      &quot;verification&quot;: {
        &quot;trust_framework&quot;: &quot;UI-SRNlQFy-YEFE46yyHKqc64jmM65q8ma9cq2V_erY&quot;,
        &quot;time&quot;: &quot;jI-FYlteydXzsjRIrXBZs9foBSNF1Od1Q-4XnuqpgjI&quot;,
        &quot;verification_process&quot;: &quot;F979I7b5ZhADtyYMlYxctdc9-IalD_Td0HpfcFBzVXs&quot;,
        &quot;evidence&quot;: [
          {
            &quot;type&quot;: &quot;i2w3mrKAQV2nhTa5c2koZ-aQTBDoSaVfvYk7aLQianc&quot;,
            &quot;method&quot;: &quot;fEQ0tVPD67GfO30h_SRs8ZPbnZ_vwEt5S8lUOR77va0&quot;,
            &quot;time&quot;: &quot;9jueDP5r0gTB64DqdCZbek3yaS5AJJnW8FEkWtPTaOk&quot;,
            &quot;document&quot;: {
              &quot;type&quot;: &quot;K-rZQk89w89YBhjUNUho07suLxhG8Sl2JTPAcoAJB34&quot;,
              &quot;issuer&quot;: {
                &quot;name&quot;: &quot;BkCULCU-txVGvzNqnWe5DxefFvJE8LMib8GV3I3WO90&quot;,
                &quot;country&quot;: &quot;DSyF5TtmYgLk92u4GkDQzSdFbvIbw5rkFjzSsJJsyw4&quot;
              },
              &quot;number&quot;: &quot;epH3OuU51TBelOE4PX6ueHwr1ZtoUjzG-7pZjIAsXg8&quot;,
              &quot;date_of_issuance&quot;: &quot;cVvqTueVq6OWz-dJj2cdo19A0Ajj859eGDzDfwPYyN4&quot;,
              &quot;date_of_expiry&quot;: &quot;nxJBNdtwvb2TKKJNGvF6_1ywEdKrotj66C88WPomLfo&quot;
            }
          }
        ]
      },
      &quot;claims&quot;: {
        &quot;given_name&quot;: &quot;y9uFPHAVqNAZ7PJyk1-1yQJZZWZzKGP5FLt9txKM84M&quot;,
        &quot;family_name&quot;: &quot;XyUikY8V8MWeBfXUOp8gI7F7-yC28Jr5IyDgvBxXzd4&quot;,
        &quot;birthdate&quot;: &quot;7GlieMLJhM78C_uQQp9wUXSZLeqBN1YGQT87BIubyKU&quot;,
        &quot;place_of_birth&quot;: {
          &quot;country&quot;: &quot;RN3xcnLYX_GDhVwfPvtisuLPfi0d74zqihFbQrd_UG0&quot;,
          &quot;locality&quot;: &quot;iNkpWqJ9kIZQq95dzSyEZjbPJs6Fqu7GFBKouEC3OxE&quot;
        },
        &quot;nationalities&quot;: &quot;-tinYGK0GXnkfARxiNIWq0VnzNRl-Kv3KY3m5g5Femg&quot;,
        &quot;address&quot;: &quot;63EzPV0yvTpeOgV34yCwweCvO-2wxts2Wqbja_SuwPQ&quot;
      }
    },
    &quot;birth_middle_name&quot;: &quot;vM68I6XnrVlyt1LxK9xxgFycsjtw2vLdGpNgk3E8QQ4&quot;,
    &quot;salutation&quot;: &quot;iThfCu2ulLoe5i6gCEq--Y6R-gxHHtIukXb9qnfjH5k&quot;,
    &quot;msisdn&quot;: &quot;xUpU-azBYdXeJidc8Yw5MXtfPz4_4kArJhflXcxzkzs&quot;
  }
}
</sourcecode>
<t>The SD-JWT is then signed by the issuer to create a document like the following:</t>

<artwork anchor="example-complex_structured-sd-jwt-encoded">eyJhbGciOiAiUlMyNTYifQ.eyJpc3MiOiAiaHR0cHM6Ly9leGFtcGxlLmNvbS9pc3N1ZXI
iLCAic3ViX2p3ayI6IHsia3R5IjogIlJTQSIsICJuIjogIndsY3B1SmpjZHNoTDJOcU1zV
DJITUppcXlQRkVQUVoyRk1YS0RfcjNhbi0wOV9rLWNkb0ppZlZvZEtVWjhRQmlVNndfSlV
ZaDNsU2NySi1UU0V1ZVMtbUdVOUtrbl85cTV4elhiblRFeTJQNk5fNGI3Tk5hZUplMjVEb
mtsRVBVSlU1dFJjak9EdEhETzdNSWdzSVBLLU50Q1c2eDdZQjJ4Nl8zSDJ0NkVmUnREalp
lLWFkZWxPQTA5VVE4eDlkOERCT1IycnhhRm0zX1FBbEFmSHZEN2xMbGV3QWlHdmpNVGQ2M
TRGa0E4Q0VxbG5TV2w0Z0QyUGQzQTVKM1hfMlVESzBJcUliOGVkOF9iMnlUb1JJd3F6VTF
nMXAyVkVaQkowWEdTYmVTWTllLUVOX1NjclZUNVlCd29JV292QjBBZVNzTWo1Szhla2VkY
Ws5UHdFZk12USIsICJlIjogIkFRQUIifSwgImlhdCI6IDE1MTYyMzkwMjIsICJleHAiOiA
xNTE2MjQ3MDIyLCAiX3NkIjogeyJ2ZXJpZmllZF9jbGFpbXMiOiB7InZlcmlmaWNhdGlvb
iI6IHsidHJ1c3RfZnJhbWV3b3JrIjogIlVJLVNSTmxRRnktWUVGRTQ2eXlIS3FjNjRqbU0
2NXE4bWE5Y3EyVl9lclkiLCAidGltZSI6ICJqSS1GWWx0ZXlkWHpzalJJclhCWnM5Zm9CU
05GMU9kMVEtNFhudXFwZ2pJIiwgInZlcmlmaWNhdGlvbl9wcm9jZXNzIjogIkY5NzlJN2I
1WmhBRHR5WU1sWXhjdGRjOS1JYWxEX1RkMEhwZmNGQnpWWHMiLCAiZXZpZGVuY2UiOiBbe
yJ0eXBlIjogImkydzNtcktBUVYybmhUYTVjMmtvWi1hUVRCRG9TYVZmdllrN2FMUWlhbmM
iLCAibWV0aG9kIjogImZFUTB0VlBENjdHZk8zMGhfU1JzOFpQYm5aX3Z3RXQ1UzhsVU9SN
zd2YTAiLCAidGltZSI6ICI5anVlRFA1cjBnVEI2NERxZENaYmVrM3lhUzVBSkpuVzhGRWt
XdFBUYU9rIiwgImRvY3VtZW50IjogeyJ0eXBlIjogIkstclpRazg5dzg5WUJoalVOVWhvM
DdzdUx4aEc4U2wySlRQQWNvQUpCMzQiLCAiaXNzdWVyIjogeyJuYW1lIjogIkJrQ1VMQ1U
tdHhWR3Z6TnFuV2U1RHhlZkZ2SkU4TE1pYjhHVjNJM1dPOTAiLCAiY291bnRyeSI6ICJEU
3lGNVR0bVlnTGs5MnU0R2tEUXpTZEZidklidzVya0ZqelNzSkpzeXc0In0sICJudW1iZXI
iOiAiZXBIM091VTUxVEJlbE9FNFBYNnVlSHdyMVp0b1VqekctN3BaaklBc1hnOCIsICJkY
XRlX29mX2lzc3VhbmNlIjogImNWdnFUdWVWcTZPV3otZEpqMmNkbzE5QTBBamo4NTllR0R
6RGZ3UFl5TjQiLCAiZGF0ZV9vZl9leHBpcnkiOiAibnhKQk5kdHd2YjJUS0tKTkd2RjZfM
Xl3RWRLcm90ajY2Qzg4V1BvbUxmbyJ9fV19LCAiY2xhaW1zIjogeyJnaXZlbl9uYW1lIjo
gInk5dUZQSEFWcU5BWjdQSnlrMS0xeVFKWlpXWnpLR1A1Rkx0OXR4S004NE0iLCAiZmFta
Wx5X25hbWUiOiAiWHlVaWtZOFY4TVdlQmZYVU9wOGdJN0Y3LXlDMjhKcjVJeURndkJ4WHp
kNCIsICJiaXJ0aGRhdGUiOiAiN0dsaWVNTEpoTTc4Q191UVFwOXdVWFNaTGVxQk4xWUdRV
Dg3Qkl1YnlLVSIsICJwbGFjZV9vZl9iaXJ0aCI6IHsiY291bnRyeSI6ICJSTjN4Y25MWVh
fR0RoVndmUHZ0aXN1TFBmaTBkNzR6cWloRmJRcmRfVUcwIiwgImxvY2FsaXR5IjogImlOa
3BXcUo5a0laUXE5NWR6U3lFWmpiUEpzNkZxdTdHRkJLb3VFQzNPeEUifSwgIm5hdGlvbmF
saXRpZXMiOiAiLXRpbllHSzBHWG5rZkFSeGlOSVdxMFZuek5SbC1LdjNLWTNtNWc1RmVtZ
yIsICJhZGRyZXNzIjogIjYzRXpQVjB5dlRwZU9nVjM0eUN3d2VDdk8tMnd4dHMyV3FiamF
fU3V3UFEifX0sICJiaXJ0aF9taWRkbGVfbmFtZSI6ICJ2TTY4STZYbnJWbHl0MUx4Szl4e
GdGeWNzanR3MnZMZEdwTmdrM0U4UVE0IiwgInNhbHV0YXRpb24iOiAiaVRoZkN1MnVsTG9
lNWk2Z0NFcS0tWTZSLWd4SEh0SXVrWGI5cW5makg1ayIsICJtc2lzZG4iOiAieFVwVS1he
kJZZFhlSmlkYzhZdzVNWHRmUHo0XzRrQXJKaGZsWGN4emt6cyJ9fQ.PSEqS4wRCkLuFfGT
gNjw63kewpAxNWu1kgo_tat17ElyetqMO49w3PL1D4Z67AeVbOMT3DhG7WiJB9UoKVs3XJ
yJuZ0DBRkCQ8iqaIw3vyA-P_lkTw7EwSO-Klo0UHBUfHvvJhKOeZ6jhSvZhtlD0yYxoS9e
fxOHM2tUnpm7gaWQ6OqXiTTLGrnuA-1k99IL_ag5oJJym2JvlWt2R1S8tLvKrKZumrPi5R
LYskZlEiZ_l4h_n7FHva9S66R_tvZNcXRQqyXGKdp66rzmfHzxoHHYBIUfgxBZ0re3zkHm
JcgAgoPLaIpXm3cR-4dmMpDHgntMOWP8s0hnBsYStArM4Q.ewogICAgIl9zZCI6IHsKICA
gICAgICAidmVyaWZpZWRfY2xhaW1zIjogewogICAgICAgICAgICAidmVyaWZpY2F0aW9uI
jogewogICAgICAgICAgICAgICAgInRydXN0X2ZyYW1ld29yayI6ICJbXCJlbHVWNU9nM2d
TTklJOEVZbnN4QV9BXCIsIFwiZGVfYW1sXCJdIiwKICAgICAgICAgICAgICAgICJ0aW1lI
jogIltcIjZJajd0TS1hNWlWUEdib1M1dG12VkFcIiwgXCIyMDEyLTA0LTIzVDE4OjI1Wlw
iXSIsCiAgICAgICAgICAgICAgICAidmVyaWZpY2F0aW9uX3Byb2Nlc3MiOiAiW1wiZUk4W
ldtOVFuS1BwTlBlTmVuSGRoUVwiLCBcImYyNGM2Zi02ZDNmLTRlYzUtOTczZS1iMGQ4NTA
2ZjNiYzdcIl0iLAogICAgICAgICAgICAgICAgImV2aWRlbmNlIjogWwogICAgICAgICAgI
CAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiW1wiUWdfTzY
0enFBeGU0MTJhMTA4aXJvQVwiLCBcImRvY3VtZW50XCJdIiwKICAgICAgICAgICAgICAgI
CAgICAgICAgIm1ldGhvZCI6ICJbXCJBSngtMDk1VlBycFR0TjRRTU9xUk9BXCIsIFwicGl
wcFwiXSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0aW1lIjogIltcIlBjMzNKTTJMY
2hjVV9sSGdndl91ZlFcIiwgXCIyMDEyLTA0LTIyVDExOjMwWlwiXSIsCiAgICAgICAgICA
gICAgICAgICAgICAgICJkb2N1bWVudCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgI
CAgICJ0eXBlIjogIltcIkcwMk5TclFmakZYUTdJbzA5c3lhakFcIiwgXCJpZGNhcmRcIl0
iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImlzc3VlciI6IHsKICAgICAgICAgI
CAgICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJbXCJsa2x4RjVqTVlsR1RQVW92TU5
JdkNBXCIsIFwiU3RhZHQgQXVnc2J1cmdcIl0iLAogICAgICAgICAgICAgICAgICAgICAgI
CAgICAgICAgICJjb3VudHJ5IjogIltcIm5QdW9RbmtSRnEzQkllQW03QW5YRkFcIiwgXCJ
ERVwiXSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgI
CAgICAgICAgICAgICAibnVtYmVyIjogIltcIjViUHMxSXF1Wk5hMGhrYUZ6enpaTndcIiw
gXCI1MzU1NDU1NFwiXSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGF0ZV9vZ
l9pc3N1YW5jZSI6ICJbXCI1YTJXMF9OcmxFWnpmcW1rXzdQcS13XCIsIFwiMjAxMC0wMy0
yM1wiXSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGF0ZV9vZl9leHBpcnkiO
iAiW1wieTFzVlU1d2RmSmFoVmRnd1BnUzdSUVwiLCBcIjIwMjAtMDMtMjJcIl0iCiAgICA
gICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgI
CAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJjbGFpbXMiOiB7CiAgICA
gICAgICAgICAgICAiZ2l2ZW5fbmFtZSI6ICJbXCJIYlE0WDhzclZXM1FEeG5JSmRxeU9BX
CIsIFwiTWF4XCJdIiwKICAgICAgICAgICAgICAgICJmYW1pbHlfbmFtZSI6ICJbXCJDOUd
Tb3VqdmlKcXVFZ1lmb2pDYjFBXCIsIFwiTWVpZXJcIl0iLAogICAgICAgICAgICAgICAgI
mJpcnRoZGF0ZSI6ICJbXCJreDVrRjE3Vi14MEptd1V4OXZndnR3XCIsIFwiMTk1Ni0wMS0
yOFwiXSIsCiAgICAgICAgICAgICAgICAicGxhY2Vfb2ZfYmlydGgiOiB7CiAgICAgICAgI
CAgICAgICAgICAgImNvdW50cnkiOiAiW1wiSDNvMXVzd1A3NjBGaTJ5ZUdkVkNFUVwiLCB
cIkRFXCJdIiwKICAgICAgICAgICAgICAgICAgICAibG9jYWxpdHkiOiAiW1wiT0JLbFRWb
HZMZy1BZHdxWUdiUDhaQVwiLCBcIk11c3RlcnN0YWR0XCJdIgogICAgICAgICAgICAgICA
gfSwKICAgICAgICAgICAgICAgICJuYXRpb25hbGl0aWVzIjogIltcIk0wSmI1N3Q0MXVic
mtTdXlyRFQzeEFcIiwgW1wiREVcIl1dIiwKICAgICAgICAgICAgICAgICJhZGRyZXNzIjo
gIltcIkRzbXRLTmdwVjRkQUhwanJjYW9zQXdcIiwge1wibG9jYWxpdHlcIjogXCJNYXhzd
GFkdFwiLCBcInBvc3RhbF9jb2RlXCI6IFwiMTIzNDRcIiwgXCJjb3VudHJ5XCI6IFwiREV
cIiwgXCJzdHJlZXRfYWRkcmVzc1wiOiBcIkFuIGRlciBXZWlkZSAyMlwifV0iCiAgICAgI
CAgICAgIH0KICAgICAgICB9LAogICAgICAgICJiaXJ0aF9taWRkbGVfbmFtZSI6ICJbXCJ
lSzVvNXBIZmd1cFBwbHRqMXFoQUp3XCIsIFwiVGltb3RoZXVzXCJdIiwKICAgICAgICAic
2FsdXRhdGlvbiI6ICJbXCJqN0FEZGIwVVZiMExpMGNpUGNQMGV3XCIsIFwiRHIuXCJdIiw
KICAgICAgICAibXNpc2RuIjogIltcIldweEpyRnVYOHVTaTJwNGh0MDlqdndcIiwgXCI0O
TEyMzQ1Njc4OVwiXSIKICAgIH0KfQ
</artwork>
<t>(Line breaks for presentation only.)</t>
<t>A SD-JWT-R for some of the claims:</t>

<sourcecode anchor="example-complex_structured-release-payload" type="json">{
  &quot;nonce&quot;: &quot;2GLC42sKQveCfGfryNRN9w&quot;,
  &quot;aud&quot;: &quot;https://example.com/verifier&quot;,
  &quot;_sd&quot;: {
    &quot;verified_claims&quot;: {
      &quot;verification&quot;: {
        &quot;trust_framework&quot;: &quot;[\&quot;eluV5Og3gSNII8EYnsxA_A\&quot;, \&quot;de_aml\&quot;]&quot;,
        &quot;time&quot;: &quot;[\&quot;6Ij7tM-a5iVPGboS5tmvVA\&quot;, \&quot;2012-04-23T18:25Z\&quot;]&quot;,
        &quot;evidence&quot;: [
          {
            &quot;type&quot;: &quot;[\&quot;Qg_O64zqAxe412a108iroA\&quot;, \&quot;document\&quot;]&quot;
          }
        ]
      },
      &quot;claims&quot;: {
        &quot;given_name&quot;: &quot;[\&quot;HbQ4X8srVW3QDxnIJdqyOA\&quot;, \&quot;Max\&quot;]&quot;,
        &quot;family_name&quot;: &quot;[\&quot;C9GSoujviJquEgYfojCb1A\&quot;, \&quot;Meier\&quot;]&quot;,
        &quot;birthdate&quot;: &quot;[\&quot;kx5kF17V-x0JmwUx9vgvtw\&quot;, \&quot;1956-01-28\&quot;]&quot;,
        &quot;place_of_birth&quot;: {
          &quot;country&quot;: &quot;[\&quot;H3o1uswP760Fi2yeGdVCEQ\&quot;, \&quot;DE\&quot;]&quot;
        }
      }
    }
  }
}
</sourcecode>
</section>

<section anchor="example-4-w3c-vc"><name>Example 4 - W3C VC</name>

<sourcecode type="json">{
  &quot;sub&quot;: &quot;did:example:ebfeb1f712ebc6f1c276e12ec21&quot;,
  &quot;jti&quot;: &quot;http://example.edu/credentials/3732&quot;,
  &quot;iss&quot;: &quot;https://example.com/keys/foo.jwk&quot;,
  &quot;nbf&quot;: 1541493724,
  &quot;iat&quot;: 1541493724,
  &quot;exp&quot;: 1573029723,
  &quot;nonce&quot;: &quot;660!6345FSer&quot;,
  &quot;vc&quot;: {
    &quot;@context&quot;: [
      &quot;https://www.w3.org/2018/credentials/v1&quot;,
      &quot;https://www.w3.org/2018/credentials/examples/v1&quot;
    ],
    &quot;type&quot;: [
      &quot;VerifiableCredential&quot;,
      &quot;UniversityDegreeCredential&quot;
    ]
  },
  &quot;_sd&quot;: {
    &quot;given_name&quot;: &quot;LbnhkOr5oS7KjeUrxezAu8TG0CpWz0jSixy6tffuo04&quot;,
    &quot;family_name&quot;: &quot;9h5vgv6TpFV6GmnPtugiMLl5tHetHeb5X_2cKHjN7cw&quot;,
    &quot;birthdate&quot;: &quot;fPZ92dtYMCN2Nb-2ac_zSH19p4yakUXrZl_-wSgaazA&quot;
  }
}
</sourcecode>
</section>
</section>

<section anchor="document-history"><name>Document History</name>
<t>[[ To be removed from the final specification ]]</t>
<t>-00</t>

<ul>
<li><t>Renamed to SD-JWT (focus on JWT instead of JWS since signature is optional)</t>
</li>
<li><t>Make holder binding optional</t>
</li>
<li><t>Rename proof to release, since when there is no signature, the term &quot;proof&quot; can be misleading</t>
</li>
<li><t>Improved the structure of the description</t>
</li>
<li><t>Described verification steps</t>
</li>
<li><t>All examples generated from python demo implementation</t>
</li>
<li><t>Examples for structured objects</t>
</li>
</ul>
</section>

</back>

</rfc>
