See alsotranslations.
Copyright © 2025World Wide Web Consortium.W3C®liability,trademark andpermissive document license rules apply.
Averifiable credential is a specific way to express a set ofclaimsmade by anissuer, such as a driver's license or an education certificate. Thisspecification describes the extensible data model forverifiable credentials,how they can be secured from tampering, and a three-party ecosystem forthe exchange of these credentials that is composed ofissuers,holders,andverifiers. This document also covers a variety of security, privacy,internationalization, and accessibility considerations for ecosystems thatuse the technologies described in this specification.
This section describes the status of this document at the time of its publication. A list of currentW3C publications and the latest revision of this technical report can be found in theW3C standards and drafts index at https://www.w3.org/TR/.
Comments regarding this specification are welcome at any time.Please file issues directly onGitHub,or send them topublic-vc-comments@w3.orgif that is not possible.(subscribe,archives).
This document was published by theVerifiable Credentials Working Group as a Recommendation using theRecommendation track.
W3C recommends the wide deployment of this specification as a standard for the Web.
AW3C Recommendation is a specification that, after extensive consensus-building, is endorsed byW3C and its Members, and has commitments from Working Group members toroyalty-free licensing for implementations.
This document was produced by a group operating under theW3C Patent Policy.W3C maintains apublic list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes containsEssential Claim(s) must disclose the information in accordance withsection 6 of theW3C Patent Policy.
This document is governed by the03 November 2023W3C Process Document.
This section is non-normative.
Credentials are integral to our daily lives: driver's licenses confirmour capability to operate motor vehicles; university degrees assert our levelof education; and government-issued passports attest to our citizenship whentraveling between countries. This specification provides a mechanism forexpressing these sorts ofcredentials on the Web in a way that iscryptographically secure, privacy respecting, and machine verifiable. Thesecredentials provide benefits to us when used in the physical world, buttheir use on the Web continues to be elusive.
It is currently difficult to express educational qualifications, healthcaredata, financial account details, and other third-party-verifiedpersonal information in a machine readable way on the Web. The challenge ofexpressing digitalcredentials on the Web hinders our ability to receivethe same benefits from them that physicalcredentials provide in thereal world.
For those unfamiliar with the concepts related toverifiable credentials, the following sections provide an overview of:
The use cases and requirements that informed this specification can be foundinVerifiable Credentials Use Cases [VC-USE-CASES].
This section is non-normative.
In the physical world, acredential might consist of:
Averifiable credential can represent all the same information that aphysicalcredential represents. Adding technologies such asdigital signatures can makeverifiable credentials more tamper-evident andtrustworthy than their physical counterparts.
Holders ofverifiable credentials can generateverifiable presentations and then share theseverifiable presentations withverifiers to prove they possessverifiable credentials with specific characteristics.
Bothverifiable credentials andverifiable presentations can betransmitted rapidly, making them more convenient than their physicalcounterparts when establishing trust at a distance.
While this specification attempts to improve the ease of expressing digitalcredentials, it also aims to balance this goal with severalprivacy-preserving goals. The persistence of digital information, and the easewith which disparate sources of digital data can be collected and correlated,comprise a privacy concern that the use ofverifiable and easilymachine-readablecredentials threatens to make worse. This documentoutlines and attempts to address several of these issues in Section8.Privacy Considerations. Examples of how to use this data modelusing privacy-enhancing technologies, such as zero-knowledge proofs, are alsoprovided throughout this document.
The word "verifiable" in the termsverifiable credential andverifiable presentation refers to the characteristic of acredentialorpresentation as being able to beverified by averifier,as defined in this document. Verifiability of a credential does not implythe truth ofclaims encoded therein. Instead, upon establishing theauthenticity and currency of averifiable credential orverifiable presentation, averifier validates the includedclaims usingtheir own business rules before relying on them. Such reliance only occurs afterevaluating the issuer, the proof, the subject, and the claims against one ormore verifier policies.
This section is non-normative.
This section describes the roles of the core actors and the relationshipsbetween them in an ecosystem where one expectsverifiable credentialsto be useful. A role is an abstraction that might be implemented in manydifferent ways. The separation of roles suggests likely interfaces andprotocols for standardization. This specification introduces the followingroles:
Figure1 above provides an example ecosystem to ground therest of the concepts in this specification. Other ecosystems exist, such asprotected environments or proprietary systems, whereverifiable credentials also provide benefits.
This ecosystem contrasts with the typical two-party or federated identityprovider models. An identity provider, sometimes abbreviated asIdP,is a system for creating, maintaining, and managing identity information forholders while providing authentication services torelying partyapplications within a federation or distributed network. In a federatedidentity model, theholder is tightly bound to the identity provider.This specification avoids using "identity provider," "federated identity," or"relying party" terminology, except when comparing or mapping these conceptsto other specifications. This specification decouples the identity providerconcept into two distinct concepts: theissuer and theholder.
In many cases, theholder of averifiable credential is the subject, butin some instances it is not. For example, a parent (theholder) might holdtheverifiable credentials of a child (thesubject), or a pet owner (theholder) might hold theverifiable credentials of their pet (thesubject). For more information about these exceptional cases, see theSubject-Holder Relationships section in theVerifiable Credentials Implementation Guidelines 1.0.
For a deeper exploration of theverifiable credentials ecosystem anda concrete lifecycle example, please refer toVerifiable Credentials Overview [VC-OVERVIEW].
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key wordsMAY,MUST,MUST NOT,OPTIONAL,RECOMMENDED,REQUIRED,SHOULD, andSHOULD NOT in this document are to be interpreted as described inBCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
Aconforming document is acompacted JSON-LDdocument that complies with all of the relevant "MUST" statements in thisspecification. Specifically, the relevant normative "MUST" statements inSections4.Basic Concepts,5.Advanced Concepts, and6.Syntaxes of this documentMUST be enforced.A conforming documentMUST be either averifiable credentialwith a media type ofapplication/vc
or averifiable presentationwith a media type ofapplication/vp
. A conforming documentMUST besecured by at least one securing mechanism as described in Section4.12Securing Mechanisms.
Aconforming issuer implementation producesconforming documents,MUST include all required properties in theconforming documents it produces, andMUST secure theconforming documents it produces using a securing mechanism described in Section4.12Securing Mechanisms.
Aconforming verifier implementationconsumesconforming documents,MUST performverification on aconforming document as described in Section4.12Securing Mechanisms,MUST check that eachrequired property satisfies the normative requirements for that property, andMUST produce errors when non-conforming documents are detected.
This specification includes both required and optional properties. OptionalpropertiesMAY be ignored byconforming issuer implementations andconforming verifier implementations.
This document also contains examples that contain characters that are invalidJSON, such as inline comments (//
) and the use of ellipsis(...
) to denote information that adds little value to the example.Implementers are cautioned to remove this content if they desire to use theinformation as a valid document.
Examples provided throughout this document include descriptive properties, such asname
anddescription
, with values in English to simplify the concepts in eachexample of the specification. These examples do not necessarily reflect the datastructures needed for international use, described in more detail inSection11.Internationalization Considerations.
The following terms are used to describe concepts in this specification.
did:example:123456abcdef
. See theDecentralized Identifiers (DIDs) v1.0 specification for further details.verifiableCredential
. These propertiesresult in separategraphs that contain allclaims defined in thecorresponding JSON objects.This section is non-normative.
The following sections outline core data model concepts, such asclaims,credentials,presentations,verifiable credentials, andverifiable presentations, which form the foundation of thisspecification.
Readers might note that some concepts described in this section, such ascredentials andpresentations, do not have media types defined bythis specification. However, the concepts of averifiable credential or averifiable presentation are defined asconforming documents andhave associated media types. The concrete difference between these concepts— betweencredential andpresentation vs.verifiable credential andverifiable presentation — is simply the factthat the "verifiable" objects are secured in a cryptographicway, and the others are not. For more details, see Section4.12Securing Mechanisms.
This section is non-normative.
Aclaim is a statement about asubject. Asubject is athing about whichclaims can be made.Claims are expressed usingsubject-property-value relationships.
The data model forclaims, illustrated inFigure2above, is powerful and can be used to express a large variety of statements. Forexample, whether someone graduated from a particular university can be expressedas shown inFigure3 below.
Individualclaims can be merged together to express agraph ofinformation about asubject. The example shown inFigure4 below extends the previousclaim byadding theclaims that Pat knows Sam and that Sam is employed as aprofessor.
To this point, the concepts of aclaim and agraph of informationare introduced. More information is expected to be added to the graph in orderto be able to trustclaims, more information isexpected to be added to the graph.
This section is non-normative.
Acredential is a set of one or moreclaims made by the sameentity.Credentials might also include an identifier and metadata to describeproperties of thecredential, such as theissuer, the validity date andtime period, a representative image,verification material, statusinformation, and so on. Averifiable credential is a set of tamper-evidentclaims and metadatathat cryptographically prove who issued it. Examples ofverifiable credentials include, but are not limited to, digital employee identificationcards, digital driver's licenses, and digital educational certificates.
Figure5 above shows the basic components of averifiable credential, but abstracts the details about howclaimsare organized into informationgraphs, which are then organized intoverifiable credentials.
Figure6 below shows a more complete depiction of averifiable credential using anembedded proof based onVerifiable Credential Data Integrity 1.0. It is composed of at least two informationgraphs.The first of these informationgraphs, theverifiable credential graph(thedefault graph), expresses theverifiable credentialitself throughcredential metadata and otherclaims. The secondinformationgraph, referred to by theproof
property, is theproof graph of theverifiable credential and is a separatenamed graph. Theproof graph expresses the digital proof, which, in thiscase, is a digital signature. Readers who are interested in the need formultiple information graphs can refer to Section5.12Verifiable Credential Graphs.
Figure7 below shows the sameverifiable credentialasFigure6, but secured using JOSE [VC-JOSE-COSE]. Thepayload contains a single information graph, which is theverifiable credential graph containingcredential metadata and otherclaims.
This section is non-normative.
Enhancing privacy is a key design feature of this specification. Therefore, itis crucial forentities using this technology to express onlythe portions of their personas that are appropriate for given situations. Theexpression of a subset of one's persona is called averifiable presentation.Examples of different personas include a person's professional persona,online gaming persona, family persona, or incognito persona.
Averifiable presentation iscreated by aholder, can express data from multipleverifiable credentials, and cancontain arbitrary additional data. They are used to presentclaims to averifier. It is also possible to presentverifiable credentialsdirectly.
The data in apresentation is often about the samesubject but mighthave been issued by multipleissuers. The aggregation of this informationexpresses an aspect of a person, organization, orentity.
Figure8 above shows the components of averifiable presentation but abstracts the details about howverifiable credentials are organized into informationgraphs,which are then organized intoverifiable presentations.
Figure9 below shows a more complete depiction of averifiable presentation using anembedded proofbased onVerifiable Credential Data Integrity 1.0.It is composed of at least four informationgraphs.The first of these informationgraphs, theverifiable presentation graph(thedefault graph), expresses theverifiable presentationitself throughpresentation metadata.Theverifiable presentation refers, via theverifiableCredential
property,to averifiable credential.Thiscredential is a self-containedverifiable credential graphcontainingcredential metadata and otherclaims. Thiscredentialrefers to averifiable credentialproof graph via aproof
property,expressing the proof (usually a digital signature) of thecredential.Thisverifiable credential graph and its linkedproof graph constitutethe second and third informationgraphs, respectively, and each is aseparatenamed graph. Thepresentation also refers, via theproof
property, to thepresentation'sproof graph, the fourth informationgraph (anothernamed graph). Thispresentationproof graphrepresents the digital signature of theverifiable presentation graph,theverifiable credential graph, and theproof graph linked from theverifiable credential graph.
Figure10 below shows the sameverifiable presentation asFigure9, but using anenveloping proof based on [VC-JOSE-COSE]. The payload contains only two informationgraphs: theverifiable presentation graph expressing theverifiable presentation through presentation metadata and the correspondingverifiable credential graph, referred to by theverifiableCredential
property. Theverifiable credential graph contains a singleEnvelopedVerifiableCredential
instance referring, via adata:
URL [RFC2397], to the verifiable credentialsecured via anenveloping proof shown inFigure7.
data:
URLrefers to theverifiable credential shown inFigure7.It is possible to have apresentation, such as a collection of universitycredentials, which draws on multiplecredentials about differentsubjectsthat are often, but not required to be, related. This is achieved by using theverifiableCredential
property to refer to multipleverifiable credentials.See AppendixD.Additional Diagrams for Verifiable Presentations for moredetails.
As described in Section1.2Ecosystem Overview, anentity can takeon one or more roles as they enter a particular credential exchange.While aholder is typically expected to generatepresentations, anissuer orverifier might generate a presentation to identify itselfto aholder. This might occur if theholder needs higher assurancefrom theissuer orverifier before handing over sensitive informationas part of averifiable presentation.
This section introduces some basic concepts for the specification inpreparation for Section5.Advanced Concepts later in thedocument.
This section is non-normative.
This specification is designed to ease the prototyping of new types ofverifiable credentials. Developers can copy the template below and paste itinto commonverifiable credential tooling to start issuing, holding, andverifying prototype credentials.
A developer will changeMyPrototypeCredential
below to the type of credentialthey would like to create. Sinceverifiable credentials talk about subjects,each property-value pair in thecredentialSubject
object expresses aparticular property of the credential subject. Once a developer has added anumber of these property-value combinations, the modified object can be sent toaconforming issuer implementation, and averifiable credential will becreated for the developer. From a prototyping standpoint, that is all adeveloper needs to do.
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "type": ["VerifiableCredential", "MyPrototypeCredential"], "credentialSubject": { "mySubjectProperty": "mySubjectValue" }}
After stabilizing all credential properties, developers are advised to generateand publish vocabulary and context files at stable URLs to facilitateinteroperability with other developers. Thehttps://www.w3.org/ns/credentials/examples/v2
URL abovewould then be replaced with the URL of a use-case-specific context. Thisprocess is covered in Section5.2Extensibility. Alternatively,developers can reuse existing vocabulary and context files that happen to fittheir use case. They can explore theVerifiable Credential Extensionsfor reusable resources.
Verifiable credentials are used to express properties of one or moresubjects as well as properties of thecredential itself. The followingproperties are defined in this specification for averifiable credential:
Averifiable credential can be extended to have additional propertiesthrough the extension mechanism defined in Section5.2Extensibility.
When two software systems need to exchange data, they need to use terminologythat both systems understand. Consider how two people communicate effectivelyby using the same language, where the words they use, such as "name" and"website," mean the same thing to each individual. This is sometimes referredto asthe context of a conversation. This specification uses a similarconcept to achieve similar results for software systems by establishing acontext in which to communicate.
Software systems that processverifiable credentials andverifiable presentations identify terminology by usingURLs for each term. However,thoseURLs can be long and not very human-friendly, while short-form,human-friendly aliases can be more helpful. This specification uses the@context
property to map short-form aliases to theURLs.
Verifiable credentials andverifiable presentationsMUST include a@context
property. Application developersMUST understand every JSON-LDcontext used by their application, at least to the extent that it affects themeaning of the terms used by their application. One mechanism fordoing so is described in the Section onValidating Contexts intheVerifiable Credential Data Integrity 1.0 specification. Other specifications that buildupon this specificationMAY require that JSON-LD contexts be integrity protectedby using therelatedResource
feature described in Section5.3Integrity of Related Resources or any effectively equivalent mechanism.
@context
propertyMUST be anordered setwhere the first item is aURL with the valuehttps://www.w3.org/ns/credentials/v2
.Subsequent items in theordered setMUST be composed of any combination ofURLs and objects, where each is processable as aJSON-LD Context.{"@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/58473", "type": ["VerifiableCredential", "ExampleAlumniCredential"], "issuer": "did:example:2g55q912ec3476eba2l9812ecbfe", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "alumniOf": { "id": "did:example:c276e12ec21ebfeb1f712ebc6f1", "name": "Example University" } }}
The example above uses the base contextURL(https://www.w3.org/ns/credentials/v2
) to establish that the data exchange isabout averifiable credential. This concept is further detailed inSection5.2Extensibility. The data available athttps://www.w3.org/ns/credentials/v2
is a permanently cacheable staticdocument with instructions for processing it provided in AppendixB.1Base Context. The associated human-readable vocabulary document for theVerifiable Credentials Data Model is available athttps://www.w3.org/2018/credentials/.
The secondURL (https://www.w3.org/ns/credentials/examples/v2
) is used todemonstrate examples. Implementations are expected to not usethisURL for any other purpose, such as in pilot or production systems.
The@context
property is further elaborated upon inSection 3.1: The Contextof theJSON-LD 1.1 specification.
When expressing statements about a specific thing, such as a person, product, ororganization, using a globally unique identifier for that thing can be useful.Globally unique identifiers enable others to express statementsabout the same thing. This specification defines the optionalid
property for such identifiers. Theid
propertyallows for expressing statements about specific things in theverifiable credential and is set by anissuer when expressingobjects in averifiable credential or aholder when expressingobjects in averifiable presentation. Theid
property expresses anidentifier that others are expected to use when expressing statements about thespecific thing identified by that identifier. Exampleid
valuesinclude UUIDs (urn:uuid:0c07c1ce-57cb-41af-bef2-1b932b986873
), HTTP URLs(https://id.example/things#123
), and DIDs (did:example:1234abcd
).
Developers are reminded that identifiers might be harmfulwhen pseudonymity is required. When considering such scenarios, developers areencouraged to read Section8.4Identifier-Based Correlation carefullyThere are also other types of access and correlation mechanisms documentedin Section8.Privacy Considerations that create privacy concerns.Where privacy is a vital consideration, it is permissible to omit theid
property. Some use cases do not need or explicitly need to omit,theid
property. Similarly, special attention is to be given to the choicebetween publicly resolvable URLs and other forms of identifiers. Publiclyresolvable URLs can facilitate ease of verification and interoperability, yetthey might also inadvertently grant access to potentially sensitive informationif not used judiciously.
id
property isOPTIONAL. If present,id
property's valueMUST be a singleURL, whichMAY be dereferenceable. It isRECOMMENDED that theURL in theid
be one which, if dereferenceable, resultsin a document containing machine-readable information about theid
.{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ],"id": "http://university.example/credentials/3732", "type": ["VerifiableCredential", "ExampleDegreeCredential"], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": {"id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:33Z", "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ", "cryptosuite": "ecdsa-rdfc-2019", "proofPurpose": "assertionMethod", "proofValue": "z5WHRyhjLd2H5RFcSqW3bss39zFBvVrVuXUovBpbGX2ATL8vSxwoeoiZFb1eibsdjRQK5GS1nr76RZRKBj7iH9roE" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:33Z", "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv", "cryptosuite": "ecdsa-sd-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0AhVhAfojGD02jMuCezr87Ra8dvWa9ruscwcjDo2jYpvNEzxQthrKO3csDTuvk2A278uD7Cot6fgfm4YXddQ3eKnF91VgjgCQCpvhiT83vvn-T-PFVSUfoo51-s11TfQ39hmlIC61wy2hYINWUMbNH3sN80JcCKn-4fcaBDpSGT7KgsL07bUWUlHrJhVhAG4V_V2OV_xGWDfKU1CH_D53kF5Hy8RBi4S0551TkpUKvouKF5s5a-b1qDh2iNK1RXQyF6vdhbt4Kjo0RfnSYplhAvBoxWd2Xmpe8ERCoO3qs3el64rEmsYuPOgMyQTacrl2tuFLs3ui23JdtCnOSxmcRzVC27r4HIpubjSug4NE261hAcb7bwdJUpxP6Bqp7hiD8O_nFIMxLdzErfU522ZVy4CqLOiEERGMT2jFlgDcxlpkk5ZrMJOl9QfQSLPtjolWIy1hAbOzFKnJtBhSu3lfzmSftTWl1-FLtWu3Lt7ePxpGPbMjr6DVfS3sZL8E6M4uETdce15BsDkThGi_1ZjJ7YG9GLFhADav02TPSZdSV73AqOyZ6ryfuz3Y7pKKuu67dnqNzzXS-H-8-39I1rA759bba_lkqeo8F0lPtT_3liNamnCd-CoFnL2lzc3Vlcg" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD", "cryptosuite": "bbs-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0ChVhQkkdBby2GbmvVh66cM6TNzNfh0hR9ePeG7dWYbHfDxK6CcA_rVoxxsRGIoWX5Gs6ZGgQNPTBeehiEHT_cj-5fjZ6ArTluARHPbaXQzWyXKrVYQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArS1r7HKFDPyyrvPGqNF8bjgNELvoomOjpbD9JEvaGI1pYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFgg1LgUmXHTRjMrLAeoNgJipw-F81uEwauN0JK-WcohpmWBZy9pc3N1ZXI" }}
{ "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro", "alg": "ES256"}application/vc
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}application/vc+jwt
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1745776713,
"exp": 1746986313,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"degree": {
"name": "Bachelor of Science and Arts",
"_sd": [
"al4ZGw1zYleMA106Izb-XesJAnWCgSi5nPn1JEV1jj8"
]
},
"_sd": [
"8-oYOESRk60imZ3nX3ca9DlHyqIq98Ft3__G1AlaOt0"
]
},
"_sd": [
"ODPcUXCWld-HiqCXy4HncS1oxjiDiDOp12xbUoxFoSc",
"UhkFmL7qw4QYKX2cT3LXP0p6yTw5RiHDnqXl_0VKfxA"
]
}
SHA-256 Hash:ODPcUXCWld-HiqCXy4HncS1oxjiDiDOp12xbUoxFoSc
Disclosure(s):WyIzQkdhQ3BfaTZIV0hEMm5GekZ2blN3IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd
Contents:[
"3BGaCp_i6HWHD2nFzFvnSw",
"id",
"http://university.example/credentials/3732"
]
SHA-256 Hash:UhkFmL7qw4QYKX2cT3LXP0p6yTw5RiHDnqXl_0VKfxA
Disclosure(s):WyJld1p0bUpDZHA2VWFWcEVhTXZ0V0FRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d
Contents:[
"ewZtmJCdp6UaVpEaMvtWAQ",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential"
]
]
SHA-256 Hash:8-oYOESRk60imZ3nX3ca9DlHyqIq98Ft3__G1AlaOt0
Disclosure(s):WyJIdThleHpqLTBySDg0aEtwenhnS0VnIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd
Contents:[
"Hu8exzj-0rH84hKpzxgKEg",
"id",
"did:example:ebfeb1f712ebc6f1c276e12ec21"
]
SHA-256 Hash:al4ZGw1zYleMA106Izb-XesJAnWCgSi5nPn1JEV1jj8
Disclosure(s):WyJVczR2ekVuVWJuSU96OC1VVDd2OHN3IiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
Contents:[
"Us4vzEnUbnIOz8-UT7v8sw",
"type",
"ExampleBachelorDegree"
]
The example above uses two types of identifiers. The first identifier is fortheverifiable credential and uses an HTTP-based URL. The secondidentifier is for thesubject of theverifiable credential (thething theclaims are about) and uses adecentralized identifier,also known as aDID.
DIDs are a type of identifier which are not necessary forverifiable credentials to be useful. Specifically,verifiable credentials do notdepend onDIDs andDIDs do not depend onverifiable credentials.However, manyverifiable credentials will useDIDs, and softwarelibraries implementing this specification will need to resolveDIDs.DID-based URLs are used to express identifiers associated withsubjects,issuers,holders, credential status lists, cryptographickeys, and other machine-readable information associated with averifiable credential.
Software systems that process the kinds of objects specified in this documentuse type information to determine whether or not a providedverifiable credential orverifiable presentation is appropriatefor the intended use-case. This specification defines atype
property for expressing object type information. This typeinformation can be used duringvalidation processes, as described in AppendixA.Validation.
Verifiable credentials andverifiable presentationsMUST contain atype
property with an associated value.
type
propertyMUST be one or moreterms andabsolute URL strings. If more thanone value is provided, the order does not matter.{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732","type": ["VerifiableCredential", "ExampleDegreeCredential"], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:33Z", "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ", "cryptosuite": "ecdsa-rdfc-2019", "proofPurpose": "assertionMethod", "proofValue": "z2F16goBUjRsg2ieNiojpaz313CN98DU4APFiokAUkUvEYESSDmokg1omwvcK7EFqLgYpdyekEoxnVHwuxt8Webwa" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:33Z", "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv", "cryptosuite": "ecdsa-sd-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0AhVhAIC9hFSOtM2k0lFFuKclfp_cYTO5YWhZIYaMEPMcz1jloqTS0Zkww-Lc1U6FP15vJBaIa5ICMknDv16H8r0eh8VgjgCQDJUVkvejrCod7srzLsvKZEVUqzPULOZlb5-cwYdz0K8NYIJNls-gfevdbPuoczDW5TuctpSXJ7V9anf9MrkmJYP7ehVhARNoIdk_H3oT_8HxLP5Fo38e9blzlzSBmFswtxQUPzERVBXcgCU9k6c8pJz_RmjL0Y1eaW50Gl_qs_olK0u7NKlhAD3n7fkV5E-YF4KlodM7PhHP8_kB9you9XtTDVif3tyYsfWewmRysEN0A-EdLZ0WRwSwyJGBaBgGPb5erVUT-ElhAmLyoxIvE3GPC9rTc8tpfNEmTvcwBlpDGMlYkKb52XQeQeQFQwzgCPhpJowOomdMfPUq_xsHih8NsnDN0LXJtVFhArdqKKbPA-tMtA0mMQn1vIZ6mVjeTeJTsdxwZze2EspERwrMcgS25V-fVtjdEXCmNKyL7giUGy4eixjRGYowzpFhADobyi3ucf61IGgBM8_Vy1b8JkaiISFoy_i8ZldQfiqIoG00zU4-jEFuLWvsW7FGfPo0jq-2ZZBvS5H4SjaETJIFnL2lzc3Vlcg" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD", "cryptosuite": "bbs-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0ChVhQkkdBby2GbmvVh66cM6TNzNfh0hR9ePeG7dWYbHfDxK6CcA_rVoxxsRGIoWX5Gs6ZGgQNPTBeehiEHT_cj-5fjZ6ArTluARHPbaXQzWyXKrVYQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArS1r7HKFDPyyrvPGqNF8bjgNELvoomOjpbD9JEvaGI1pYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFgg_vwNGMCz741AWQhjph2NJJcybTTnmtmN1AZd15PefM6BZy9pc3N1ZXI" }}
{ "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro", "alg": "ES256"}application/vc
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}application/vc+jwt
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1745776713,
"exp": 1746986313,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"degree": {
"name": "Bachelor of Science and Arts",
"_sd": [
"DRH5ieldwG5rO2UP5yXbPWXsShQMJlDJR_fQUnhYT3E"
]
},
"_sd": [
"S4oLjCoGMrJn2qEGiWcRM6gE4fzqUEqR34-E9gcg22Y"
]
},
"_sd": [
"VmZqL2JJPPtD96Nlp4N7O1Q1xEFcLgXBW5_AaFAzxJo",
"Za7qFJYJtRLLR8SQOUTaLph6AcmPHiXVG96-7Zzw0KI"
]
}
SHA-256 Hash:VmZqL2JJPPtD96Nlp4N7O1Q1xEFcLgXBW5_AaFAzxJo
Disclosure(s):WyIxeDVielRkZXhsLW4zWVVIQXF5ZUxBIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd
Contents:[
"1x5bzTdexl-n3YUHAqyeLA",
"id",
"http://university.example/credentials/3732"
]
SHA-256 Hash:Za7qFJYJtRLLR8SQOUTaLph6AcmPHiXVG96-7Zzw0KI
Disclosure(s):WyJablVReVZXRmo0UlFfTHFmOVBkbmN3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d
Contents:[
"ZnUQyVWFj4RQ_Lqf9Pdncw",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential"
]
]
SHA-256 Hash:S4oLjCoGMrJn2qEGiWcRM6gE4fzqUEqR34-E9gcg22Y
Disclosure(s):WyI5TG1nOHhaUVJxWEZZaVRlV0hRZjV3IiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd
Contents:[
"9Lmg8xZQRqXFYiTeWHQf5w",
"id",
"did:example:ebfeb1f712ebc6f1c276e12ec21"
]
SHA-256 Hash:DRH5ieldwG5rO2UP5yXbPWXsShQMJlDJR_fQUnhYT3E
Disclosure(s):WyJZMVBDaVA3YnJ3TjFHMEVMWmJXRlZRIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
Contents:[
"Y1PCiP7brwN1G0ELZbWFVQ",
"type",
"ExampleBachelorDegree"
]
Concerning this specification, the following table lists the objects thatMUST have atype specified.
Object | Type |
---|---|
Verifiable credential object | VerifiableCredential and, optionally, a more specificverifiable credentialtype. For example,"type": ["VerifiableCredential", "OpenBadgeCredential"] |
Verifiable presentation object | VerifiablePresentation and, optionally, a more specificverifiable presentationtype. For example,"type": "VerifiablePresentation" |
credentialStatus object | A validcredential statustype. For example,"type": "BitstringStatusListEntry" |
termsOfUse object | A valid terms of usetype. For example,"type": "TrustFrameworkPolicy" |
evidence object | A valid evidencetype. For example,"type": "Evidence" |
refreshService object | A valid refreshServicetype. For example,"type": "VerifiableCredentialRefreshService2021" |
credentialSchema object | A valid credentialSchematype. For example,"type": "JsonSchema" |
Thetype system for the Verifiable Credentials Data Model is the same asforJSON-LD 1.1 and is detailed inSection 3.5:Specifying the Type andSection 9: JSON-LDGrammar. When using a JSON-LD context (see Section5.2Extensibility), this specification aliases the@type
keyword totype
to make the JSON-LD documentsmore easily understood. While application developers and document authors donot need to understand the specifics of the JSON-LD type system, implementersof this specification who want to support interoperable extensibility do.
Allcredentials,presentations, and encapsulated objectsSHOULDspecify, or be associated with, additional, more narrowtypes (likeExampleDegreeCredential
, for example) so software systems canmore easily detect and process this additional information.
When processing encapsulated objects defined in this specification, such asobjects associated with thecredentialSubject
object or deeply nested therein,software systemsSHOULD use thetype information specified in encapsulatingobjects higher in the hierarchy. Specifically, an encapsulating object, such asacredential,SHOULD convey the associated objecttypes so thatverifiers can quickly determine the contents of an associated object basedon the encapsulating objecttype.
For example, acredential object with thetype
ofExampleDegreeCredential
, signals to averifier that theobject associated with thecredentialSubject
property contains theidentifier for the:
id
property.type
property.name
property.This enables implementers to rely on values associated with thetype
propertyforverification. Object types and their associated values areexpected to be documented in at least a human-readable specification that canbe found at theURL for the type. For example, the human-readabledefinition for theBitstringStatusList
type can be found athttps://www.w3.org/ns/credentials/status/#BitstringStatusList. It is alsosuggested that amachine-readable version be provided through HTTP content negotiation atthe same URL.
Explaining how to create a new type ofverifiable credential is beyondthe scope of this specification. Readers interested in doing so areadvised to read theCreating New Credential Types section in theVerifiable Credentials Implementation Guidelines 1.0.
When displaying acredential, it can be helpful to havetext provided by theissuer that furnishes thecredential with a name and a short description of itspurpose. Thename
anddescription
propertiesserve these purposes.
name
propertyMUST be a string ora language value object as described in11.1Language and Base Direction. Ideally, the name of acredential is concise, human-readable, and could enable an individual toquickly differentiate onecredential from any othercredentialsthey might hold.description
propertyMUST be astring or a language value object as described in11.1Language and Base Direction. Ideally, the description of acredential is no more than a few sentences in length and conveys enoughinformation about thecredential to remind an individual of its contentswithout having to look through the entirety of theclaims.{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": ["VerifiableCredential", "ExampleDegreeCredential"], "issuer": { "id": "https://university.example/issuers/565049", "name": "Example University", "description": "A public university focusing on teaching examples." }, "validFrom": "2015-05-10T12:30:00Z", "name": "Example University Degree", "description": "2015 Bachelor of Science and Arts Degree", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": { "id": "https://university.example/issuers/565049", "name": "Example University", "description": "A public university focusing on teaching examples." }, "validFrom": "2015-05-10T12:30:00Z", "name": "Example University Degree", "description": "2015 Bachelor of Science and Arts Degree", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:33Z", "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ", "cryptosuite": "ecdsa-rdfc-2019", "proofPurpose": "assertionMethod", "proofValue": "z2LeuoNi3yR1b6c3fkRsEvXJ5ex8X4RdutyK7L6HAo2bJQwr21w85Y5KWy3DptXR8ke52Assqik6wKTy9DKqkEZ2r" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": { "id": "https://university.example/issuers/565049", "name": "Example University", "description": "A public university focusing on teaching examples." }, "validFrom": "2015-05-10T12:30:00Z", "name": "Example University Degree", "description": "2015 Bachelor of Science and Arts Degree", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:33Z", "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv", "cryptosuite": "ecdsa-sd-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0AhVhA5A-VvZ6RF2KlLjsYsx1DosYuzhbD7hn6N6gTF5yv22oTPKcqHyElGQn3TcerwktEbNrRiuWMvmfuw1XmwhCk-lgjgCQCHC44msX1XnfID2VfkUX1j1PHUzfjdORSePcGUhVB3KxYIBeo1lJt0Rp-So7_Ch6hiCE36oR-r6WyVaT6r-o0Nf1nh1hATMKDPXogkIVw6n-pqlDoJMti8cCVJvle_IWSAqv5vShtqt5E6NEJ3PTiK7NwSMSGMVE0XdJXZlEj3xck6UL0vlhAa7ltjeSjPD1TD52OkPPjuQrhADwoTsDXERr-UCuNICq-uxKiFsxebXjys1SeHIFzT0TQA5TlTl-J55vFL90q-lhAi8EKNrgQiKdl_EAlgv3aS15FLuIpUmfROB6srPRpHI4cz-kC8xlarcp9XMqHIpL5hncUJd2EoGTmMpm3nzs3PVhAr4sC2Lin-35yxMSvWXrq7cEGw4IomJnayfWsxmXencGOmXQzZxJbsUHmLCAprm51apFj19BZED6G-82Ilx0ZvlhADRiBGvSKeF3hYkihvS7kkZDnySRU4Q4yfNm_Hwe6kysHhtP5rnbu3LYfU-hI_0P6FbZJrPQ7uifIMg2QMHxARFhAxjQMayCxmcOVGlo5ICU5zQxx6qTgjgpNl1GC1dGjnA1J3xhFALceL5DHxJbSvcRsRVwRjBybMkZurUWhPgzpwVhAhbwrQWJSLLhyXqFcQef_-eKnNE3F5oBq2phORFJ16m3uRU-R-vSoXJlSpyLBZrNGU7gwCHVv0b_e2ZC13MiFR4FnL2lzc3Vlcg" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": { "id": "https://university.example/issuers/565049", "name": "Example University", "description": "A public university focusing on teaching examples." }, "validFrom": "2015-05-10T12:30:00Z", "name": "Example University Degree", "description": "2015 Bachelor of Science and Arts Degree", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD", "cryptosuite": "bbs-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0ChVhQkS0mcHTu9KLuuY8_DlU_2lj8Su_EXxWyY0xMPZuCGQMRzah3DFaerG-CRDFWR1KBWkYUpPizkPDULYOU8XsXoC3a8_00GgHfKuoiNCLnSNBYQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArXFDE8ZX70eeJX1DawHuw0sW9CBV3sa68IaRGcnZiiQpYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFggbCn9jbv1yUPTocre_YTgvXiebb8lJMqxhmAnw4MiFbWBZy9pc3N1ZXI" }}
{ "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro", "alg": "ES256"}application/vc
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": { "id": "https://university.example/issuers/565049", "name": "Example University", "description": "A public university focusing on teaching examples." }, "validFrom": "2015-05-10T12:30:00Z", "name": "Example University Degree", "description": "2015 Bachelor of Science and Arts Degree", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}application/vc+jwt
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": { "id": "https://university.example/issuers/565049", "name": "Example University", "description": "A public university focusing on teaching examples." }, "validFrom": "2015-05-10T12:30:00Z", "name": "Example University Degree", "description": "2015 Bachelor of Science and Arts Degree", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1745776713,
"exp": 1746986313,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": {
"name": "Example University",
"description": "A public university focusing on teaching examples.",
"_sd": [
"3ySi9ZE-ujtD4844Zpf8WcLcq0Airj5jlRf-3RAROrk"
]
},
"validFrom": "2015-05-10T12:30:00Z",
"name": "Example University Degree",
"description": "2015 Bachelor of Science and Arts Degree",
"credentialSubject": {
"degree": {
"name": "Bachelor of Science and Arts",
"_sd": [
"ftH1KSE5s6fJwW21f6I0eRcmaoR_k9a5AKiS2qbtUS4"
]
},
"_sd": [
"CIh0Nacx0NHYByA1hgSeX7h1qtjcoPdH84u53tkkzGw"
]
},
"_sd": [
"6PY5_WJSZTik3tok8x4xAtMk-8jjZzsfuzuxT_bocL0",
"TOWXhIKWOxpYlx-Rkhj_dU8wJivrdn9Ckno_quo6x8c"
]
}
SHA-256 Hash:TOWXhIKWOxpYlx-Rkhj_dU8wJivrdn9Ckno_quo6x8c
Disclosure(s):WyI5MGlaMEp1a2lCUlpoa0pnajhyRDN3IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd
Contents:[
"90iZ0JukiBRZhkJgj8rD3w",
"id",
"http://university.example/credentials/3732"
]
SHA-256 Hash:6PY5_WJSZTik3tok8x4xAtMk-8jjZzsfuzuxT_bocL0
Disclosure(s):WyJpbU94UllGWWVSM2VHWGdJOTUxcHVnIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d
Contents:[
"imOxRYFYeR3eGXgI951pug",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential"
]
]
SHA-256 Hash:3ySi9ZE-ujtD4844Zpf8WcLcq0Airj5jlRf-3RAROrk
Disclosure(s):WyJlemF5RzgwVG1hRVhhSjRwNHlpY2xnIiwgImlkIiwgImh0dHBzOi8vdW5pdmVyc2l0eS5leGFtcGxlL2lzc3VlcnMvNTY1MDQ5Il0
Contents:[
"ezayG80TmaEXaJ4p4yiclg",
"id",
"https://university.example/issuers/565049"
]
SHA-256 Hash:CIh0Nacx0NHYByA1hgSeX7h1qtjcoPdH84u53tkkzGw
Disclosure(s):WyJXT1lvak0yb2dad3pXQjJOa3FELWNBIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd
Contents:[
"WOYojM2ogZwzWB2NkqD-cA",
"id",
"did:example:ebfeb1f712ebc6f1c276e12ec21"
]
SHA-256 Hash:ftH1KSE5s6fJwW21f6I0eRcmaoR_k9a5AKiS2qbtUS4
Disclosure(s):WyJuUG1kWEk5YWtEakd4Mk0wRTVhWUtBIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
Contents:[
"nPmdXI9akDjGx2M0E5aYKA",
"type",
"ExampleBachelorDegree"
]
Names and descriptions also support expressing content in different languages.To express a string with language andbase direction information,one can use an object that contains the@value
,@language
, and@direction
properties to express the text value, language tag, and base direction,respectively. See11.1Language and Base Direction for further information.
The@direction
property in the examples below is not requiredfor the associated single-language strings, as their default directions are thesame as those set by the@direction
value. We include the@direction
property here for clarity of demonstration and to make copy+paste+edit deliverfunctional results. Implementers are encouraged to read the section onString Internationalizationin theJSON-LD 1.1 specification.
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": ["VerifiableCredential", "ExampleDegreeCredential"], "issuer": { "id": "https://university.example/issuers/565049", "name": [{ "@value": "Example University", "@language": "en" }, { "@value": "Université Exemple", "@language": "fr" }, { "@value": "جامعة المثال", "@language": "ar", "@direction": "rtl" }], "description": [{ "@value": "A public university focusing on teaching examples.", "@language": "en" }, { "@value": "Une université publique axée sur l'enseignement d'exemples.", "@language": "fr" }, { "@value": ".جامعة عامة تركز على أمثلة التدريس", "@language": "ar", "@direction": "rtl" }] }, "validFrom": "2015-05-10T12:30:00Z", "name": [{ "@value": "Example University Degree", "@language": "en" }, { "@value": "Exemple de Diplôme Universitaire", "@language": "fr" }, { "@value": "مثال الشهادة الجامعية", "@language": "ar", "@direction": "rtl" }], "description": [{ "@value": "2015 Bachelor of Science and Arts Degree", "@language": "en" }, { "@value": "2015 Licence de Sciences et d'Arts", "@language": "fr" }, { "@value": "2015 بكالوريوس العلوم والآداب", "@language": "ar", "@direction": "rtl" }], "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": [{ "@value": "Bachelor of Science and Arts Degree", "@language": "en" }, { "@value": "Licence de Sciences et d'Arts", "@language": "fr" }, { "@value": "بكالوريوس العلوم والآداب", "@language": "ar", "@direction": "rtl" }] } }}
This specification defines a property for expressing theissuer ofaverifiable credential.
Averifiable credentialMUST have anissuer
property.
issuer
propertyMUST be either aURL or an objectcontaining anid
property whose value is aURL; in either case, theissuer selects thisURL to identify itself in a globally unambiguous way. ItisRECOMMENDED that theURL be one which, if dereferenced, results in acontrolled identifier document, as defined in theControlled Identifiers v1.0 specification,about theissuer that can be used toverify the information expressedin thecredential.{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": ["VerifiableCredential", "ExampleDegreeCredential"],"issuer": "https://university.example/issuers/14", "validFrom": "2010-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/14", "validFrom": "2010-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:33Z", "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ", "cryptosuite": "ecdsa-rdfc-2019", "proofPurpose": "assertionMethod", "proofValue": "z3sXkg3PHbK2YpbhQajunUvReW3Qn66mPsQQKvn4hwEG1DohgUqvXBF2oKT5Qb8tKSKjewNhsJCCcBoY6Rfye4ipw" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/14", "validFrom": "2010-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:33Z", "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv", "cryptosuite": "ecdsa-sd-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0AhVhA91jcz-MSzf_Z-fw6VM-YN1ijTr26VBTz9H14dMiv6t5vRaGC1IKHvDtY0ZJup1pnliukZBHEXgM46Bf4EjdyIFgjgCQDMIFZRjI7aJUGGsbDYML33eEwJuub6dIF5agqeB4sTdJYIAhgKXoAudJOwmVRpO2Ab5sNIirjQdArIjp8ygMx2S5ihVhASWfZk4fYqoICvoaokYzsABtmDzpgTe8ZkI2z4MDKt1wcp0T9tBx30mk1V20Qhy2PT15nrPygrxpn8_h2Z1Jo7FhAXNmEd28tsb_VkmqckvjVBet7p8Hhq7d8DziDldJRri8-cygIdcaX0MsitDRMsclHCsO25UKSjCX96dSto_Y3FVhAeYhHIz52Lw3Fd8tO7rdPOjILauPLHFkRnmHbd8ixxKwb62gTqchavN3rv8GtKxQL9o-cLCKFm-mpQDUABuYxMVhA-vKFPcx_bNem4ufrFDr-cyjUa3r-zjLJwp9xss7XZikI3PLiiMGIBnhhGs3zCsQXvSZMX6ScPOpog6Kzl-YSj1hA7xtSv3lNDKhPKKQ-7F4WHhmfwj0F1PN_mj5jDkJcdw19eYTux4wRXgehBXRtvkuMw9iG6UFyurMFeyb-EkmQPIFnL2lzc3Vlcg" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/14", "validFrom": "2010-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD", "cryptosuite": "bbs-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0ChVhQs4LnYe9N1n9fBW8t7tgXy8gZA1WksN76TfdxHLUW0cJlImiaNZZbbNwAaL86-8xnTgMJgpwaMchm_8VepMSYZKjfQReWnOfwRfwz8grbaNNYQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArKnv3N5iX7nvZR0OCXS-uXH4QQ9mW65QM5qlHOfE4GQVYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFggO3rpYlZcra0jsUsWXIoCAXrkmj3mb1o1k8CYE2Wx9d6BZy9pc3N1ZXI" }}
{ "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro", "alg": "ES256"}application/vc
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/14", "validFrom": "2010-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}application/vc+jwt
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/14", "validFrom": "2010-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1745776713,
"exp": 1746986313,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"degree": {
"name": "Bachelor of Science and Arts",
"_sd": [
"cx_BlSjQIZzn3yhTasJDxhKeYkrwKsn_-w5DaJUWMbc"
]
},
"_sd": [
"Nroz4QPDqS8fduR4l1PhVpKyzhRs7lakueAFC2hMkhs"
]
},
"_sd": [
"JO8FgHben-We8roP0b3OnWXkTvR2V39tSJYsvjbO-vs",
"horLRQ5jlzMpY-X7J1p5ZhxQsM6c2hxhescRqtFtPH8"
]
}
SHA-256 Hash:JO8FgHben-We8roP0b3OnWXkTvR2V39tSJYsvjbO-vs
Disclosure(s):WyJoSEtXaHpnQ1k0VUJ0Z1F1V2ZWQjNBIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd
Contents:[
"hHKWhzgCY4UBtgQuWfVB3A",
"id",
"http://university.example/credentials/3732"
]
SHA-256 Hash:horLRQ5jlzMpY-X7J1p5ZhxQsM6c2hxhescRqtFtPH8
Disclosure(s):WyJUeHZFNURzNU5OT190S0VnMUsyZnlBIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d
Contents:[
"TxvE5Ds5NNO_tKEg1K2fyA",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential"
]
]
SHA-256 Hash:Nroz4QPDqS8fduR4l1PhVpKyzhRs7lakueAFC2hMkhs
Disclosure(s):WyJlUkpwYkw3WHZ2SVVwVnVGLWlLUWNnIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd
Contents:[
"eRJpbL7XvvIUpVuF-iKQcg",
"id",
"did:example:ebfeb1f712ebc6f1c276e12ec21"
]
SHA-256 Hash:cx_BlSjQIZzn3yhTasJDxhKeYkrwKsn_-w5DaJUWMbc
Disclosure(s):WyJwb2o5UDctRG5MYzF3VVBSbHpkXy1nIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
Contents:[
"poj9P7-DnLc1wUPRlzd_-g",
"type",
"ExampleBachelorDegree"
]
It is also possible to express additional information about the issuer byassociating an object with the issuer property:
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": ["VerifiableCredential", "ExampleDegreeCredential"],"issuer": { "id": "did:example:76e12ec712ebc6f1c221ebfeb1f", "name": "Example University" }, "validFrom": "2010-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": { "id": "did:example:76e12ec712ebc6f1c221ebfeb1f", "name": "Example University" }, "validFrom": "2010-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:33Z", "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ", "cryptosuite": "ecdsa-rdfc-2019", "proofPurpose": "assertionMethod", "proofValue": "z35CwmxThsUQ4t79JfacmMcw4y1kCqtD4rKqUooKM2NyKwdF5jmXMRo9oGnzHerf8hfQiWkEReycSXC2NtRrdMZN4" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": { "id": "did:example:76e12ec712ebc6f1c221ebfeb1f", "name": "Example University" }, "validFrom": "2010-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:33Z", "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv", "cryptosuite": "ecdsa-sd-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0AhVhA48RQ19Db04U8uJwipJ51iqZLecmjhiPb4k2BXLdHox9KdauSf3Mt6Zhit65HQD3NfKoUBNIhx6u6SkQ_LRN_dlgjgCQCXiUMNh-iT7uOyLhwa_0Ol1mfx4Fhph-wJC4AzOYD8ElYIMaU9eu-pg75GhG_-_CuhoikWj9gtS-qUp4qfdnYI6XAhVhAVag3KzxQuRrStNecEjh3TVoc3hj38x-dqllLiAdbQc_9tlnMJaYIm0HzLXuvqwc7DlSTC7w5D0NX6D2M8NaNqVhAr6tGfnfX0hTJ3a-okEoAyiGTla9x_irE24vYRdi6vlLc-xz5LGVFA5Tyht7GiZaT4kqC3od7Nx57CiHakPBw4VhAGzegEDf5moH7kOGp68C6QQR3TmmVMsFSpU41XLR3-BLBLfuS1gWDQlyAJJDRh_leTFoqkDaxdkcli3NpowghY1hA4WGxUt2yMzqAreubYrAzNKMEQcQts-C0O4y3ErKH9R9UZMnBPY2FslOyagtRB5xE5keh3GGCa9TGNCypiNXVXFhAm-bNAdG37FTLQWR1bVnzRMPaTRr5iWWDMtGoFg78B0v43fkN0r4pPVOj9YcCEFxjS_eCbh9HSnDfHsMRIjnG-oFnL2lzc3Vlcg" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": { "id": "did:example:76e12ec712ebc6f1c221ebfeb1f", "name": "Example University" }, "validFrom": "2010-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD", "cryptosuite": "bbs-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0ChVhQswmfQ8aSdnXIildKfGdJUPQ-iT1HwBf8bShxHigrMTIGPA_mbb58NHo_tUU7P6a5AlwACoQDdbgQXIoeIZPmKu7snk3tUbaLIpfacByowWNYQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArQAGpGXTZS6rwOppAPreXlDb3xQb46PJ_xcVri0glVYJYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFggxWA747M_eHOtg3OYnWQ7wgc8QZ4KHhjtZYNM8ac6ldiBZy9pc3N1ZXI" }}
{ "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro", "alg": "ES256"}application/vc
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": { "id": "did:example:76e12ec712ebc6f1c221ebfeb1f", "name": "Example University" }, "validFrom": "2010-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}application/vc+jwt
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": { "id": "did:example:76e12ec712ebc6f1c221ebfeb1f", "name": "Example University" }, "validFrom": "2010-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1745776714,
"exp": 1746986314,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": {
"name": "Example University",
"_sd": [
"a44cc9Tu5xgu7xBLyLi7pUJ1LqityOT6j1lL4_qem8I"
]
},
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"degree": {
"name": "Bachelor of Science and Arts",
"_sd": [
"DubP4xmx8vNE4PnaE3b9sDjJYHHhzDMQqQWgRX6wfsY"
]
},
"_sd": [
"BZkKrUzclXVpvDS4EYHubFYkL7joeMyIPYnVXhKwAh4"
]
},
"_sd": [
"COqzQClOfS776upfhCnVdrb7lYhGcIAfTBX5Vy0wWQ8",
"KKtBz2uLNg5kwVr4y3XhGZHWEr7i77XaG9XGnWOWFBo"
]
}
SHA-256 Hash:KKtBz2uLNg5kwVr4y3XhGZHWEr7i77XaG9XGnWOWFBo
Disclosure(s):WyJvX1lOb0F1S0pqNTNFWlg0S1ZzVmV3IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd
Contents:[
"o_YNoAuKJj53EZX4KVsVew",
"id",
"http://university.example/credentials/3732"
]
SHA-256 Hash:COqzQClOfS776upfhCnVdrb7lYhGcIAfTBX5Vy0wWQ8
Disclosure(s):WyJBVUVzVi1LTnh4eU1WWnBuZWxXT0p3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d
Contents:[
"AUEsV-KNxxyMVZpnelWOJw",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential"
]
]
SHA-256 Hash:a44cc9Tu5xgu7xBLyLi7pUJ1LqityOT6j1lL4_qem8I
Disclosure(s):WyIwMkdFZW1rVjhzR3hzOWY4b21PbUxBIiwgImlkIiwgImRpZDpleGFtcGxlOjc2ZTEyZWM3MTJlYmM2ZjFjMjIxZWJmZWIxZiJd
Contents:[
"02GEemkV8sGxs9f8omOmLA",
"id",
"did:example:76e12ec712ebc6f1c221ebfeb1f"
]
SHA-256 Hash:BZkKrUzclXVpvDS4EYHubFYkL7joeMyIPYnVXhKwAh4
Disclosure(s):WyJPNnpIek5ERjF2ZVFleVpEb1JBR1VRIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd
Contents:[
"O6zHzNDF1veQeyZDoRAGUQ",
"id",
"did:example:ebfeb1f712ebc6f1c276e12ec21"
]
SHA-256 Hash:DubP4xmx8vNE4PnaE3b9sDjJYHHhzDMQqQWgRX6wfsY
Disclosure(s):WyIzdm1kU29mcW5MVkprRVozVUZnLWNnIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
Contents:[
"3vmdSofqnLVJkEZ3UFg-cg",
"type",
"ExampleBachelorDegree"
]
Averifiable credential containsclaims about one or moresubjects.This specification defines acredentialSubject
property for the expressionofclaims about one or moresubjects.
Averifiable credentialMUST contain acredentialSubject
property.
credentialSubject
property is a set of objects where eachobjectMUST be thesubject of one or moreclaims, whichMUST beserialized inside thecredentialSubject
property. Each objectMAY alsocontain anid
property to identify thesubject, as described inSection4.4Identifiers.{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": ["VerifiableCredential", "ExampleDegreeCredential"], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z","credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:34Z", "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ", "cryptosuite": "ecdsa-rdfc-2019", "proofPurpose": "assertionMethod", "proofValue": "z36CTYymphefPFDdFakYBe7EHHX7Upev5vtRhxG3ZtKiUPXFKknW9ZTds3wxDhTz1WFCGzFUUv6DC5vifg3VCCSFL" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:34Z", "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv", "cryptosuite": "ecdsa-sd-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0AhVhAFPsovbuHDInv8ft0M6jMPGrLrNs9j_sEfn1gdDCxFOmyjYDyblufuagmARZj9RabxfO0SkbpUi_m6dQdXIyoklgjgCQC78Ayc-2ykLAZ_NJzb5-S8dtSenHeKEHHGy469czIbhtYILJ97_OhxkzZccWMaUgCAXRO5ZCyoagriazYdV2ViFsuhVhAvGcG2tqQoB5VaC-x652sos00_94wzBOZg9wGR2mytwn_alXEbksbCMUC2lmiU_FrcFzEEAZrAdcsAfoE0J_KRlhAc71QXbdP2iKlqmgocH4qvDcv_3PT_VmSFGWISFdrQPkmv2lb2r9Mb02yZYilf20oMzCPCRsqYP--0g8ysm9doVhAIqwWkfg1pXXKaxx4_5_QpmoOoXjLPNhJ-14QSHUyxTKKCTarm33OdaIhhCjm5_e7MUCYHvA89vCSvSHMrKvKclhASFp1GivaJXYrbBcM6xNFNsXW7xBg7cZXfBeGOwcXf7fXg1GwMJILZBimOaEM5Eay38F8T6HwbeuMvBQ7b05gbFhAkLeI8-tdeQQzX6ik0xDSM4yLsHPmhG47Tu5Hm25ujoo9iVsLzskiGcIsQLsqvRK5238FvPQAeOpK04R7F2aK9IFnL2lzc3Vlcg" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD", "cryptosuite": "bbs-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0ChVhQkkdBby2GbmvVh66cM6TNzNfh0hR9ePeG7dWYbHfDxK6CcA_rVoxxsRGIoWX5Gs6ZGgQNPTBeehiEHT_cj-5fjZ6ArTluARHPbaXQzWyXKrVYQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArS1r7HKFDPyyrvPGqNF8bjgNELvoomOjpbD9JEvaGI1pYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFggUfIz7Xi8QhNU6pC7qIkL0HkvpKYuV2rzBuKizKrBhU6BZy9pc3N1ZXI" }}
{ "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro", "alg": "ES256"}application/vc
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}application/vc+jwt
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/565049", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1745776714,
"exp": 1746986314,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"degree": {
"name": "Bachelor of Science and Arts",
"_sd": [
"eSsD1uaqSneGHTEcMle3VsZRp8tMnj5CGr7Q3jwsvFk"
]
},
"_sd": [
"aNL13g6u-zsvTmXVA_9TXuykIWiG7tv5olLstsbx9dk"
]
},
"_sd": [
"Dl0zzxvIqp5MWA5a3I2PD1MArw6VA4QLydlqSlJEByY",
"jVkRi7K0e2I1dlRTEtDvQULB1qfZgsMpiBv5Pak21ys"
]
}
SHA-256 Hash:Dl0zzxvIqp5MWA5a3I2PD1MArw6VA4QLydlqSlJEByY
Disclosure(s):WyIxTGVERC1tNlRQdlFXX1R4MU9MQVVnIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd
Contents:[
"1LeDD-m6TPvQW_Tx1OLAUg",
"id",
"http://university.example/credentials/3732"
]
SHA-256 Hash:jVkRi7K0e2I1dlRTEtDvQULB1qfZgsMpiBv5Pak21ys
Disclosure(s):WyJiU1ljSjZNVXdGZlhleWRGSl84dHlnIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d
Contents:[
"bSYcJ6MUwFfXeydFJ_8tyg",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential"
]
]
SHA-256 Hash:aNL13g6u-zsvTmXVA_9TXuykIWiG7tv5olLstsbx9dk
Disclosure(s):WyJpUGx3eUs1c01BY1BzbzZQbW1DNWl3IiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd
Contents:[
"iPlwyK5sMAcPso6PmmC5iw",
"id",
"did:example:ebfeb1f712ebc6f1c276e12ec21"
]
SHA-256 Hash:eSsD1uaqSneGHTEcMle3VsZRp8tMnj5CGr7Q3jwsvFk
Disclosure(s):WyJFaEt5VDV6ZjJuSGZUNHFnaWZtczVBIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
Contents:[
"EhKyT5zf2nHfT4qgifms5A",
"type",
"ExampleBachelorDegree"
]
Expressing information related to multiplesubjects in averifiable credential is possible. The example below specifies twosubjects who are spouses. Note the use of array notation to associatemultiplesubjects with thecredentialSubject
property.
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": ["VerifiableCredential", "RelationshipCredential"], "issuer": "https://issuer.example/issuer/123", "validFrom": "2010-01-01T00:00:00Z", "credentialSubject":[{ "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "name": "Jayden Doe", "spouse": "did:example:c276e12ec21ebfeb1f712ebc6f1" }, { "id": "https://subject.example/subject/8675", "name": "Morgan Doe", "spouse": "https://subject.example/subject/7421" }]}
This specification defines thevalidFrom
property to help anissuer to express the date and time when acredential becomes valid andthevalidUntil
property to express the date and timewhen acredential ceases to be valid.
When comparing dates and times, the calculation is done "temporally",meaning that the string value is converted to a "temporal value" which existsas a point on a timeline. Temporal comparisons are then performed by checkingto see where the date and time being compared are in relation toa particular point on the timeline.
validFrom
propertyMUST be a[XMLSCHEMA11-2]dateTimeStamp
string value representing the date and time thecredential becomes valid, which could be a date and time in the future orthe past. Note that this value represents the earliest point in time at whichthe information associated with thecredentialSubject
property becomes valid. If avalidUntil
value also exists, thevalidFrom
valueMUST express a point in time that is temporally the same orearlier than the point in time expressed by thevalidUntil
value.validUntil
propertyMUST be a[XMLSCHEMA11-2]dateTimeStamp
string value representing the date and time thecredential ceases to be valid, which could be a date and time in the pastor the future. Note that this value represents the latest point in time atwhich the information associated with thecredentialSubject
property is valid. If avalidFrom
value also exists, thevalidUntil
valueMUST express a point in time that is temporally the same or later than thepoint in time expressed by thevalidFrom
value.{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": ["VerifiableCredential", "ExampleDegreeCredential"], "issuer": "https://university.example/issuers/14","validFrom": "2010-01-01T19:23:24Z","validUntil": "2020-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/14", "validFrom": "2010-01-01T19:23:24Z", "validUntil": "2020-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:34Z", "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ", "cryptosuite": "ecdsa-rdfc-2019", "proofPurpose": "assertionMethod", "proofValue": "z65sN9W58eruTDUUXYxxwhG4cQ73zQkQuhMYvUVipeM4oEUBPbCxd3oTQTJhnfHN9juyZSzYpERYFjZcfpb2xgeto" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/14", "validFrom": "2010-01-01T19:23:24Z", "validUntil": "2020-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:34Z", "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv", "cryptosuite": "ecdsa-sd-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0AhVhAxWvPP0HD9usaRDFthqpz1zXbWtTpNr_1pRFMKY9wbt7RAh0kwkoqR9cFHY0PdBj0cPo9BXd_54Z9iLl7GsmAjlgjgCQCJ0FUx3YRbBxybCrTEtFINFNKD7UC2j8tjmvYa6EQKlNYIL-KVtIrAWQi98Ng86FB4giy2xKCqn_kNOmO75D7AQfEhlhA5pKNMOahYQbk8obEMFyLgAsmd3FGqf3FoDTojybRWUPf7F3A22Kl1822zW093-XtKum7Nfe3q16norHXUnhkWVhAvNR9By8I5ISJtylSp1fkzurbIvSXVhkaj4wsUpbTy1GnYHzeS7qhAyUoO4GkIMUfP3yLS0BIGBbJR7de1s5G4lhATnwFdztYAEXk6z93jJot3TPhlnOYk10G0e7u3uyJJF-ZrAsctOYbjF3ZcNZu3UXJZRe4_ytxr5OqwIVLnUfDqFhAkff2_b4hqpz0uK0kDHjkpMun4mAhuxVCjcmyIlJnaaTdFc2RovLnKiPx4Xnd9P_lOd3ZQoz5ThPWzMS7r_43M1hAmVVtNJ7-lpJdlc9tg5e3GpAhnXzYHpiv3WRRT3F4tH8B_zkHnyeNBT61d16TTnvlFn5mFXJ99FD4abIcQkyP_lhA8IS9pAGKqVgTDzxXSvGcGWMXQ4LEy3jfywyDpdiZodvttNhuZVBMkGKhNBo94oGjIHRfoeAFvQfZQo8_ENtBEYFnL2lzc3Vlcg" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/14", "validFrom": "2010-01-01T19:23:24Z", "validUntil": "2020-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD", "cryptosuite": "bbs-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0ChVhQjBPG4AXIRGKu6h5awRiAZHSrx5gfUdbWc2rAxdsfIzSIywzsphRnlb5rPDWwdJlBF5krx4JRYNtT7exHHAw_aZtO6AARXGfbz0eHNrcTKL5YQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArKnv3N5iX7nvZR0OCXS-uXH4QQ9mW65QM5qlHOfE4GQVYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFggWjulaLj5whA4VZOvBqHQbwhSW7Ph0eZ2bxz7ota_qnCBZy9pc3N1ZXI" }}
{ "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro", "alg": "ES256"}application/vc
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/14", "validFrom": "2010-01-01T19:23:24Z", "validUntil": "2020-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}application/vc+jwt
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/14", "validFrom": "2010-01-01T19:23:24Z", "validUntil": "2020-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1745776714,
"exp": 1746986314,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"validUntil": "2020-01-01T19:23:24Z",
"credentialSubject": {
"degree": {
"name": "Bachelor of Science and Arts",
"_sd": [
"tkx6UW3wT_NqTixvVGkswdZF-kBA4NhAWZGJlaQDiDI"
]
},
"_sd": [
"fNjDSDHl3HBCSCXRG8t9bnwTH1JSOBP8M0ZaZBZPNcI"
]
},
"_sd": [
"PxSvcLzZojmKrNj1eJX3qV6JqZ1tPUWWX0Z9CgKE9DU",
"tSI8HzYX7dXtxi1W7Pu1rH8KvE5LAFCDUSqpzlngsD8"
]
}
SHA-256 Hash:PxSvcLzZojmKrNj1eJX3qV6JqZ1tPUWWX0Z9CgKE9DU
Disclosure(s):WyJ3SzVZQTBEZzRoc18wdmtFZk1ENG93IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd
Contents:[
"wK5YA0Dg4hs_0vkEfMD4ow",
"id",
"http://university.example/credentials/3732"
]
SHA-256 Hash:tSI8HzYX7dXtxi1W7Pu1rH8KvE5LAFCDUSqpzlngsD8
Disclosure(s):WyJ1T0podHZvMEJ0cm1YbWxIeUVKUTdRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d
Contents:[
"uOJhtvo0BtrmXmlHyEJQ7Q",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential"
]
]
SHA-256 Hash:fNjDSDHl3HBCSCXRG8t9bnwTH1JSOBP8M0ZaZBZPNcI
Disclosure(s):WyJjTzBQZjZxM1MweHp2dmRwS25aWlpnIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd
Contents:[
"cO0Pf6q3S0xzvvdpKnZZZg",
"id",
"did:example:ebfeb1f712ebc6f1c276e12ec21"
]
SHA-256 Hash:tkx6UW3wT_NqTixvVGkswdZF-kBA4NhAWZGJlaQDiDI
Disclosure(s):WyI0N0FDOWhlLTRCNW4xV1N0dFJRYXRBIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
Contents:[
"47AC9he-4B5n1WSttRQatA",
"type",
"ExampleBachelorDegree"
]
IfvalidFrom
andvalidUntil
are not present, theverifiable credential validity period is considered validindefinitely. In such cases, theverifiable credential is assumed to bevalid from the time theverifiable credential
was created.
This specification defines thecredentialStatusproperty fordiscovering information related to the status of averifiable credential, such as whether it is suspended or revoked.
If present, the value associated with thecredentialStatus
property is asingle object or a set of one or more objects. The followingpropertiesare defined for every object:
id
property isOPTIONAL. ItMAY be used to provide aunique identifier for the credential status object. If present, thenormative guidance in Section4.4IdentifiersMUST be followed.type
property isREQUIRED. It is used to express thetype of status information expressed by the object. The related normativeguidance in Section4.5TypesMUST be followed.The precise content of thecredential status information is determined bythe specificcredentialStatus
type definition and variesdepending on factors such as whether it is simple to implement or if it isprivacy-enhancing. The value will provide enough information to determine thecurrent status of thecredential and whether machine-readable information willbe retrievable from the URL. For example, the object could contain a link to anexternal document that notes whether thecredential is suspended or revoked.
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": ["VerifiableCredential", "ExampleDegreeCredential"], "issuer": "https://university.example/issuers/14", "validFrom": "2010-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } },"credentialStatus": { "id": "https://university.example/credentials/status/3#94567", "type": "BitstringStatusListEntry", "statusPurpose": "revocation", "statusListIndex": "94567", "statusListCredential": "https://university.example/credentials/status/3" }}
Acredential can have more than one status associatedwith it, such as whether it has been revoked or suspended.
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://license.example/credentials/9837", "type": ["VerifiableCredential", "ExampleDrivingLicenseCredential"], "issuer": "https://license.example/issuers/48", "validFrom": "2020-03-14T12:10:42Z", "credentialSubject": { "id": "did:example:f1c276e12ec21ebfeb1f712ebc6", "license": { "type": "ExampleDrivingLicense", "name": "License to Drive a Car" } },"credentialStatus": [{ "id": "https://license.example/credentials/status/84#14278", "type": "BitstringStatusListEntry", "statusPurpose": "revocation", "statusListIndex": "14278", "statusListCredential": "https://license.example/credentials/status/84" }, { "id": "https://license.example/credentials/status/84#82938", "type": "BitstringStatusListEntry", "statusPurpose": "suspension", "statusListIndex": "82938", "statusListCredential": "https://license.example/credentials/status/84" }]}
Implementers are cautioned thatcredentials with multiple status entriesmight contain conflicting information. Reconciling such conflicts is a part ofthevalidation process, hence part of the verifier's business logic, andtherefore out of scope for this specification.
Defining the data model, formats, and protocols for status schemes is out of thescope of this specification. TheVerifiable Credential Extensions document containsavailable status schemes for implementers who want to implementverifiable credential status checking.
Credential status specificationsMUST NOT enable tracking of individuals, suchas anissuer being notified (either directly or indirectly) when averifier is interested in a specificholder orsubject. Unacceptableapproaches include "phoning home," such that every use of a credential contactstheissuer of the credential to check the status for a specific individual,or "pseudonymity reduction," such that every use of the credential causes arequest for information from theissuer that theissuer can useto deduceverifier interest in a specific individual.
Data schemas are useful when enforcing a specific structure on a givendata collection. There are at least two types of data schemas that thisspecification considers:
It is important to understand that data schemas serve a different purpose fromthe@context
property, which neither enforces data structure ordata syntax nor enables the definition of arbitrary encodings to alternaterepresentation formats.
This specification defines the followingproperty for expressing adata schema, which anissuer can include in theverifiable credentialsthat it issues:
The value of thecredentialSchema
propertyMUST be one ormore data schemas that provideverifiers with enough information todetermine whether the provided data conforms to the provided schema(s). EachcredentialSchema
MUST specify itstype
(for example,JsonSchema
) and anid
propertythatMUST be aURL identifying the schema file. The specific typedefinition determines the precise contents of each data schema.
If multiple schemas are present, validity is determined according to theprocessing rules outlined by each associatedtype
property.
ThecredentialSchema
property allows one toannotate type definitions or lock them to specific versions of the vocabulary.Authors ofverifiable credentials can include a static version of theirvocabulary usingcredentialSchema
that is secured by some contentintegrity protection mechanism. ThecredentialSchema
property also makes it possible to perform syntactic checking on thecredential and to useverification mechanisms such as JSON Schema[VC-JSON-SCHEMA] validation.
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/3732", "type": ["VerifiableCredential", "ExampleDegreeCredential", "ExamplePersonCredential"], "issuer": "https://university.example/issuers/14", "validFrom": "2010-01-01T19:23:24Z", "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" }, "alumniOf": { "name": "Example University" } },"credentialSchema": [{ "id": "https://example.org/examples/degree.json", "type": "JsonSchema" }, { "id": "https://example.org/examples/alumni.json", "type": "JsonSchema" }]}
In the example above, theissuer is specifying twocredentialSchema
objects, each of which point to a JSON Schema [VC-JSON-SCHEMA] file that averifier can use to determine whether theverifiable credential iswell-formed.
This specification recognizes two classes ofsecuring mechanisms:those that use enveloping proofs and those that use embedded proofs.
Anenveloping proof wraps a serializationof this data model. One suchRECOMMENDED enveloping proof mechanism is definedinSecuring Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].
Anembedded proof is a mechanism where the proof isincluded in the serialization of the data model. One suchRECOMMENDED embeddedproof mechanism is defined inVerifiable Credential Data Integrity 1.0 [VC-DATA-INTEGRITY].
These two classes of securing mechanisms are not mutually exclusive. Additionalsecuring mechanism specifications might also be defined according to the rulesin Section5.13Securing Mechanism Specifications.
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://example.gov/credentials/3732", "type": ["VerifiableCredential", "ExampleDegreeCredential"], "issuer": "did:example:6fb1f712ebe12c27cc26eebfe11", "validFrom": "2010-01-01T19:23:24Z", "credentialSubject": { "id": "https://subject.example/subject/3921", "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } },"proof": { "type": "DataIntegrityProof", "cryptosuite": "eddsa-rdfc-2022", "created": "2021-11-13T18:19:39Z", "verificationMethod": "https://university.example/issuers/14#key-1", "proofPurpose": "assertionMethod", "proofValue": "z58DAdFfa9SkqZMVPxAQp...jQCrfFPP2oumHKtz" }}
Theembedded proof above secures the originalcredential by decoratingthe original data with a digital signature via theproof
property. Thisresults in averifiable credential that is easy to manage in modernprogramming environments and database systems.
eyJhbGciOiJFUzM4NCIsImtpZCI6IkdOV2FBTDJQVlVVMkpJVDg5bTZxMGM3U3ZjNDBTLWJ2UjFTT0Q3REZCb1UiLCJ0eXAiOiJ2YytsZCtqc29uK3NkLWp3dCIsImN0eSI6InZjK2xkK2pzb24ifQ.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaXNzdWVyIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy81NjUwNDkiLCJ2YWxpZEZyb20iOiIyMDEwLTAxLTAxVDE5OjIzOjI0WiIsImNyZWRlbnRpYWxTY2hlbWEiOnsiX3NkIjpbIlNFOHp4bmduZTNNbWEwLUNmS2dlYW1rNUVqU1NfOXRaNlN5NDdBdTdxRWMiLCJjT3lySEVrSlZwdEtSdURtNkNZVTREajJvRkExd0JQRjFHcTJnWEo1NXpzIl19LCJjcmVkZW50aWFsU3ViamVjdCI6eyJkZWdyZWUiOnsibmFtZSI6IkJhY2hlbG9yIG9mIFNjaWVuY2UgYW5kIEFydHMiLCJfc2QiOlsibVNfSVBMa0JHcTIxbVA3Z0VRaHhOckE0ZXNMc1ZKQ1E5QUpZNDFLLVRQSSJdfSwiX3NkIjpbIlhTSG9iU05Md01PVl9QNkhQMHNvMnZ1clNyVXZ3UURYREJHQWtyTXk3TjgiXX0sIl9zZCI6WyJQNE5qWHFXa2JOc1NfRzdvdmlLdm1NOG0yckhDTm5XVVV2SXZBbW9jb2RZIiwieFNvSHBKUXlCNGV1dmg4SkFJdDFCd1pjNFVEOHY5S3ZOTmVLMk9OSjFCQSJdLCJfc2RfYWxnIjoic2hhLTI1NiIsImlzcyI6Imh0dHBzOi8vdW5pdmVyc2l0eS5leGFtcGxlL2lzc3VlcnMvNTY1MDQ5IiwiaWF0IjoxNzAzNjI1OTAxLCJleHAiOjE3MzUyNDgzMDEsImNuZiI6eyJqd2siOnsia3R5IjoiRUMiLCJjcnYiOiJQLTM4NCIsImFsZyI6IkVTMzg0IiwieCI6Inl1Zlo1SFUzcUNfOTRMbkI3Zklzd0hmT0swQlJra0Z5bzVhd1QyX21ld0tJWUpLMVNfR0QySVB3UjRYUTZpdFEiLCJ5IjoiRmEtV2pOd2NLQ1RWWHVDU2tCY3RkdHJOYzh6bXdBTTZWOWxudmxxd1QyQnRlQ0ZHNmR6ZDJoMFVjeXluTDg0dCJ9fX0.M7BFJB9LEV_xEylSJpP00fd_4WjrOlXshh0dUv3QgOzw2MEGIfSfi9PoCkHJH7TI0InsqkD6XZVz38MpeDKekgBW-RoDdJmxnifYOEJhKpJ5EN9PvA007UPi9QCaiEzX~WyJFX3F2V09NWVQ1Z3JNTkprOHNXN3BBIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMTg3MiJd~WyJTSEc4WnpfRDVRbFMwU0ZrZFUzNXlRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVBbHVtbmlDcmVkZW50aWFsIl1d~WyJqZzJLRno5bTFVaGFiUGtIaHV4cXRRIiwgImlkIiwgImh0dHBzOi8vZXhhbXBsZS5vcmcvZXhhbXBsZXMvZGVncmVlLmpzb24iXQ~WyItQmhzaE10UnlNNUVFbGt4WGVXVm5nIiwgInR5cGUiLCAiSnNvblNjaGVtYSJd~WyJ0SEFxMEUwNnY2ckRuUlNtSjlSUWRBIiwgImlkIiwgImRpZDpleGFtcGxlOjEyMyJd~WyJ1Ynd6bi1kS19tMzRSMGI0SG84QTBBIiwgInR5cGUiLCAiQmFjaGVsb3JEZWdyZWUiXQ
Theenveloping proof above secures the originalcredential byencapsulating the original data in a digital signature envelope, resulting in averifiable credential that can be processed using tooling that understandsthe SD-JWT format.
Verifiable presentationsMAY be used to aggregate information frommultipleverifiable credentials.
Verifiable presentationsSHOULD be extremely short-lived and bound to achallenge provided by averifier. Details for accomplishing this dependon the securing mechanism, the transport protocol, andverifier policies.Unless additional requirements are defined by the particular securing mechanismor embedding protocol, averifier cannot generally assume that theverifiable presentation correlates with the presentedverifiable credentials.
Thedefault graph of averifiable presentation is also referred toas theverifiable presentation graph.
The following properties are defined for averifiable presentation:
id
property is optional. ItMAY be used to provide aunique identifier for theverifiable presentation. If present, thenormative guidance in Section4.4IdentifiersMUST be followed.type
propertyMUST be present. It is used to express thetype ofverifiable presentation. One value of this propertyMUST beVerifiablePresentation
, but additional typesMAY be included. Therelated normative guidance in Section4.5TypesMUST be followed.verifiableCredential
propertyMAY be present. The valueMUST be one or moreverifiable credential and/orenveloped verifiable credentialobjects (the valuesMUST NOT be non-object values such asnumbers, strings, or URLs). These objects are calledverifiable credential graphs andMUST express information that is secured using asecuring mechanism.See Section5.12Verifiable Credential Graphs for further details.holder
property. If present, the valueMUST be either aURL or an objectcontaining anid
property. It isRECOMMENDED that theURL in theholder
or itsid
be one which, ifdereferenced, results in a document containing machine-readable informationabout theholder that can be used toverify the informationexpressed in theverifiable presentation.If theholder
property is absent, information about theholder is obtained either via the securing mechanism ordoes not pertain to thevalidation of theverifiable presentation.The example below shows averifiable presentation:
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "urn:uuid:3978344f-8596-4c3a-a978-8fcaba3903c5", "type": ["VerifiablePresentation", "ExamplePresentation"],"verifiableCredential": [{... }]}
The contents of theverifiableCredential
property shownabove areverifiable credentialgraphs, as described by this specification.
It is possible for averifiable presentation to include one or moreverifiable credentials that have been secured using a securing mechanismthat "envelopes" the payload, such asSecuring Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE].This can be accomplished by associating theverifiableCredential
property withan object that has atype
ofEnvelopedVerifiableCredential
.
verifiableCredential
property in averifiable presentation. The@context
property of the objectMUST bepresent and include a context, such as thebase contextfor this specification, that defines at least theid
,type
, andEnvelopedVerifiableCredential
terms as defined by the base context providedby this specification. Theid
value of the objectMUST be adata:
URL[RFC2397] that expresses a securedverifiable credential using anenveloping security scheme, such asSecuring Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE]. Thetype
value of the objectMUST beEnvelopedVerifiableCredential
.The example below shows averifiable presentation that contains anenvelopedverifiable credential:
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "type": ["VerifiablePresentation", "ExamplePresentation"],"verifiableCredential": [{ "@context": "https://www.w3.org/ns/credentials/v2", "id": "data:application/vc+sd-jwt,QzVjV...RMjU", "type": "EnvelopedVerifiableCredential" }]}
It is possible that an implementer might want to process the object described inthis section and the enveloped presentation expressed by theid
value in anRDF environment and create linkages between the objects that are relevant toRDF. The desire and mechanisms for doing so are use case dependent and will,thus, be implementation dependent.
It is possible to express averifiable presentation that has been securedusing a mechanism that "envelops" the payload, such asSecuring Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE]. This can be accomplished by using anobject that has atype
ofEnvelopedVerifiablePresentation
.
@context
property of the objectMUST be present and include a context,such as thebase context for this specification,that defines at least theid
,type
, andEnvelopedVerifiablePresentation
terms as defined by the base context provided by this specification. Theid
value of the objectMUST be adata:
URL [RFC2397] that expresses a securedverifiable presentation using anenveloping securing mechanism, such asSecuring Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE]. Thetype
value of the objectMUST beEnvelopedVerifiablePresentation
.The example below shows an envelopedverifiable presentation:
{ "@context": "https://www.w3.org/ns/credentials/v2","id": "data:application/vp+jwt,eyJraWQiO...zhwGfQ", "type": "EnvelopedVerifiablePresentation"}
Some zero-knowledge cryptography schemes might enableholders toindirectly prove they holdclaims from averifiable credentialwithout revealing all claims in thatverifiable credential. In theseschemes, averifiable credential might be used to derive presentabledata, which is cryptographically asserted such that averifier can trustthe value if they trust theissuer.
Some selective disclosure schemes can share a subset ofclaimsderived from averifiable credential.
For an example of a ZKP-styleverifiable presentation containingderived data instead of directly embeddedverifiable credentials, seeSection5.7Zero-Knowledge Proofs.
AholderMAY use theverifiableCredential
property inaverifiable presentation to includeverifiable credentials fromanyissuer, including themselves. When theissuer of averifiable credential is theholder, theclaims in thatverifiable credential are consideredself-asserted.Such self-asserted claims can be secured by the same mechanism that securestheverifiable presentation in which they are included or by anymechanism usable for otherverifiable credentials.
Thesubject(s) of these self-assertedclaimsare not limited, so theseclaims can include statements about theholder, one of the other includedverifiable credentials or eventheverifiable presentation in which the self-assertedverifiable credential is included. In each case, theid
propertyis used to identify the specificsubject, in the object where theclaims about it are made, just as it is done inverifiable credentials that are not self-asserted.
Averifiable presentation that includes a self-assertedverifiable credential, which is secured only using the same mechanism astheverifiable presentation,MUST include aholder
property.
All of the normative requirements defined forverifiable credentialsapply to self-assertedverifiable credentials.
Averifiable credential in averifiable presentation is consideredself-asserted when the value of theissuer
property of theverifiable credential is identical to the value of theholder
property of theverifiable presentation.
The example below shows averifiable presentation that embeds aself-assertedverifiable credential that is secured using the samemechanism as theverifiable presentation.
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "type": ["VerifiablePresentation", "ExamplePresentation"], "holder": "did:example:12345678", "verifiableCredential": [{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "type": ["VerifiableCredential", "ExampleFoodPreferenceCredential"], "issuer": "did:example:12345678", "credentialSubject": { "favoriteCheese": "Gouda" }, {... } }], "proof": [{... }]}
The example below shows averifiable presentation that embeds aself-assertedverifiable credential holdingclaims about theverifiable presentation. It is secured using the same mechanism as theverifiable presentation.
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "type": ["VerifiablePresentation", "ExamplePresentation"],"id": "urn:uuid:313801ba-24b7-11ee-be02-ff560265cf9b", "holder": "did:example:12345678", "verifiableCredential": [{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "type": ["VerifiableCredential", "ExampleAssertCredential"], "issuer": "did:example:12345678", "credentialSubject": {"id": "urn:uuid:313801ba-24b7-11ee-be02-ff560265cf9b", "assertion": "This VP is submitted by the subject as evidence of a legal right to drive" }, "proof": {... } }], "proof": {... }}
Building on the concepts introduced in Section4.Basic Concepts,this section explores more complex topics aboutverifiable credentials.
This section is non-normative.
Theverifiable credentials trust model is based on the followingexpectations:
Where no pre-existing trust relationship exists, theholder mighthave some out-of-band means of determining whether theissuer isqualified to issue theverifiable credential being provided.
Note: It is not always necessary for theholder to trust theissuer,since the issuedverifiable credential might be an assertion aboutasubject who is not theholder, or about no-one, and theholdermight be willing to relay this information to averifier withoutbeing held accountable for its veracity.
This trust model differentiates itself from other trust models by ensuringthe following:
Howverifiers decide whichissuers to trust, and for what data orpurposes, is out of scope for this recommendation. Someissuers, such aswell-known organizations, might be trusted by manyverifiers simply becauseof their reputation. Someissuers andverifiers might be members of acommunity in which all members trust each other due to the rules of membership.Someverifiers might trust a specific trust-service provider whoseresponsibility is to vetissuers and list them in a trust list such as thosespecified inElectronic Signatures and Infrastructures (ESI); Trusted Lists [ETSI-TRUST-LISTS] or theAdobeApproved Trust List.
By decoupling the expectations between theissuer and theverifier,a more flexible and dynamic trust model is created, such that marketcompetition and customer choice is increased.
For more information about how this trust model interacts with various threatmodels studied by the Working Group, see theVerifiable Credentials Use Cases [VC-USE-CASES].
The data model detailed in this specification does not imply a transitive trustmodel, such as that provided by more traditional Certificate Authority trustmodels. In the Verifiable Credentials Data Model, averifier eitherdirectly trusts or does not trust anissuer. While it is possible tobuild transitive trust models using the Verifiable Credentials Data Model,implementers are urged tolearnabout the security weaknesses introduced bybroadly delegating trust in the manner adopted by Certificate Authoritysystems.
One of the goals of the Verifiable Credentials Data Model is to enablepermissionless innovation. To achieve this, the data model needs to beextensible in a number of different ways. The data model is required to:
This approach to data modeling is often called anopen world assumption, meaning that any entity can say anything aboutany other entity. While this approach seems to conflict with building simple andpredictable software systems, balancing extensibility with program correctnessis always more challenging with an open world assumption than with closedsoftware systems.
The rest of this section describes, through a series of examples, how bothextensibility and program correctness are achieved.
Let us assume we start with thecredential shown below.
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://vc.example/credentials/4643", "type": ["VerifiableCredential"], "issuer": "https://issuer.example/issuers/14", "validFrom": "2018-02-24T05:28:04Z", "credentialSubject": { "id": "did:example:abcdef1234567", "name": "Jane Doe" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://vc.example/credentials/4643", "type": [ "VerifiableCredential" ], "issuer": "https://issuer.example/issuers/14", "validFrom": "2018-02-24T05:28:04Z", "credentialSubject": { "id": "did:example:abcdef1234567", "name": "Jane Doe" }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:34Z", "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ", "cryptosuite": "ecdsa-rdfc-2019", "proofPurpose": "assertionMethod", "proofValue": "z3FfiNeGUGhy8ApiRsv42y5VUPFgbieFbUJebkKhkZ6tNASNv6MkiJwNGWczfmrdYdmLZa6r3rtJ4BSF9BjnwrSo8" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://vc.example/credentials/4643", "type": [ "VerifiableCredential" ], "issuer": "https://issuer.example/issuers/14", "validFrom": "2018-02-24T05:28:04Z", "credentialSubject": { "id": "did:example:abcdef1234567", "name": "Jane Doe" }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:34Z", "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv", "cryptosuite": "ecdsa-sd-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0AhVhA8DUmqMDGQOAZ8hIuyi_X-LbT_fD_guDAKeRkRbAwk8aXyQeTRQErpRbOMQiYhWHKelW9XSZSIU3_dk8s-SLLIVgjgCQCEJqTiBGYPxkutgRjtMH-_iViqDBvJl4I9XVBXrsRRBhYIC2fjWyVwswq0oXkkyYFTxwdT5k-XZWMJx7JdwFPfALfg1hApuvVmqTlFFKpI79s8M8CND3arkiGE6talSgE8n2iT9NxbWYgiqH0s3Zxo_eXGCbBoxibB3_VMt9huvsz51yhxVhAj55Js6Ka1i7-mfjrszFmD1W0Lc81XKCtAqHvF-qY2XWd6cpHIwWlSvU3NxSoYpcAdxUrgAu17iEmHMLvpdyllFhAo4kADpzjQ_AeB0nvp-IzeawelLeusg8t2M2yZLPzcN3R4alEKnbWofwSflHD2Yx_QQW3U9Ck9YALaKZbO_KIRYFnL2lzc3Vlcg" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://vc.example/credentials/4643", "type": [ "VerifiableCredential" ], "issuer": "https://issuer.example/issuers/14", "validFrom": "2018-02-24T05:28:04Z", "credentialSubject": { "id": "did:example:abcdef1234567", "name": "Jane Doe" }, "proof": { "type": "DataIntegrityProof", "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD", "cryptosuite": "bbs-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0ChVhQtDW_taTeCBSwoqWX3rzUAFmrR8_TAfE8027nlDX8x4Eiquv_i6S7XU_4mnGV-ODaZYnVuh47RBcLtkevGmEDr_0aXc7ujmM6icKfQgg88cRYQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArvqENcCm8D2khyMGr7-FGFdx818_ufbFmo8hKn_2FgMpYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFggPmXI3YCyx-_cwMML4xSJvv9xy0Xvrw9Qb6s21_i5rHiBZy9pc3N1ZXI" }}
{ "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro", "alg": "ES256"}application/vc
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://vc.example/credentials/4643", "type": [ "VerifiableCredential" ], "issuer": "https://issuer.example/issuers/14", "validFrom": "2018-02-24T05:28:04Z", "credentialSubject": { "id": "did:example:abcdef1234567", "name": "Jane Doe" }}application/vc+jwt
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://vc.example/credentials/4643", "type": [ "VerifiableCredential" ], "issuer": "https://issuer.example/issuers/14", "validFrom": "2018-02-24T05:28:04Z", "credentialSubject": { "id": "did:example:abcdef1234567", "name": "Jane Doe" }}application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1745776714,
"exp": 1746986314,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": "https://issuer.example/issuers/14",
"validFrom": "2018-02-24T05:28:04Z",
"credentialSubject": {
"name": "Jane Doe",
"_sd": [
"uQ66Afeqwuf4ck95r6q1VeVD3qUb54U2mRgYtdVAZdo"
]
},
"_sd": [
"KpuDM0eGikh5pbV8TGYkb6St3Z-FZvCmZldxiu6l2w8",
"bS1P1SNskTohuBTBxO-4qxm8QOmlBiCMxgUrgbCiXs8"
]
}
SHA-256 Hash:KpuDM0eGikh5pbV8TGYkb6St3Z-FZvCmZldxiu6l2w8
Disclosure(s):WyJTZDNNNUZ1LTl3dnRaZU85RTE2dEx3IiwgImlkIiwgImh0dHA6Ly92Yy5leGFtcGxlL2NyZWRlbnRpYWxzLzQ2NDMiXQ
Contents:[
"Sd3M5Fu-9wvtZeO9E16tLw",
"id",
"http://vc.example/credentials/4643"
]
SHA-256 Hash:bS1P1SNskTohuBTBxO-4qxm8QOmlBiCMxgUrgbCiXs8
Disclosure(s):WyJKeHpWdGlUWjE3UVBpRDZpdVJIZDh3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIl1d
Contents:[
"JxzVtiTZ17QPiD6iuRHd8w",
"type",
[
"VerifiableCredential"
]
]
SHA-256 Hash:uQ66Afeqwuf4ck95r6q1VeVD3qUb54U2mRgYtdVAZdo
Disclosure(s):WyJwUEY1VG95bFhTa19FeU8zUmhJT2RRIiwgImlkIiwgImRpZDpleGFtcGxlOmFiY2RlZjEyMzQ1NjciXQ
Contents:[
"pPF5ToylXSk_EyO3RhIOdQ",
"id",
"did:example:abcdef1234567"
]
Thisverifiable credential states that theentity associated withdid:example:abcdef1234567
has aname
with a value ofJane Doe
.
Now let us assume a developer wants to extend theverifiable credentialto store two additional pieces of information: an internal corporate referencenumber, and Jane's favorite food.
The first thing to do is to create a JSON-LD context containing two new terms,as shown below.
{ "@context": { "referenceNumber": "https://extension.example/vocab#referenceNumber", "favoriteFood": "https://extension.example/vocab#favoriteFood" }}
After this JSON-LD context is created, the developer publishes it somewhere soit is accessible toverifiers who will be processing theverifiable credential. Assuming the above JSON-LD context is published athttps://extension.example/my-contexts/v1
, we can extend thisexample by including the context and adding the newproperties andcredentialtype to theverifiable credential.
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2","https://extension.example/my-contexts/v1" ], "id": "http://vc.example/credentials/4643", "type": ["VerifiableCredential", "CustomExt12"], "issuer": "https://issuer.example/issuers/14", "validFrom": "2018-02-24T05:28:04Z","referenceNumber": 83294847, "credentialSubject": { "id": "did:example:abcdef1234567", "name": "Jane Doe","favoriteFood": "Papaya" }}
This example demonstrates extending the Verifiable Credentials Data Model in apermissionless and decentralized way. The mechanism shown also ensures thatverifiable credentials created in this way provide a way to preventnamespace conflicts and semantic ambiguity.
A dynamic extensibility model such as this does increase the implementationburden. Software written for such a system has to determine whetherverifiable credentials with extensions are acceptable based on the riskprofile of the application. Some applications might accept only certainextensions while highly secure environments might not accept any extensions.These decisions are up to the developers of these applications and arespecifically not the domain of this specification.
Extension specification authors are urged to ensure that their documents, suchas JSON-LD Contexts, are highly available. Developers using these documentsmight use software that produces errors when these documents cannot beretrieved. Strategies for ensuring that extension JSON-LD contexts are alwaysavailable include bundling these documents with implementations, contentdistribution networks with long caching timeframes, or usingcontent-addressed URLs for contexts. These approaches are covered in furtherdetail in AppendixB.Contexts, Vocabularies, Types, and Credential Schemas.
Implementers are advised to pay close attention to the extension points in thisspecification, such as in Sections4.10Status,4.11Data Schemas,4.12Securing Mechanisms,5.4Refreshing,5.5Terms of Use, and5.6Evidence. While this specification does not define concreteimplementations for those extension points, theVerifiable Credential Extensions documentprovides an unofficial, curated list of extensions that developers can use fromthese extension points.
When defining new terms in an application-specific vocabulary, vocabularyauthorsSHOULD follow thedetailedchecklist inBest Practices for Publishing Linked Data. Specifically, the following guidance is ofparticular importance:
Furthermore, a machine-readable description (that is, aJSON-LD Context document)MUST bepublished at the URL specified in the@context
property for thevocabulary. This contextMUST map each term to its corresponding URL, possiblyaccompanied by further constraints like the type of the property value. Ahuman-readable document describing the expected order of values for the@context
property is also expected to be published by any implementerseeking interoperability.
When processing theactivecontext defined by the base JSON-LD Context documentdefined in this specification, compliant JSON-LD-basedprocessors produce an error when a JSON-LD contextredefines any term.The only way to change the definition of existing terms is to introduce a newterm that clears the active context within the scope of that new term. Authorsthat are interested in this feature should read about the@protectedkeyword in the JSON-LD 1.1 specification.
Aconforming documentSHOULD NOT use the@vocab
feature in productionas it can lead to JSON term clashes, resulting in semantic ambiguities withother applications. Instead, to achieve proper interoperability, aconforming documentSHOULD use JSON-LD Contexts that define all terms used by theirapplications, as described earlier in Section5.2Extensibility. If aconforming document does not use JSON-LD Contexts that define all termsused, itMUST include thehttps://www.w3.org/ns/credentials/undefined-terms/v2
as the last value in the@context
property.
When including a link to an external resource in averifiable credential, itis desirable to know whether the resource has been modified since theverifiable credential was issued. This applies to cases where there is anexternal resource that is remotely retrieved, as well as to cases where theissuer and/orverifier might have locally cached copies of a resource.It can also be desirable to know that the contents of the JSON-LD context(s)used in theverifiable credential are the same when used by theverifieras they were when used by theissuer.
To extend integrity protection to a related resource, anissuer of averifiable credentialMAY include therelatedResource
property:
relatedResource
propertyMUST be one or more objects of thefollowing form:Property | Description |
---|---|
id | The identifier for the resource isREQUIRED and conforms to the format definedin Section4.4Identifiers. The valueMUST be unique among the list ofrelated resource objects. |
mediaType | AnOPTIONAL valid media type as listed in theIANA Media Types registry. |
digestSRI | One or more cryptographic digests, as defined by thehash-expression ABNFgrammar defined in theSubresource Integrity specification,Section 3.5: Theintegrity attribute. |
digestMultibase | One or more cryptographic digests, as defined by thedigestMultibase property in theVerifiable Credential Data Integrity 1.0specification,Section 2.6: Resource Integrity. |
relatedResource
MUST contain at least adigestSRI
or adigestMultibase
value.If amediaType
is listed, implementations that retrieve the resourceidentified by theid
property usingHTTP SemanticsSHOULD:
Accept
HTTP Header, andContent-Type
HTTP Header with a differentmedia type.Any object in theverifiable credential that contains anid
propertyMAY be annotated with integrity information by adding either thedigestSRI
ordigestMultibase
property, either of whichMAY beaccompanied by the additionally optionalmediaType
property.
Any objects for which selective disclosure or unlinkable disclosure is desiredSHOULD NOT be included as an object in therelatedResource
array.
Aconforming verifier implementation that makes use of a resource based ontheid
of arelatedResource
object inside aconforming document with acorresponding cryptographic digest appearing in arelatedResource
object valueMUST compute the digest of the retrieved resource. If the digest provided by theissuer does not match the digest computed for the retrieved resource, theconforming verifier implementationMUST produce an error.
Implementers are urged to consult appropriate sources, such as theFIPS 180-4 Secure Hash Standard and theCommercial National Security Algorithm Suite 2.0 to ensure that they arechoosing a current and reliable hash algorithm. At the time of this writingsha384
SHOULD be considered the minimum strength hash algorithm for use byimplementers.
An example of a related resource integrity object referencing JSON-LD contexts.
"relatedResource": [{ "id": "https://www.w3.org/ns/credentials/v2", "digestSRI": "sha384-Ml/HrjlBCNWyAX91hr6LFV2Y3heB5Tcr6IeE4/Tje8YyzYBM8IhqjHWiWpr8+ZbYU"},{ "id": "https://www.w3.org/ns/credentials/examples/v2", "digestSRI": "sha384-MzNNbQTWCSUSi0bbz7dbua+RcENv7C6FvlmYJ1Y+I727HsPOHdzwELMYO9Mz68M26"}]
"relatedResource": [{ "id": "https://www.w3.org/ns/credentials/v2", "digestMultibase": "uEiBZlVztZpfWHgPyslVv6-UwirFoQoRvW1htfx963sknNA"},{ "id": "https://www.w3.org/ns/credentials/examples/v2", "digestMultibase": "uEiBXOT-8adbvubm13Jy2uYgLCUQ2Cr_i6vRZyeWM8iedfA"}]
It is useful for systems to enable the manual or automatic refresh of an expiredverifiable credential. For more information about validity periods forverifiable credentials, see SectionA.7Validity Periods.This specification defines arefreshService
property, whichenables anissuer to include a link to a refresh service.
Theissuer can include the refresh service as an element inside theverifiable credential if it is intended for either theverifier ortheholder (or both), or inside theverifiable presentation if itis intended for theholder only. In the latter case, this enables theholder to refresh theverifiable credential before creating averifiable presentation to share with averifier. In the formercase, including the refresh service inside theverifiable credentialenables either theholder or theverifier to perform futureupdates of thecredential.
The refresh service is only expected to be used when either thecredential has expired or theissuer does not publishcredential status information.Issuers are advised not to put therefreshService
property in averifiable credentialthat does not contain public information or whose refresh service is notprotected in some way.
refreshService
propertyMUST be one or morerefresh services that provides enough information to the recipient's softwaresuch that the recipient can refresh theverifiable credential. EachrefreshService
valueMUST specify itstype
. The precise content of eachrefresh service is determined by the specificrefreshService
typedefinition.{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://w3id.org/age/v1" ], "type": ["VerifiableCredential", "AgeVerificationCredential"], "issuer": "did:key:z6MksFxi8wnHkNq4zgEskSZF45SuWQ4HndWSAVYRRGe9qDks", "validFrom": "2024-04-03T00:00:00.000Z", "validUntil": "2024-12-15T00:00:00.000Z", "name": "Age Verification Credential", "credentialSubject": { "overAge": 21 },"refreshService": { "type": "VerifiableCredentialRefreshService2021", "url": "https://registration.provider.example/flows/reissue-age-token", "refreshToken": "z2BJYfNtmWRiouWhDrbDQmC2zicUPBxsPg" }}
In the example above, theissuer specifies an automaticrefreshService
that can be used by POSTing theverifiable credential tothe refresh serviceurl
. Note that this particular verifiable credential isnot intended to be shared with anyone except for the original issuer.
Placing arefreshService
property in averifiable credential so that it is available toverifiers canremove control and consent from theholder and allow theverifiable credential to be issued directly to theverifier,thereby bypassing theholder.
Terms of use can be used by anissuer or aholder tocommunicate the terms under which averifiable credential orverifiable presentation was issued. Theissuer places their termsof use inside theverifiable credential. Theholder places theirterms of use inside averifiable presentation. This specification definesatermsOfUse
property for expressing terms of useinformation.
The value of thetermsOfUse
property might be usedto tell theverifier any or all of the following, among other things:
termsOfUse
propertyMUST specify one ormore terms of use policies under which the creator issued thecredentialorpresentation. If the recipient (aholder orverifier) is not willing to adhere to the specified terms of use, thenthey do so on their own responsibility and might incur legal liability if theyviolate the stated terms of use. EachtermsOfUse
valueMUST specifyitstype, for example,TrustFrameworkPolicy
, andMAY specify itsinstanceid
. The precise contents of each term of use is determinedby the specifictermsOfUse
type definition.{ { "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/undefined-terms/v2" ], "id": "urn:uuid:08e26d22-8dca-4558-9c14-6e7aa7275b9b", "type": [ "VerifiableCredential", "VerifiableAttestation", "VerifiableTrustModel", "VerifiableAuthorisationForTrustChain" ], "issuer": "did:ebsi:zZeKyEJfUTGwajhNyNX928z", "validFrom": "2021-11-01T00:00:00Z", "validUntil": "2024-06-22T14:11:44Z", "credentialSubject": { "id": "did:ebsi:zvHWX359A3CvfJnCYaAiAde", "reservedAttributeId": "60ae46e4fe9adffe0bc83c5e5be825aafe6b5246676398cd1ac36b8999e088a8", "permissionFor": [{ "schemaId": "https://api-test.ebsi.eu/trusted-schemas-registry/v3/schemas/zHgbyz9ajVuSProgyMhsiwpcp8g8aVLFRNARm51yyYZp6", "types": [ "VerifiableCredential", "VerifiableAttestation", "WorkCertificate" ], "jurisdiction": "https://publications.europa.eu/resource/authority/atu/EUR" }] }, "termsOfUse": { "type": "TrustFrameworkPolicy", "trustFramework": "Employment&Life", "policyId": "https://policy.example/policies/125", "legalBasis": "professional qualifications directive" }, "credentialStatus": { "id": "https://api-test.ebsi.eu/trusted-issuers-registry/v5/issuers/did:ebsi:zvHWX359A3CvfJnCYaAiAde/attributes/60ae46e4fe9adffe0bc83c5e5be825aafe6b5246676398cd1ac36b8999e088a8", "type": "EbsiAccreditationEntry" }, "credentialSchema": { "id": "https://api-test.ebsi.eu/trusted-schemas-registry/v3/schemas/zCSHSDwrkkd32eNjQsMCc1h8cnFaxyTXP5ByozyVQXZoH", "type": "JsonSchema" } }}
In the example above, theissuer is asserting that the legal basisunder which theverifiable credential has been issued is the"professional qualifications directive" using the "Employment&Life" trustframework, with a specific link to the policy.
This feature is expected to be used by government-issuedverifiable credentials to instruct digital wallets to limit their use to similargovernment organizations in an attempt to protect citizens from unexpected useof sensitive data. Similarly, someverifiable credentials issued by privateindustry are expected to limit use to within departments inside theorganization, or during business hours. Implementers are urged to read moreabout this evolving feature in the appropriate section of the VerifiableCredentials Implementation Guidelines [VC-IMP-GUIDE] document.
Evidence can be included by anissuer to provide theverifier withadditional supporting information in averifiable credential. This could beused by theverifier to establish the confidence with which it relies on theclaims in theverifiable credential. For example, anissuer could checkphysical documentation provided by thesubject or perform a set ofbackground checks before issuing thecredential. In certain scenarios, thisinformation is useful to theverifier when determining the risk associatedwith relying on a givencredential.
This specification defines theevidence
property for expressing evidenceinformation.
evidence
propertyMUST be either a singleobject or a set of one or more objects. The followingproperties are definedfor every evidence object:id
property isOPTIONAL. ItMAY be used to provide a unique identifierfor the evidence object. If present, the normative guidance in Section4.4IdentifiersMUST be followed.type
property isREQUIRED. It is used to express the type of evidenceinformation expressed by the object. The related normative guidance in Section4.5TypesMUST be followed.For information about how attachments and references tocredentials andnon-credential data might be supported by the specification, see Section5.3Integrity of Related Resources.
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json" ], "id": "http://1edtech.edu/credentials/3732", "type": [ "VerifiableCredential", "OpenBadgeCredential" ], "issuer": { "id": "https://1edtech.edu/issuers/565049", "type": "Profile" }, "credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "type": "AchievementSubject", "name": "Alice Smith", "activityEndDate": "2023-12-02T00:00:00Z", "activityStartDate": "2023-12-01T00:00:00Z", "awardedDate": "2024-01-01T00:00:00Z", "achievement": [{ "id": "urn:uuid:d46e8ef1-c647-419b-be18-5e045d1c4e64", "type": ["Achievement"], "name": "Basic Barista Training", "criteria": { "narrative": "Team members are nominated for this badge by their supervisors, after passing the Basic Barista Training course." }, "description": "This achievement certifies that the bearer is proficient in basic barista skills." }] }, "evidence": [{// url to an externally hosted evidence file/artifact "id": "https://videos.example/training/alice-espresso.mp4", "type": ["Evidence"], "name": "Talk-aloud video of double espresso preparation", "description": "This is a talk-aloud video of Alice demonstrating preparation of a double espresso drink.",// digest hash of the mp4 video file "digestMultibase": "uELq9FnJ5YLa5iAszyJ518bXcnlc5P7xp1u-5uJRDYKvc" } ]}
In theevidence
example above, theissuer is asserting that they havevideo of thesubject of thecredential demonstrating the achievement.
Theevidence
property provides information that is different from andinformation to the securing mechanism used. Theevidence
property isused to express supporting information, such as documentary evidence, related totheverifiable credential. In contrast, the securing mechanism is used toexpress machine-verifiable mathematical proofs related to the authenticity oftheissuer and integrity of theverifiable credential. For moreinformation about securing mechanisms, see Section4.12Securing Mechanisms.
Zero-knowledge proofs aresecuring mechanismswhich enable aholder to prove that they hold averifiable credentialcontaining a value without disclosing the actual value such as being able toprove that an individual is over the age of 25 without revealing their birthday.This data model supports being secured using zero-knowledge proofs.
Some capabilities that are compatible withverifiable credentials which aremade possible by zero-knowledge proof mechanisms include:
Specification authors that createsecuring mechanismsMUST NOT design them insuch a way that they leak information that would enable theverifier tocorrelate aholder across multipleverifiable presentations to differentverifiers.
Not all capabilities are supported in all zero-knowledge proof mechanisms.Specific details about the capabilities and techniques provided by a particularzero knowledge proof mechanism, along with any normative requirements for usingthem withverifiable credentials, would be found in a specification forsecuringverifiable credentials with that zero-knowledge proof mechanism.For an example of such a specification, refer to theData Integrity BBS Cryptosuites v1.0.
We note that in most instances, for theholder to make use of zero knowledgemechanisms withverifiable credentials, theissuer is required to securetheverifiable credential in a manner that supports these capabilities.
The diagram below highlights how the data model might be used to issue andpresentverifiable credentials in zero-knowledge.
An example of averifiable credential and averifiable presentationusing theData Integrity BBS Cryptosuites v1.0 unlinkable selective disclosure securing mechanism isshown below.
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://w3id.org/citizenship/v3" ], "type": ["VerifiableCredential", "PermanentResidentCard"], "issuer": { "id": "did:web:credentials.utopia.example", "image": "data:image/png;base64,iVBORw0KGgo...YII=" }, "identifier": "83627465", "name": "Permanent Resident Card", "description": "Government of Utopia Permanent Resident Card.", "validFrom": "2024-08-01T00:00:00Z", "validUntil": "2029-12-01T00:00:00Z", "credentialSubject": { "type": ["PermanentResident", "Person"], "givenName": "JANE", "familyName": "SMITH", "gender": "Female", "image": "data:image/png;base64,iVBORw0KGgoAA...Jggg==", "residentSince": "2015-01-01", "lprCategory": "C09", "lprNumber": "999-999-999", "commuterClassification": "C1", "birthCountry": "Arcadia", "birthDate": "1978-07-17" }, "proof":{ "type": "DataIntegrityProof", "verificationMethod": "did:web:playground.alpha.chapi.io#zUC75LjjCLGKRxSissX1nAebRDmY4Bv4T6MAbzgaap9Q8rAGf6SEjc2Hf4nH6bUPDwky3GWoYcUjMCcEqRRQfXEiNwfeDwNYLoeqk1J1W2Ye8vCdwv4fSd8AZ1yS6UoNzcsQoPS", "cryptosuite": "bbs-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0ChVhQjYs9O7wUb3KRSMaIRX7jmafVHYDPYBLD4ta85_qmuXTBU_t2Ir7pNujwRE6fERsBUEZRSjJjtI-hqOqDs3VvBvH6gd3o2KeUS2V_zpuphPpYQEkapOeQgRTak9lHKSTqEQqa4j2lyHqekEeGvzPlqcHQGFccGifvLUXtP59jCuGJ86HDA9HL5kDzUT6n4Gi50HlYYIzNqhbjIxlqOuxO2IgIppSTWjQGeer34-PmKnOzKX8m_9DHPhif7TUf5uTV4OQWdhb0SxHnJ-CPu_z9FJ5ACekBQhz6YWS0_CY6j_ibucXzeVfZwLv1W47pjbt-l1Vl5VggSn2xVt69Q0GD9mPKpOhkKV_hyOL7i6haf7bq-gOKAwWDZy9pc3N1ZXJtL2lzc3VhbmNlRGF0ZW8vZXhwaXJhdGlvbkRhdGU" }}
The example above is averifiable credential where theissuer hasenabled a BBS-based unlinkable disclosure scheme to create a base proof thatcan then be used by theholder to create a derived proof that reveals onlyparticular pieces of information from the originalverifiable credential.
{ @context: "https://www.w3.org/ns/credentials/v2" type: "VerifiablePresentation", verifiableCredential: { "@context": [ "https://www.w3.org/ns/credentials/v2", "https://w3id.org/citizenship/v3" ], "type": ["VerifiableCredential", "PermanentResidentCard"], "issuer": { "id": "did:web:issuer.utopia.example", "image": "data:image/png;base64,iVBORw0KGgo...YII=" }, "name": "Permanent Resident Card", "description": "Government of Utopia Permanent Resident Card.", "validFrom": "2024-08-01T00:00:00Z", "validUntil": "2029-12-01T00:00:00Z", "credentialSubject": { "type": ["PermanentResident", "Person"], "birthCountry": "Arcadia" }, "proof":{ type: "DataIntegrityProof", verificationMethod: "did:web:issuer.utopia.example#zUC75LjjCLGKRxSissX1nAebRDmY4Bv4T6MAbzgaap9Q8rAGf6SEjc2Hf4nH6bUPDwky3GWoYcUjMCcEqRRQfXEiNwfeDwNYLoeqk1J1W2Ye8vCdwv4fSd8AZ1yS6UoNzcsQoPS", cryptosuite: "bbs-2023", proofPurpose: "assertionMethod", proofValue: "u2V0DhVkCkLdnshxHtgeHJBBUGPBqcEooPp9ahgqs08RsoqW5EJFmsi70jqf2X368VcmfdJdYcYJwObPIg5dlyaoBm34N9BqcZ4RlTZvgwX79ivGnqLALC0EqKn2wOj5hRO76xUakfLGIcT4mE-G7CxA1FTs8sRCWy5p6FozelBYiZU2YlhUpJ7pBwelZ9wnlcbj4q-KyxAj5GU2iWp7-FxU-E624DmdT-yvCkAGRRrYej6lMwg7jB9uCHypOXXH2dVZ-jpf74YBaE4rMTxPFh60GN4o3S65F1fMsJbEMLdrXa8Vs6ZSlmveUcY1X7oPr1UIxo17ehVTCjOxWunYqrtLi9cVkYOD2s9XMk1oFVWBB3UY29axXQQXlZVfvTIUsfVc667mnlYbF7a-ko_SUfeY2n3s1DOAap5keeNU0v2KVPCbxA2WGz7UJy4xJv2a8olMOWPKjAEUruCx_dsbyicd-9KGwhYoUEO3HoAzmtI6qXVhMbJKxPrhtcp8hOdD9izVS5ed4CxHNaDGPSopF_MBwjxwPcpUufNNNdQwesrbtFJo0-P-1CrX_jSxKFMle2b3t24UbHRbZw7QnX4OG-SSVucem5jpMXTDFZ8PLFCqXX0zncJ_MQ-_u-liE-MwJu3ZemsXBp1JoB2twS0TqDVzSWR7bpFZKI9_07fKUAmQNSV_no9iAgYRLuPrnnsW1gQgCV-nNqzbcCOpzkHdCqro6nPSATq5Od3Einfc683gm5VGWxIldM0aBPytOymNz7PIZ6wkgcMABMe5Vw46B54ftW-TN5YZPDmCJ_kt7Mturn0OeQr9KJCu7S0I-SN14mL9KtGE1XDnIeR-C_YZhSA3vX4923v1l3vNFsKasqy9iEPHKM0hcogABAQCGAAECBAUGhAMJCgtYUnsiY2hhbGxlbmdlIjoiNGd2OFJyaERPdi1OSHByYlZNQlM1IiwiZG9tYWluIjoiaHR0cHM6Ly9wbGF5Z3JvdW5kLmFscGhhLmNoYXBpLmlvIn0" } }}
Theverifiable presentation above includes averifiable credential thatcontains an unlinkable subset of the information from the previous example and aderived proof that theverifier can use to verify that the informationoriginated from the expectedissuer and is bound to this particularexchange of information.
Implementers are urged to understand that representing and processing timevalues is not as straight-forward as it might seem and have a variety ofidiosyncrasies that are not immediately obvious nor uniformly observed indifferent regions of the world. For example:
2023-01-01T00:00:00Z
), regardless of whether the system in questionunderstands leap seconds.These are just a few examples that illustrate that the actual time of day, aswould be seen on a clock on the wall, can exist in one region but not exist inanother region. For this reason, implementers are urged to use time valuesthat are more universal, such as values anchored to theZ
time zone overvalues that are affected by Daylight Saving/Summer Time.
This specification attempts to increase the number of universally recognizedcombinations of dates and times, and reduce the potential formisinterpretation of time values, by using thedateTimeStamp
construction first established by the [XMLSCHEMA11-2] specification. Inorder to reduce misinterpretations between different time zones, all time valuesexpressed inconforming documentsSHOULD be specified indateTimeStamp
format, either in Universal Coordinated Time (UTC), denoted by aZ
at the endof the value, or with a time zone offset relative to UTC. Time values that areincorrectly serialized without an offsetMUST be interpreted as UTC. Examples ofvalid time zone offsets relative to UTC includeZ
,+01:00
,-08:00
, and+14:00
. See the regular expression at the end of this section for a formaldefinition of all acceptable values.
Time zone definitions are occasionally changed by their governing body. Whenreplacing or issuing newverifiable credentials, implementers are advisedto ensure that changes to local time zone rules do not result in unexpected gapsin validity. For example, consider the zoneAmerica/Los_Angeles
, which hasa raw offset of UTC-8 and had voted to stop observing daylight savings time inthe year 2024. A givenverifiable credential that had avalidUtil
value of2024-07-12T12:00:00-07:00
, might be re-issued to have avalidFrom
value of2024-07-12T12:00:00-08:00
, which would create a gap ofan hour where theverifiable credential would not be valid.
Implementers that desire to checkdateTimeStamp
values for validitycan use the regular expression provided below, which is reproduced from the [XMLSCHEMA11-2] specification forconvenience. To avoid doubt, the regular expression in [XMLSCHEMA11-2] is thenormative definition. Implementers are advised that not alldateTimeStamp
values that pass the regular expression below arevalid moments in time. For example, the regular expression below allows for 31days in every month, which allows for leap years, and leap seconds, as well asdays in places where they do not exist. That said, modern system libraries thatgeneratedateTimeStamp
values are often error-free in theirgeneration of validdateTimeStamp
values. The regularexpression shown below (minus the whitespace included here for readability),is often adequate when processing library-generated dates and times onmodern systems.
-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?|(24:00:00(\.0+)?))(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))
This section is non-normative.
Verifiable credentials are intended as a means of reliably identifyingsubjects. While it is recognized that Role Based Access Controls (RBACs)and Attribute Based Access Controls (ABACs) rely on this identification as ameans of authorizingsubjects to access resources, this specificationdoes not provide a complete solution for RBAC or ABAC. Authorization is not anappropriate use for this specification without an accompanying authorizationframework.
The Working Group did consider authorization use cases during the creation ofthis specification and is pursuing that work as an architectural layer builton top of this specification.
This specification reserves a number ofproperties to serve as possibleextension points. While some implementers signaled interest in these properties,their inclusion in this specification was considered to be premature. It isimportant to note that none of these properties are defined by thisspecification. Consequently, implementers are cautioned that use of theseproperties is considered experimental.
ImplementersMAY use these properties, butSHOULD expect them and/ortheir meanings to change during the process of normatively specifying them.ImplementersSHOULD NOT use these properties without a publicly disclosedspecification describing their implementation.
In order to avoid collisions regarding how the following properties are used,implementationsMUST specify atype
property in the value associated with thereserved property. For more information related to addingtype
information,see Section4.5Types.
Reserved Property | Description |
---|---|
confidenceMethod | A property used for specifying one or more methods that a verifier might use toincrease their confidence that the value of a property in or of a verifiablecredential or verifiable presentation is accurate. The associated vocabularyURLMUST behttps://www.w3.org/2018/credentials#confidenceMethod . |
renderMethod | A property used for specifying one or more methods to render a credential into avisual, auditory, haptic, or other format. The associated vocabulary URLMUST behttps://www.w3.org/2018/credentials#renderMethod . |
An unofficial list of specifications that are associated with the extensionpoints defined in this specification, as well as the reserved extension pointsdefined in this section, can be found in theVerifiable Credential Extensions. Items in thedirectory that refer to reserved extension pointsSHOULD be treated asexperimental.
There are a number of digital credential formats that do not natively use thedata model provided in this document, but are aligned with a number of conceptsin this specification. At the time of publication, examples of these digitalcredential formats includeJSON Web Tokens (JWTs),CBOR Web Tokens (CWTs),JSON Advanced Electronic Signature (JAdES),ISO-18013-5:2021(mDLs),AnonCreds,Gordian Envelopes, andAuthentic Chained Data Containers (ACDCs).
If conceptually aligned digital credential formats can be transformed into aconforming document according to the rules provided in this section, theyare considered"compatible with theW3C Verifiable Credentialsecosystem". Specification authors are advised to adhere to the followingrules when documenting transformations that enable compatibility with theVerifiable Credentials ecosystem. The transformation specification —
@context
values when performing round-trippabletransformation.Readers are advised that a digital credential is only considered compatible withtheW3C Verifiable Credentials ecosystem if it is aconforming documentand it uses at least one securing mechanism, as described by theirrespective requirements in this specification. While some communities might callsome digital credential formats that are notconforming documents"verifiable credentials", doing so does NOT make that digital credentialcompliant to this specification.
When expressingverifiable credentials (for example in apresentation), it is important to ensure that data in oneverifiable credential is not mistaken to be the same data in anotherverifiable credential. For example, if one has twoverifiable credentials, eachcontaining an object of the following form:{"type": "Person", "name": "JaneDoe"}
, it is not possible to tell if one object is describing the same personas the other object. In other words, merging data between twoverifiable credentials without confirming that they are discussing the same entitiesand/or properties, can lead to a corrupted data set.
To ensure that data from differentverifiable credentials are notaccidentally co-mingled, the concept of averifiablecredential graph is used to encapsulate eachverifiable credential.For simpleverifiable credentials, that is, when the JSON-LD documentcontains a single credential with, possibly, associated proofs, this graph isthedefault graph. Forpresentations, each value associated withtheverifiableCredential
property of thepresentation is a separatenamed graph of typeVerifiableCredentialGraphwhich contains a singleverifiable credential or anenveloped verifiable credential.
Using thesegraphs has a concrete effect when performing JSON-LDprocessing, which properly separates graph node identifiers in one graph fromthose in another graph. Implementers that limit their inputs toapplication-specific JSON-LD documents will also need to keep this in mind ifthey merge data from oneverifiable credential with data from another,such as when thecredentialSubject.id
is the same in bothverifiable credentials, but the object might contain objects of the "Jane Doe" formdescribed in the previous paragraph. It is important to not merge objects thatseem to have similar properties but do not contain anid
property that uses aglobal identifier, such as a URL.
As described in Section4.12Securing Mechanisms, there aremultiple strategies that an implementer can use when securing aconforming document. In order to maximize utility and interoperability,specification authors that desire to author new ways of securingconforming documents are provided with the guidance in this section.
Securing mechanism specificationsMUST document normative algorithms thatprovide content integrity protection forconforming documents. ThealgorithmsMAY be general in nature andMAY be used to secure data other thanconforming documents.
Securing mechanism specificationsMUST provide a verification algorithm thatreturns the information in theconforming document that has been secured, inisolation, without including any securing mechanism information, such asproof
orJOSE/COSE header parameters and signatures. Verification algorithmsMAY returnadditional information that might be helpful (for example, during validation orfor debugging purposes), such as details of the securing mechanism. A verificationalgorithmMUST provide an interface that receives a media type (stringinputMediaType) and input data (byte sequence ormapinputData).Securing mechanism specificationsMAY provide algorithms and interfaces inaddition to the ones specified in this document. The verification algorithmreturns a verification result with at least the followingitems:
true
if the verification succeeded andfalse
if it did not.Securing mechanism specificationsSHOULD provide integrity protection for anyinformation referenced by a URL that is critical to validation. Mechanisms thatcan achieve this protection are discussed in Section5.3Integrity of Related Resources and SectionB.1Base Context.
A securing mechanism specification that creates a new type ofembedded proofMUST specify aproperty that relates theverifiable credential orverifiable presentation to aproof graph.The requirements on the securing mechanism are as follow:
@context
files in the same manner as they are used by this specification.The last requirement means that the securing mechanism secures thedefault graph and, forverifiable presentations, eachverifiable credentialof the presentation, together with their respectiveproof graphs.See alsoFigure9 orFigure14.
Theproof
property as defined in [VC-DATA-INTEGRITY]MAY be used by theembedded securing mechanism.
Securing mechanism specificationsSHOULD register the securing mechanism in theSecuring Mechanismssection of theVerifiable Credential Extensions document.
There are multiple acceptable securing mechanisms, and this specification doesnot mandate any particular securing mechanism for use withverifiable credentials orverifiable presentations.The Working Group that produced this specification did standardize twosecuring mechanism options, which are:Verifiable Credential Data Integrity 1.0 [VC-DATA-INTEGRITY] andSecuring Verifiable Credentials using JOSE and COSE[VC-JOSE-COSE]. Other securing mechanisms that are known to the communitycan be found in theSecuring Mechanismssection of theVerifiable Credential Extensions document.
The data model as described in Sections3.Core Data Model,4.Basic Concepts, and5.Advanced Concepts is the canonical structuralrepresentation of averifiable credential orverifiable presentation.All syntaxes are representations of that data model in a specific format. Thissection specifies how the data model is serialized in JSON-LD forapplication/vc
andapplication/vp
, the base media types forverifiable credentials andverifiable presentations, respectively. Although syntacticmappings are only provided for JSON-LD, applications and services can use anyother data representation syntax (such as XML, YAML, or CBOR) that is capable ofbeing mapped back toapplication/vc
orapplication/vp
. As theverification andvalidation requirements are defined in terms of thedata model, all serialization syntaxes have to be deterministically translatedto the data model for processing,validation, or comparison.
The expected arity of the property values in this specification, and theresulting datatype which holds those values, can vary depending on the property.If present, the following properties are represented as a single value:id
(Section4.4Identifiers),issuer
(Section4.7Issuer), andvalidFrom
/validUntil
(Section4.9Validity Period). All other properties,if present, are represented as either a single value or an array of values.
This specification usesJSON-LD 1.1 to serialize the data model described inthis specification. JSON-LD is useful because it enables the expression of thegraph-based data model on whichverifiable credentials are based,machine-readablesemantics, and is also useful when extending the data model (see Sections3.Core Data Model and5.2Extensibility).
JSON-LD is a JSON-based format used to serializeLinked Data. LinkedData is modeled using Resource Description Framework (RDF) [RDF11-CONCEPTS].RDF is a technology for modeling graphs of statements. Each statement is asinglesubject→property→value (also known asentity→attribute→value) relationship, which is referred to as aclaim in this specification. JSON-LD is a technology that enables theexpression of RDF using idiomatic JSON, enabling developers familiar with JSONto write applications that consume RDF as JSON. SeeRelationship of JSON-LD to RDFfor more details.
In general, the data model and syntax described in this document enablesdevelopers to largely treatverifiable credentials as JSON documents,allowing them to copy and paste examples, with minor modification, into theirsoftware systems. The design goal of this approach is to provide a low barrierto entry while still ensuring global interoperability between a heterogeneousset of software systems. This section describes some of the JSON-LD featuresthat are used to make this possible, which will likely go unnoticed by mostdevelopers, but whose details might be of interest to implementers. The mostnoteworthy features inJSON-LD 1.1 used by this specification include:
@id
and@type
keywords are aliased toid
andtype
respectively, enabling developers to usethis specification as idiomatic JSON.verifiableCredential
propertyis defined as aJSON-LD 1.1 graphcontainer. This requires the creation ofnamed graphs, used to isolatesets of data asserted by different entities. This ensures, for example, propercryptographic separation between the data graph provided by eachissuerand the one provided by theholder presenting theverifiable credential to ensure the provenance of the information for each graph ispreserved.@protected
properties feature ofJSON-LD 1.1 is used to ensure thatterms defined by this specification cannot be overridden. This means that aslong as the same@context
declaration is made at the top of averifiable credential orverifiable presentation, interoperability is guaranteed forall terms understood by users of the data model whether or not they use aJSON-LD 1.1 processor.In order to increase interoperability, this specification restricts the use ofJSON-LD representations of the data model. JSON-LDcompacted documentformMUST be used for all representations of the data model using theapplication/vc
orapplication/vp
media type.
As elaborated upon in Section6.3Type-Specific Credential Processing, some software applicationsmight not perform generalized JSON-LD processing. Authors ofconforming documents are advised that interoperability might be reduced if JSON-LDkeywords in the@context
value are used to globally affect values in averifiable credential orverifiable presentation, such as bysetting either or both of the@base
or@vocab
keywords. For example, settingthese values might trigger a failure in a mis-implemented JSON Schema test ofthe@context
value in an implementation that is performingtype-specific credential processing and not expecting the@base
and/or@vocab
value tobe expressed in the@context
value.
In order to increase interoperability,conforming document authors areurged to not use JSON-LD features that are not easily detected when performingtype-specific credential processing. These features include:
@context
value that globallymodify document term and value processing, such as setting@base
or@vocab
@vocab
@context
propertyhttps://www.w3.org/2018/credentials#VerifiableCredential
orhttps://vocab.example/myvocab#SomeNewType
) instead of the short forms ofany such values (for example,VerifiableCredential
orSomeNewType
) that areexplicitly defined in JSON-LD@context
mappings (for example, inhttps://www.w3.org/ns/credentials/v2
)While this specification cautions against the use of@vocab
, there arelegitimate uses of the feature, such as to ease experimentation, development,and localized deployment. If an application developer wants to use@vocab
inproduction, which is advised against to reduce term collisions and leverage thebenefits of semantic interoperability, they are urged to understand that any useof@vocab
will disable reporting of "undefined term" errors, andlater use(s) will override any previous@vocab
declaration(s). Different valuesof@vocab
can change the semantics of the information contained in the document,so it is important to understand whether and how these changes will affect theapplication being developed.
Lists, arrays, and even lists of lists, are possible when usingJSON-LD 1.1.We encourage those who want RDF semantics in use cases requiring lists andarrays to follow the guidance onlists in JSON-LD 1.1.
In general, a JSON array is ordered, while a JSON-LD array is not ordered unlessthat array uses the@list
keyword.
While it is possible to use this data model by performingtype-specific credential processing, those who do so and make use of arrays need to be awarethat unless the above guidance is followed, the order of items in an arrayare not guaranteed in JSON-LD. This might lead to unexpected behavior.
If JSON structure or ordering is important to your application, we recommend youmark such elements as@json
via an@context
that is specific to youruse case. An example of such a declaration is shown below.
{"@context":{"matrix":{"@id":"https://website.example/vocabulary#matrix","@type":"@json"}}}
When the context shown above is used in the example below, by including thehttps://website.example/matrix/v1
context in the@context
property, thevalue incredentialSubject.matrix
retains its JSON semantics; the exact orderof all elements in the two dimensional matrix is preserved.
{"@context":["https://www.w3.org/ns/credentials/v2","https://www.w3.org/ns/credentials/examples/v2","https://website.example/matrix/v1"],"id":"http://university.example/credentials/1872","type":["VerifiableCredential","ExampleMatrixCredential"],"issuer":"https://university.example/issuers/565049","validFrom":"2010-01-01T19:23:24Z","credentialSubject":{"id":"did:example:ebfeb1f712ebc6f1c276e12ec21","matrix":[[1,2,3,4,5,6,7,8,9,10,11,12],[1,1,1,1,1,1,1,1,0,0,0,0],[0,0,1,1,1,1,1,1,1,0,0,0]]}}
Media types, as defined in [RFC6838], identify the syntax used to express averifiable credential as well as other useful processing guidelines.
Syntaxes used to express the data model in this specificationSHOULD beidentified by a media type, and conventions outlined in this sectionSHOULD befollowed when defining or using media types withverifiable credentials.
There are two media types associated with the core data model, which arelisted in the SectionC.IANA Considerations:application/vc
andapplication/vp
.
Theapplication/vc
andapplication/vp
media types do notimply any particular securing mechanism, but are intended to be used inconjunction with securing mechanisms. A securing mechanism needs to be appliedto protect the integrity of these media types. Do not assume security of contentregardless of the media type used to communicate it.
This section is non-normative.
At times, developers or systems might use lower precision media types to conveyverifiable credentials orverifiable presentations. Some of the reasonsfor use of lower precision media types include:
text/plain
orapplication/octet-stream
when a fileextension is not available and it cannot determine the media type..json
could result in amedia type ofapplication/json
and.jsonld
might result in a media type ofapplication/ld+json
.application/json
instead ofapplication/vp
,Implementers are urged to not raise errors when it is possible to determine theintended media type from a payload, provided that the media type used isacceptable in the given protocol. For example, if an application only acceptspayloads that conform to the rules associated with theapplication/vc
mediatype, but the payload is tagged withapplication/json
orapplication/ld+json
instead, the application might perform the following steps to determine whetherthe payload also conforms to the higher precision media type:
@context
property matcheshttps://www.w3.org/ns/credentials/v2
.application/vp
media type if the JSON document contains a top-leveltype
property containing aVerifiablePresentation
element. Additionalsubsequent checks are still expected to be performed (according to thisspecification) to ensure the payload expresses a conformantverifiable presentation.application/vc
media type if the JSON document contains a top-leveltype
property containing aVerifiableCredential
element. Additionalsubsequent checks are still expected to be performed (according to thisspecification) to ensure the payload expresses a conformantverifiable credential.Whenever possible, implementers are advised to use the most precise (the highestprecision) media type for all payloads defined by this specification.Implementers are also advised to recognize that a payload tagged with a lowerprecision media type does not mean that the payload does not meet the rulesnecessary to tag it with a higher precision type. Similarly, a payload taggedwith a higher precision media type does not mean that the payload will meet therequirements associated with the media type. Receivers of payloads, regardlessof their associated media type, are expected to perform appropriate checks toensure that payloads conform with the requirements for their use in a givensystem.
HTTP clients and servers use media types associated withverifiable credentials andverifiable presentations in accept headers and whenindicating content types. Implementers are warned that HTTP servers might ignorethe accept header and return another content type, or return an error code suchas415 Unsupported Media Type
.
This section is non-normative.
As JSON can be used to express different kinds of information, a consumer ofa particular JSON document can only properly interpret the author's intent if theypossess information that contextualizes and disambiguates it from other possibleexpressions. Information to assist with this interpretation can either be whollyexternal to the JSON document or linked from within it. Compacted JSON-LD documentsinclude a@context
property that internally expresses or links tocontextual information to expressclaims. These featuresenable generalized processors to be written to convert JSON-LD documents from onecontext to another, but this is not needed when consumers receive JSON-LD documentsthat already use the context and shape that they expect. Authors of JSON-LDdocuments, such asissuers ofverifiable credentials, are requiredto provide proper JSON-LD contexts and follow these rules in order to facilitateinteroperability.
The text below helps consumers understand how to ensure a JSON-LD document isexpressed in a context and shape that their application already understandssuch that they do not need to transform it in order to consume its contents.Notably, this does not mean that consumers do not need to understand anycontext at all; rather, consuming applications only need to understand a chosenset of contexts and document shapes to work with and not others. Issuers canpublish contexts and information about theirverifiable credentials toaid consumers who do not use generalized processors, just as can be donewith any other JSON-formatted data.
General JSON-LD processing is defined as a mechanism that uses aJSON-LD software library to process aconforming document by performingvarioustransformations.Type-specific credential processing is defined as a lighter-weightmechanism for processingconforming documents, that doesn't requirea JSON-LD software library. Some consumers ofverifiable credentialsonly need to consume credentials with specific types. These consumers can usetype-specific credential processing instead of generalized processing. Scenarioswhere type-specific credential processing can be desirable include, but are notlimited to, the following:
+json
structured media type suffix.That is,type-specific credential processing is allowed as long as thedocument being consumed or produced is aconforming document.
Iftype-specific credential processing is desired, an implementer is advisedto follow this rule:
Ensure that all values associated with a@context
property are in the expectedorder, the contents of the context files match known good cryptographic hashesfor each file, and domain experts have deemed that the contents are appropriatefor the intended use case.
Using static context files with a JSON Schema is one acceptable approach toimplementing the rule above. This can ensure proper term identification,typing, and order, when performingtype-specific credential processing.
The rule above guarantees semantic interoperability between the two processingmechanisms for mapping literal JSON keys to URIs via the@context
mechanism.Whilegeneral JSON-LD processing can use previously unseen@context
values provided in its algorithms to verify that all terms are correctlyspecified, implementations that performtype-specific credential processing only accept specific@context
values which the implementationis engineered ahead of time to understand, resulting in the same semanticswithout invoking any JSON-LD APIs. In other words, the context in which the dataexchange happens is explicitly stated for both processing mechanisms by using@context
in a way that leads to the sameconforming document semantics.
This section contains algorithms that can be used by implementations to performcommon operations, such asverification. Conformance requirements phrased asalgorithms use normative concepts from theInfra Standard [INFRA]. See thesection onAlgorithm Conformancein theInfra Standard for more guidance on implementation requirements.
Implementers are advised that the algorithms in this section contain the bareminimum set of checks used by implementations to test conformance to thisspecification. Implementations are expected to provide additional checks thatreport helpful warnings for developers to help debug potential issues.Similarly, implementations are likely to provide additional checks thatcould result in new types of errors being reported in order to stop harmfulcontent. Any of these additional checks might be integrated into futureversions of this specification.
This section contains an algorithm thatconforming verifier implementationsMUST run when verifying averifiable credential or averifiable presentation. This algorithm takes a media type (stringinputMediaType)and secured data (byte sequenceinputData) and returns amap thatcontains the following:
The verification algorithm is as follows:
false
, add aCRYPTOGRAPHIC_SECURITY_ERROR toresult.errors.true
, ensure thatresult.document is aconforming document. If it isnot, setresult.status tofalse
, remove thedocument property fromresult, and add at leastoneMALFORMED_VALUE_ERROR toresult.errors. Other warnings and errorsMAY be includedto aid any debugging process.The steps for verifying the state of the securing mechanism and verifyingthat the input document is aconforming documentMAY be performed ina different order than that provided above as long as theimplementation returns errors for the same invalid inputs.ImplementationsMAY produce different errors than described above.
When an implementation detects an anomaly while processing a document, aProblemDetails object can be used to report the issue to othersoftware systems. The interface for these objects follow [RFC9457]to encode the data. AProblemDetails object consists of the followingproperties:
type
propertyMUST be present and its valueMUST be aURLidentifying the type of problem.title
propertySHOULD provide a shortbut specific human-readable string for the problem.detail
propertySHOULD provide alonger human-readable string for the problem.The following problem description types are defined by this specification:
ImplementationsMAY extend theProblemDetails object by specifyingadditional types or properties. See theExtension Member sectionin [RFC9457] for further guidance on using this mechanism.
This section is non-normative.
This section details the general privacy considerations and specific privacyimplications of deploying the Verifiable Credentials Data Model into productionenvironments.
This section is non-normative.
It is important to recognize there is a spectrum of privacy ranging frompseudonymous to strongly identified. Depending on the use case, people havedifferent comfort levels about the information they are willing to provideand the information that can be derived from it.
Privacy solutions are use case specific.For example, many people would prefer to remain anonymous when purchasingalcohol because the regulation is only to verify whether a purchaser isabove a specific age. In contrast, when filling prescriptions written bya medical professional for a patient, the pharmacy is legally requiredto more strongly identify both the prescriber and the patient. No singleapproach to privacy works for all use cases.
Even those who want to remain anonymous when purchasing alcohol might needto provide photo identification to appropriately assure the merchant. Themerchant might not need to know your name or any details other than thatyou are over a specific age, but in many cases, simple proof of age mightbe insufficient to meet regulations.
The Verifiable Credentials Data Model strives to support the full privacyspectrum and does not take philosophical positions on the correct level ofanonymity for any specific transaction. The following sections will guideimplementers who want to avoid specific scenarios that are hostile toprivacy.
This section is non-normative.
A variety of trust relationships exist in theecosystem described by this specification. Anindividual using a web browser trusts the web browser, also known as auser agent, to preservethat trust by not uploading their personal information to a data broker;similarly, entities filling the roles in the ecosystem described by thisspecification trust the software that operates on behalf of each of those roles.Examples include the following:
The examples above are not exhaustive, and the users in these roles can alsoexpect various other things from the software they use to achieve theirgoals. In short, the user expects the software to operate in the user's bestinterests; any violations of this expectation breach trust and can lead to thesoftware's replacement with a more trustworthy alternative. Implementers arestrongly encouraged to create software that preserves user trust. Additionally,they are encouraged to include auditing features that enable users or trustedthird parties to verify that the software is operating in alignment with theirbest interests.
Readers are advised that some software, like a website providing servicesto a singleverifier and multipleholders, might operate as auser agent to bothroles but might not always be able to operate simultaneously in the bestinterests of all parties. For example, suppose a website detects an attempt atfraudulentverifiable credential use among multipleholders. In thatcase, it might report such an anomaly to theverifier, which might beconsidered not to be in allholders' best interest, but would be in thebest interest of theverifier and anyholdersnot committingsuch a violation. It is imperative that when software operates in this manner,it is made clear in whose best interest(s) the software is operating, throughmechanisms such as a website use policy.
This section is non-normative.
Data associated withverifiable credentials stored in thecredential.credentialSubject
property is susceptible to privacy violationswhen shared withverifiers. Personally identifying data, such as agovernment-issued identifier, shipping address, or full name, can be easilyused to determine, track, and correlate anentity. Even information thatdoes not seem personally identifiable, such as the combination of abirthdate and a postal code, has powerful correlation and de-anonymizationcapabilities.
Implementers of software used byholders are strongly advised to warnholders when they share data with these kinds of characteristics.Issuers are strongly advised to provide privacy-protectingverifiable credentials when possible — for example, by issuingageOver
verifiable credentials instead ofdateOfBirth
verifiable credentials for use when averifier wants to determine whether anentity is at least 18 years of age.
Because averifiable credential often contains personally identifiableinformation (PII), implementers are strongly advised to use mechanisms whilestoring and transportingverifiable credentials that protect the data fromthose who ought not have access to it. Mechanisms that could be considered includeTransport Layer Security (TLS) or other means of encrypting the data while intransit, as well as encryption or access control mechanisms to protectthe data in averifiable credential when at rest.
Generally, individuals are advised to assume that averifiable credential,like most physical credentials, will leak personally identifiable informationwhen shared. To combat such leakage,verifiable credentials and theirsecuring mechanisms need to be carefully designed to prevent correlation.Verifiable credentials specifically designed to protect against leakageof personally identifiable information are available. Individuals andimplementers are encouraged to choose these credential types over those notdesigned to protect personally identifiable information.
This section is non-normative.
Verifiable credentials might contain long-lived identifiers that could beused to correlate individuals. These identifiers includesubjectidentifiers, email addresses, government-issued identifiers, organization-issuedidentifiers, addresses, healthcare vitals, and many other long-livedidentifiers. Implementers of software forholders are encouraged todetect identifiers inverifiable credentials that could be usedto correlate individuals and to warnholders before they share thisinformation. The rest of this section elaborates on guidance related tousing long-lived identifiers.
Subjects ofverifiable credentials are identified using theid
property, as defined in Section4.4Identifiers and used in places suchas thecredentialSubject.id
property. The identifiers used to identify asubject create a greater correlation risk when the identifiers arelong-lived or used across more than one web domain. Other types of identifiersthat fall into this category are email addresses, government-issued identifiers,and organization-issued identifiers.
Similarly, disclosing thecredential identifier (as inExample 3) can lead to situations where multipleverifiers, or anissuer and averifier, can collude to correlate theholder.
Holders aiming to reduce correlation are encouraged to useverifiable credentials fromissuers that support selectively disclosing correlatingidentifiers in averifiable presentation. Such approaches expect theholder to generate the identifier and might even allow hiding the identifierfrom theissuer through techniques likeblind signatures,while still keeping the identifier embedded and signed in theverifiable credential.
Securing mechanism specification authors are advised to avoid enablingidentifier-based correlation by designing their technologies to avoid the useof correlating identifiers that cannot be selectively disclosed.
If strong anti-correlation properties are required in averifiable credentials system, it is essential that identifiers meet one or moreof the following criteria:
This section is non-normative.
The contents of averifiable credential are secured using asecuring mechanism. Values representing the securing mechanism pose a greaterrisk of correlation when they remain the same across multiple sessionsor domains. Examples of these include the following values:
When strong anti-correlation properties are required,issuers are encouragedto produceverifiable credentials where signature values and metadata canbe regenerated for eachverifiable presentation. This can be achieved usingtechnologies that support unlinkable disclosure, such as theData Integrity BBS Cryptosuites v1.0specification. When possible,verifiers are encouraged to preferverifiable presentations that use this technology in order to enhanceprivacy forholders andsubjects.
Even with unlinkable signatures, averifiable credential might containother information that undermines the anti-correlation properties of thecryptography used. See Sections8.3Personally Identifiable Information,8.4Identifier-Based Correlation,8.6Metadata-based Correlation,8.11Correlation During Validation, and most other subsections ofSection8.Privacy Considerations.
This section is non-normative.
Different extension points, such as those described in Section4.Basic Concepts and Section5.Advanced Concepts, canunintentionally or undesirably serve as a correlation mechanism, if relativelyfewissuers use a specific extension type or combination of types.For example, using certain cryptographic methods unique to particularnation-states, revocation formats specific to certain jurisdictions,or credential types employed by specific localities, can serve as mechanismsthat reduce the pseudonymity aholder might expect when selectivelydisclosing information to averifier.
Issuers are encouraged to minimize metadata-based correlation risks whenissuingverifiable credentials intended for pseudonymous use by limitingthe types of extensions that could reduce theholder's pseudonymity.Credential types, extensions, and technology profiles with global adoption aremost preferable, followed by those with national use; those with only localuse are least preferable.
This section is non-normative.
There are mechanisms external toverifiable credentials thattrack and correlate individuals on the Internet and the Web. Thesemechanisms include Internet protocol (IP) address tracking, web browserfingerprinting, evercookies, advertising network trackers, mobile networkposition information, and in-application Global Positioning System (GPS) APIs.Usingverifiable credentials cannot prevent the use of these othertracking technologies; rather, using these technologies alongsideverifiable credentials can reveal new correlatable information. Forinstance, a birthdate combined with a GPS position can strongly correlatean individual across multiple websites.
Privacy-respecting systems ought to aim to prevent the combination of othertracking technologies withverifiable credentials. In some instances,tracking technologies might need to be disabled on devices thattransmitverifiable credentials on behalf of aholder.
The Oblivious HTTP protocol [RFC9458] is one mechanism implementersmight consider using when fetching external resources associated with averifiable credential or averifiable presentation.Oblivious HTTP allows a client to make multiple requests to an origin serverwithout that server being able to link those requests to that client or even toidentify those requests as having come from a single client, while placing onlylimited trust in the nodes used to forward the messages. Oblivious HTTPis one privacy-preserving mechanism that can reduce the possibilityof device tracking and fingerprinting. Below are some concrete examples ofways that Oblivious HTTP can benefit ecosystem participants.
This section is non-normative.
Issuers are encouraged to limit the information included in averifiable credential to the smallest set required for the intended purposes, so as toallow recipients to use them in various situations without disclosing morepersonally identifiable information (PII) than necessary. One way to avoidplacing PII in averifiable credential is to use an abstractpropertythat meets the needs ofverifiers without providing overly specificinformation about asubject.
For example, this document uses theageOver
propertyinstead of a specific birthdate, which would represent more sensitive PII. Ifretailers in a particular market commonly require purchasers to be older thana certain age, anissuer trusted in that market might choose to offerverifiable credentials that claim thatsubjects have met thatrequirement rather than offeringverifiable credentials that containclaims about the customers' birthdays. This practice enables individualcustomers to make purchases without disclosing more PII than necessary.
This section is non-normative.
Privacy violations occur when information divulged in one context leaks intoanother. One accepted best practice for preventing such a violation is forverifiers to limit the information requested and received, to the absoluteminimum necessary for a particular transaction. Regulations in multiplejurisdictions, including the Health Insurance Portability and AccountabilityAct (HIPAA) in the United States and the General Data Protection Regulation(GDPR) in the European Union, mandate this data minimization approach.
Withverifiable credentials, data minimization forissuers meanslimiting the content of averifiable credential to the minimum required bypotentialverifiers for expected use. Forverifiers, data minimizationmeans restricting the scope of information requested or required foraccessing services.
For example, a driver's license containing a driver's ID number, height, weight,birthday, and home address expressed as averifiable credential containsmore information than is necessary to establish that the person is above acertain age.
It is considered best practice forissuers to atomize information or use asecuring mechanism that allows forselective disclosure. For example, anissuer of driver's licenses could issue averifiable credentialcontaining every property that appears on a driver's license, and allow theholder to disclose each property selectively. It could also issue moreabstractverifiable credentials (for example, averifiable credentialcontaining only anageOver
property). One possible adaptation would be forissuers to provide secure HTTP endpoints for retrieving single-usebearer credentials that promote the pseudonymous use ofverifiable credentials.Implementers that find this impractical or unsafe might consider usingselective disclosure schemes that eliminate dependence onissuers atproving time and reduce the risk of temporal correlation byissuers.
Verifiers are urged to only request information that is strictly necessaryfor a specific transaction to occur. This is important for at leasttwo reasons:
Implementers of software used byholders are encouraged to disclose theinformation being requested by averifier, allowing theholder todecline to share specific information that is unnecessary for thetransaction. Implementers of software used byholders are also advisedto giveholders access to logs of information shared withverifiers,enabling theholders to provide this information to authorities if theybelieve that they have been subjected to information overreach or coerced toshare more information than necessary for a particular transaction.
While it is possible to practice the principle of minimum disclosure, it mightbe impossible to avoid the strong identification of an individual forspecific use cases during a single session or over multiple sessions. Theauthors of this document cannot stress how difficult it is to meet thisprinciple in real-world scenarios.
This section is non-normative.
Abearer credential is aprivacy-enhancing piece of information, such as a concert ticket, that entitlesitsholder to a specific resource without requiring theholder todivulge sensitive information. In low-risk scenarios, entities often use bearercredentials where multipleholders presenting the sameverifiable credentialis not a concern or would not result in large economic or reputational losses.
Verifiable credentials that arebearer credentials are madepossible by not specifying thesubject identifier, expressed using theid
property, which is nested in thecredentialSubject
property. For example, the followingverifiable credential is abearer credential:
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/temporary/28934792387492384", "type": ["VerifiableCredential", "ExampleDegreeCredential"], "issuer": "https://university.example/issuers/14", "validFrom": "2017-10-22T12:23:48Z", "credentialSubject": {// note that the 'id' property is not specified for bearer credentials "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/temporary/28934792387492384", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/14", "validFrom": "2017-10-22T12:23:48Z", "credentialSubject": { "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:34Z", "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ", "cryptosuite": "ecdsa-rdfc-2019", "proofPurpose": "assertionMethod", "proofValue": "z5gCBzvpHbsJoeuuy5Z54rKQwkGzBZkmapRZZAKKW4ervhBGGTaygnh4sBG6vV8MHGD8eKhXEmkXr487JwVhZ2WHQ" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/temporary/28934792387492384", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/14", "validFrom": "2017-10-22T12:23:48Z", "credentialSubject": { "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "created": "2025-04-27T17:58:34Z", "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv", "cryptosuite": "ecdsa-sd-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0AhVhAOEMucTcwHIY19VxghifeZjhZGFI9buw5OmEiWzSpbStoG5arWcYX6NB2-ftSiNc_CMh-CemG3peCu8ZOrSCHVFgjgCQC1zlBPjThDb-LSIbpc3uzcrjmKdC3xyuQAM8DoT5zv3FYIP13m1SOplZJx47EsonA19WEGnwABCA4hlMlQS96LIQMhVhADxlyJM3iqf_jn__vvJ0KgjL5uKLmVSsOxTFUsIHJ82mS8DAo_WZUmDxMnCAjrrxPQXLaNdfcmqehQOLT4_oiiVhA74UxSBi3EedkNnN5F2WV_Hd1Pr1vPWA_Qx52meKAa0_FhKu-Gm8uk2fFxK28flIbUv5HVQgGT0nrSuSprE4JslhAGl8hwCBGr5KxrUVAcMZE3vW26KrrI6jMTDLPGb81b9-ILrXLIJKb_ZOcmLggwzgbyxE_hUDLL9b88aZ7tE4dOVhACerSusVIq25s-hjms5Ws4Uw3wmgRQp1lp228deojpcavN-n3FNe3AIBgHFbpK2SzdOzvraj-HVkMpQptXrGEhVhAujmfdq6faQbfYn4LUQCy_sDUr1WNbklcyg2XTDQKscMF0VAUU38d50UrmprSKbhrnZpgWMBFg4ibUco_HO4UToFnL2lzc3Vlcg" }}
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/temporary/28934792387492384", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/14", "validFrom": "2017-10-22T12:23:48Z", "credentialSubject": { "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }, "proof": { "type": "DataIntegrityProof", "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD", "cryptosuite": "bbs-2023", "proofPurpose": "assertionMethod", "proofValue": "u2V0ChVhQhlm-IXSzQAaXH0xW-NU1t3ikH2xt--sFY-DtoL44DiWf3qv-nuhCc36deovk3t1GLy9JeN-vdeth8XWKMGUcyA4eWD21lxYdvK5Qdzw07ytYQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArdrHmhnEXifHmmlKM3zCnc0pq4l3ZkBkIESZ4DrQomVNYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFggOkuR5x7VvZAB-RbcqkcwxkQ7or0tsVOUTPlebfxRUQCBZy9pc3N1ZXI" }}
{ "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro", "alg": "ES256"}application/vc
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/temporary/28934792387492384", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/14", "validFrom": "2017-10-22T12:23:48Z", "credentialSubject": { "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}application/vc+jwt
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://www.w3.org/ns/credentials/examples/v2" ], "id": "http://university.example/credentials/temporary/28934792387492384", "type": [ "VerifiableCredential", "ExampleDegreeCredential" ], "issuer": "https://university.example/issuers/14", "validFrom": "2017-10-22T12:23:48Z", "credentialSubject": { "degree": { "type": "ExampleBachelorDegree", "name": "Bachelor of Science and Arts" } }}application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1745776714,
"exp": 1746986314,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2017-10-22T12:23:48Z",
"credentialSubject": {
"degree": {
"name": "Bachelor of Science and Arts",
"_sd": [
"_AOV6RD0Jaho5ZiH1ILMwJWJQ7q-nyeoyXHAj2yWmRY"
]
}
},
"_sd": [
"PoZyPSPkswP287lENY02Gw85Ccs262YN_VFKHAi8fwo",
"V4cI8h49UKzznTtjLA_MgxAnQhydt0N99eUv0Serbl4"
]
}
SHA-256 Hash:PoZyPSPkswP287lENY02Gw85Ccs262YN_VFKHAi8fwo
Disclosure(s):WyJqVThiaS1zWHk1dzVKNUYtdlhNaUZ3IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvdGVtcG9yYXJ5LzI4OTM0NzkyMzg3NDkyMzg0Il0
Contents:[
"jU8bi-sXy5w5J5F-vXMiFw",
"id",
"http://university.example/credentials/temporary/28934792387492384"
]
SHA-256 Hash:V4cI8h49UKzznTtjLA_MgxAnQhydt0N99eUv0Serbl4
Disclosure(s):WyJlbXBLOFdGNDhHcW56ekVudTJNblV3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d
Contents:[
"empK8WF48GqnzzEnu2MnUw",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential"
]
]
SHA-256 Hash:_AOV6RD0Jaho5ZiH1ILMwJWJQ7q-nyeoyXHAj2yWmRY
Disclosure(s):WyJnTnRsVmhfeVZyWm5aeEVXQUpyaFhRIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
Contents:[
"gNtlVh_yVrZnZxEWAJrhXQ",
"type",
"ExampleBachelorDegree"
]
Whilebearer credentials are privacy-enhancing,issuers still need totake care in their design to avoid unintentionally divulging more informationthan theholder of thebearer credential expects. For example,repeated use of the samebearer credential across multiple sites canenable these sites to collude in illicitly tracking or correlating theholder. Similarly, information that might seem non-identifying, such asa birthdate and postal code, can be used together to statistically identifyan individual when used inthe samebearer credential or session.
Issuers ofbearer credentials should ensure that thebearer credentials provide privacy-enhancing benefits that:
Holders ought to be warned by their software if it detects thatbearer credentialscontaining sensitive information have been issued or requested, or that acorrelation risk is posed by the combination of two or morebearer credentials across oneor more sessions. While detecting all correlation risks might be impossible,some might certainly be detectable.
Verifiers ought not requestbearer credentials known to carryinformation which can be used to illicitly correlate theholder.
This section is non-normative.
When processingverifiable credentials,verifiersevaluate relevantclaims before relying upon them. Thisevaluation might be done in any manner desired as long as it satisfiesthe requirements of theverifier doing the validation.Many verifiers will perform the checks listed in AppendixA.Validation aswell as a variety of specific business process checks such as:
The process of performing these checks might result in information leakage thatleads to a privacy violation of theholder. For example, a simpleoperation, such as checking an improperly configured revocation list, cannotify theissuer that a specific business is likely interactingwith theholder. This couldenableissuers to collude to correlate individuals without theirknowledge.
Issuers are urged to not use mechanisms, such ascredentialrevocation lists that are unique percredential, during theverification process, which could lead to privacy violations. Organizationsproviding software toholders ought to warn whencredentials includeinformation that could lead to privacy violations during the verificationprocess.Verifiers are urged to consider rejectingcredentials thatproduce privacy violations or that enable substandard privacy practices.
This section is non-normative.
When aholder receives averifiable credential from anissuer, theverifiable credential needs to be stored somewhere(for example, in acredential repository).Holders need to be awarethat the information in averifiable credential can be sensitive and highlyindividualized, making it a prime target for data mining. Services offering"free of charge" storage ofverifiable credentials might mine personal dataand sell it to organizations interesting in building individualized profileson people and organizations.
Holders need to be aware of the terms of service for theircredential repository, specifically the correlation and data miningprotections in place for those who store theirverifiable credentialswith the service provider.
Some effective mitigations for data mining and profiling include using:
In addition to the mitigations above, civil society and regulatoryparticipation in vendor analysis and auditing can help ensure that legalprotections are enacted and enforced for individuals affected by practicesthat are not aligned with their best interests.
This section is non-normative.
Having two pieces of information about the samesubject often revealsmore about thesubject than the combination of those two pieces, evenwhen the pieces are delivered through different channels. Aggregatingverifiable credentials poses a privacy risk, and all participants inthe ecosystem need to be aware of the risks of data aggregation.
For example, suppose twobearer credentials, one for an email address andone stating theholder is over 21, are provided to the sameverifieracross multiple sessions. Theverifier of the information now has a uniqueidentifier (the email address) along with age-related ("over 21") informationfor that individual. It is now easy to create a profile for theholder,building it by adding more and more information as it leaks over time.Aggregation of suchcredentials can also be performed by multiple sitesin collusion with each other, leading to privacy violations.
From a technological perspective, preventing information aggregation is achallenging privacy problem. While new cryptographic techniques, such aszero-knowledge proofs, are being proposed as solutions to aggregation andcorrelation issues, the existence of long-lived identifiers andbrowser-tracking techniques defeats even the most modern cryptographictechniques.
The solution to the privacy implications of correlation or aggregation tendsnot to be technological in nature, but policy-driven instead. Therefore, if aholder wishes to avoid the aggregation of their information, they need toexpress this in theverifiable presentations they transmit, andby theholders andverifiers to whom they transmit theirverifiable presentations.
This section is non-normative.
Despite best efforts by all involved to assure privacy, usingverifiable credentials can potentially lead to de-anonymization and aloss of privacy. This correlation can occur when any of the following occurs:
In part, it is possible to mitigate this de-anonymization and loss of privacyby:
Unfortunately, these mitigation techniques are only sometimes practical oreven compatible with necessary use. Sometimes, correlation is a requirement.
For example, in some prescription drug monitoring programs, monitoring prescriptionuse is a requirement. Enforcement entities need to be able to confirm that individualsare not cheating the system to get multiple prescriptions for controlledsubstances. This statutory or regulatory need to correlate prescriptionuse overrides individual privacy concerns.
Verifiable credentials will also be used to intentionally correlateindividuals across services. For example, when using a common persona to log into multiple services, all activity on each of those services isintentionally linked to the same individual. This is not a privacy issue aslong as each of those services uses the correlation in the expected manner.
Privacy violations related to the use ofverifiable credentials occur whenunintended or unexpected correlation arises from the presentation of thoseverifiable credentials.
This section is non-normative.
Legal processes can compelissuers,holders, andverifiers todisclose private information to authorities, such as law enforcement. It isalso possible for the same private information to be accidentally disclosedto an unauthorized party through a software bug or security failure. Authorsof legal processes and compliance regimes are advised to draft guidelines thatrequire notifying thesubjects involved when their private information isintentionally or accidentally disclosed to a third party. Providers of softwareservices are advised to be transparent about known circumstances that mightcause such private information to be shared with a third party, as well as theidentity of any such third party.
This section is non-normative.
When aholder chooses to share information with averifier, itmight be the case that theverifier is acting in bad faith and requestsinformation that could harm theholder. For example, averifier might ask for a bank account number, which could then be usedwith other information to defraud theholder or the bank.
Issuers ought to strive to tokenize as much information as possible sothat if aholder accidentally transmitscredentials to the wrongverifier, the situation is not catastrophic.
For example, instead of including a bank account number to checkan individual's bank balance, provide a token that enables theverifier to check if the balance is above a certain amount. In thiscase, the bank could issue averifiable credential containing a balancechecking token to aholder. Theholder would then include theverifiable credential in averifiable presentation and bind thetoken to a credit checking agency using a digital signature. Theverifier could then wrap theverifiable presentation in theirdigital signature and hand it back to the issuer to check theaccount balance dynamically.
Using this approach, even if aholder shares the account balance tokenwith the wrong party, an attacker cannot discover the bank account number orthe exact value of the account. Also, given the validity period of thecounter-signature, the attacker gains access to the token for only afew minutes.
This section is non-normative.
The data expressed inverifiable credentials andverifiable presentations are valuable since they contain authenticstatements made by trusted third parties (such asissuers) orindividuals (such asholders orsubjects). The storage andaccessibility of this data can inadvertently create honeypots ofsensitive data for malicious actors. These adversaries often seek toexploit such reservoirs of sensitive information, aiming toacquire and exchange that data for financial gain.
Issuers are advised to retain the minimum amount of datanecessary to issueverifiable credentials toholders andto manage the status and revocation of those credentials. Similarly,issuers are advised to avoid creating publiclyaccessible credentials that include personally identifiable information(PII) or other sensitive data. Software implementers are advisedto safeguardverifiable credentials using robust consentand access control measures, ensuring that they remaininaccessible to unauthorized entities.
Holders are advised to use implementations that appropriatelyencrypt their data in transit and at rest and protect sensitivematerial (such as cryptographic secrets) in ways that cannot be easilyextracted from hardware or other devices. It is further suggested thatholders store and manipulate their data only on devices theycontrol, away from centralized systems, to reduce the likelihood ofan attack on their data or inclusion in a large-scale theft if an attack issuccessful. Furthermore,holders are encouraged to rigorously controlaccess to their credentials and presentations, allowing access only to thosewith explicit authorization.
Verifiers are advised to ask only for data necessary for a particulartransaction and to retain no data beyond the needs of any particulartransaction.
Regulators are advised to reconsider existing audit requirements such thatmechanisms that better preserve privacy can be used to achieve similarenforcement and audit capabilities. For example, audit-focused regulationsthat insist on the collection and long-term retention of personallyidentifiable information can cause harm to individuals and organizationsif that same information is later compromised and accessed by an attacker.The technologies described by this specification enableholders toprove properties about themselves and others more readily, reducing theneed for long-term data retention byverifiers. Alternatives includekeeping logs that the information was collected and checked, as well asrandom tests to ensure that compliance regimes are operating as expected.
This section is non-normative.
As detailed in Section8.14Patterns of Use, patterns of use can becorrelated with certain types of behavior. This correlation is partiallymitigated when aholder uses averifiable credential without theknowledge of theissuer.Issuers can defeat this protectionhowever, by making theirverifiable credentials short lived and renewalautomatic.
For example, anageOver
verifiable credential is helpful ingaining access to a bar. If anissuer issues such averifiable credential with a very short validity period and an automaticrenewal mechanism, then theissuer could correlate theholder'sbehavior in a way that negatively impacts theholder.
Organizations providing software toholders ought to warn them if theyrepeatedly usecredentials with short lifespans, which could result inbehavior correlation.Issuers ought to avoid issuingcredentials thatenable them to correlate patterns of use.
This section is non-normative.
An ideal privacy-respecting system would require only the information necessaryfor interaction with theverifier to be disclosed by theholder.Theverifier then records that the disclosure requirement has been metand discards any sensitive information disclosed. In many cases,competing priorities, such as regulatory burden, prevent this ideal system frombeing employed. In other instances, long-lived identifiers prevent single use.The designer of anyverifiable credentials ecosystem ought to striveto make it as privacy-respecting as possible by preferring single-useverifiable credentials whenever possible.
Using single-useverifiable credentials provides several benefits. Thefirst benefit is toverifiers who can be sure that the data in averifiable credential is fresh. The second benefit is toholders,who know that if there are no long-lived identifiers in theverifiable credential, theverifiable credential itself cannot beused to track or correlate them online. Finally, there is nothing for attackersto steal, making the entire ecosystem safer to operate within.
This section is non-normative.
In an ideal private browsing scenario, no PII will be revealed. Because manycredentials include PII, organizations providing software toholders ought to warn them about the possibility of this informationbeing revealed if they usecredentials andpresentations while inprivate browsing mode. As each browser vendor handles private browsingdifferently, and some browsers might not have this feature, it isimportant that implementers not depend on private browsing mode to provideany privacy protections. Instead, implementers are advised to rely ontooling that directly usable by their software to provide privacy guarantees.
This section is non-normative.
Verifiable credentials rely on a high degree of trust inissuers.The degree to which aholder might take advantage of possible privacyprotections often depends strongly on the support anissuer provides forsuch features. In many cases, privacy protections which make use ofzero-knowledge proofs, data minimization techniques, bearer credentials,abstract claims, and protections against signature-based correlation requireactive support by theissuer, who need to incorporate those capabilitiesinto theverifiable credentials they issue.
It is crucial to note thatholders not only depend onissuerparticipation to provideverifiable credential capabilities that helppreserveholder andsubject privacy, but also rely onissuers tonot deliberately subvert these privacy protections. For example, anissuer might signverifiable credentials using a signature schemethat protects against signature-based correlation. This would protect theholder from being correlated by the signature value as it is shared amongverifiers. However, if theissuer creates a unique key for eachissuedcredential, it might be possible for theissuer to trackpresentations of thecredential, regardless of averifier'sinability to do so.
In addition to previously described privacy protections anissuer mightoffer,issuers need to be aware of data they leak that is associated withidentifiers and claim types they use when issuingcredentials. Oneexample of this would be anissuer issuing driver's licenses which revealboth the location(s) in which they have jurisdiction and the location of thesubject's residence.Verifiers might take advantage of this byrequesting acredential to check that thesubject is licensed todrive when, in fact, they are interested in metadataabout thecredential, such as whichissuer issued the credential, and tangentialinformation that might have been leaked by theissuer, such as thesubject's home address. To mitigate such leakage,issuers mightuse common identifiers to mask specific location information or other sensitivemetadata; for example, a sharedissuer identifier at a state or nationallevel instead of at the level of a county, city, town, or other smallermunicipality. Further,verifiers can useholder attestation mechanismsto preserve privacy, by providing proof that anissuer exists in a set oftrusted entities without needing to disclose the exactissuer.
This section is non-normative.
Issuers,holders, andverifiers should be aware of a number ofsecurity considerations when processing data described by this specification.Ignoring or not understanding the implications of this section can result insecurity vulnerabilities.
While this section highlights a broad set of security considerations, it is apartial list. Implementers of mission-critical systems using the technologydescribed in this specification are strongly encouraged to consult security andcryptography professionals for comprehensive guidance.
This section is non-normative.
Cryptography can protect some aspects of the data model described in thisspecification. It is important for implementers to understand the cryptographysuites and libraries used to create and processcredentials andpresentations. Implementing and auditing cryptography systems generallyrequires substantial experience. Effectivered teaming can alsohelp remove bias from security reviews.
Cryptography suites and libraries have a shelf life and eventually succumb tonew attacks and technological advances. Production quality systems need to takethis into account and ensure mechanisms exist to easily and proactively upgradeexpired or broken cryptography suites and libraries, and to invalidate andreplace existingcredentials. Regular monitoring is important toensure the long term viability of systems processingcredentials.
This section is non-normative.
The security of most digital signature algorithms, used to secureverifiable credentials andverifiable presentations, depends on the quality andprotection of theirprivate signing keys. The management ofcryptographic keys encompasses a vast and complex field. For comprehensiverecommendations and in-depth discussion, readers are directed to[NIST-SP-800-57-Part-1]. As strongly recommended in both [FIPS-186-5] and[NIST-SP-800-57-Part-1], a private signing key is not to be used for multiplepurposes; for example, a private signing key is not to be used for encryptionas well as signing.
[NIST-SP-800-57-Part-1] strongly advises that private signing keys andpublic verification keys have limitedcryptoperiods, whereacryptoperiod is "the time span during which a specific key isauthorized for use by legitimate entities or the keys for a given system willremain in effect." [NIST-SP-800-57-Part-1] gives extensiveguidance on cryptoperiods for different key types under various conditionsand recommends a one to three year cryptoperiod for a private signing key.
To deal with potential private key compromises, [NIST-SP-800-57-Part-1]provides recommendations for protective measures, harm reduction, andrevocation. Although this section focuses primarily on the security of theprivate signing key, [NIST-SP-800-57-Part-1] also highly recommendsconfirmation of the validity of allverification material before using it.
This section is non-normative.
Verifiable credentials often contain URLs to data that resides outsidetheverifiable credential. Linked content that exists outside averifiable credential — such as images, JSON-LD extension contexts,JSON Schemas, and other machine-readable data — is not protectedagainst tampering because the data resides outside of the protection of thesecuring mechanism on theverifiable credential.
Section5.3Integrity of Related Resources of this specification provides anoptional mechanism for ensuring the integrity of the content of externalresources. This mechanism is not necessary for external resources that do notimpact theverifiable credential's security. However, its implementationis crucial for external resources where content changes could potentiallyintroduce security vulnerabilities.
Implementers need to recognize the potential security risks associated withunprotected URLs of external machine-readable content. Such vulnerabilitiescould lead to successful attacks on their applications. Where changes toexternal resources might compromise security, implementers will benefit byemploying the content integrity protection mechanism outlined in thisspecification.
This section is non-normative.
This specification enables the creation ofcredentials without signaturesor proofs. Thesecredential classes are often useful for intermediatestorage or self-asserted information, analogous to filling out a form on a webpage. Implementers ought to be aware that thesecredential types are notverifiable because the authorship either is unknown or cannot be trusted.
This section is non-normative.
The data model does not inherently preventMan-in-the-Middle (MITM),replay, andspoofing attacks.Both online and offline use cases might be susceptible to these attacks, wherean adversary intercepts, modifies, re-uses, and/or replicates theverifiable credential data during transmission or storage.
Averifier might need to ensure it is the intended recipient of averifiable presentation and not the target of aman-in-the-middle attack. Somesecuringmechanisms, likeSecuring Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE] andVerifiable Credential Data Integrity 1.0 [VC-DATA-INTEGRITY], provide anoption to specify apresentation's intended audience or domain, which canhelp reduce this risk.
Other approaches, such as token binding [RFC8471], which ties the request foraverifiable presentation to the response, can help secure the protocol.Any unsecured protocol is susceptible to man-in-the-middle attacks.
Averifier might wish to limit the number of times thatverifiable presentation can be used. For example, multiple individualspresenting the sameverifiable credential representing an event ticketmight be granted entry to the event, undermining the purpose of the ticketfrom the perspective of itsissuer. To prevent such replay attacks,verifiers requireholders to include additional security measuresin theirverifiable presentations. Examples include the following:
Verifiers might have a vested interest in knowing that aholder isauthorized to present theclaims inside of averifiable presentation.While the data model outlines the structure and data elements necessary for averifiable credential, it does not include a mechanism to ascertain theauthorization of presentedcredentials. To address this concern,implementers might need to explore supplementary methods, such as bindingverifiable credentials to strong authentication mechanisms or usingadditional properties inverifiable presentationsto enable proof of control.
This section is non-normative.
It is considered best practice forissuers to atomize information in acredential or use a signature scheme that allows for selectivedisclosure. When atomizing information, if it is not done securely by theissuers, theholders might bundle togetherclaims from differentcredentials in ways that theissuers did not intend.
Consider a university issuing twoverifiable credentials to an individual.Eachcredential contains two properties that, when combined, indicate theperson's "role" in a specific "department." For instance, onecredentialpair might designate "Staff Member" in the "Department of Computing," whileanother could signify "Post Graduate Student" in the "Department of Economics."Atomizing theseverifiable credentials results in the university issuingfour separatecredentials to the individual. Eachcredential containsa single designation: "Staff Member", "Post Graduate Student", "Department ofComputing", or "Department of Economics". Theholder might then presentthe "Staff Member" and "Department of Economics"verifiable credentials toaverifier, which, together, would comprise a falseclaim.
This section is non-normative.
Whenverifiable credentials contain highly dynamic information, carefulconsideration of validity periods becomes crucial. Issuingverifiable credentials with validity periods that extend beyond their intended use createspotential security vulnerabilities that malicious actors could exploit. Validityperiods shorter than the timeframe where the information expressed by theverifiable credential is expected to be used creates a burden onholders andverifiers. It is, therefore, important to set validityperiods forverifiable credentials appropriate to the use case and theexpected lifetime of the information contained in theverifiable credential.
This section is non-normative.
Storingverifiable credentials on a device poses risks if the device islost or stolen. An attacker gaining possession of such a device potentiallyacquires unauthorized access to systems using the victim'sverifiable credentials. Ways to mitigate this type of attack include:
Furthermore, instances of impersonation can manifest in various forms,including situations where anentity attempts to disavow its actions.Elevating trust and security within the realm ofverifiable credentialsentails more than averting impersonation; it also involves implementingnon-repudiation mechanisms. These mechanisms solidify anentity'sresponsibility for its actions or transactions, reinforcing accountability anddeterring malicious behavior. Attainment of non-repudiation is amultifaceted endeavor, encompassing an array of techniques includingsecuring mechanisms, proofs of possession,and authentication schemes in various protocols designed to foster trust andreliability.
This section is non-normative.
Ensuring alignment between anentity's actions — such aspresentation,and the intended purpose of those actions — is essential. It involves having theauthorization to useverifiable credentials and usingcredentials in amanner that adheres to their designated scope(s) and objective(s). Two criticalaspects in this context areUnauthorized Use andInappropriate Use.
Entities usingverifiable credentials andverifiable presentationsbeyond their intended purpose are engaging in unauthorized activity. One classof unauthorized use is aconfidentiality violation. Consider aholderthat shares averifiable presentation with averifierto establish their age and residency status. If theverifier then proceedsto employ theholder's data without proper consent, such as by selling thedata to a data broker, that would constitute an unauthorized use of the data,violating an expectation of privacy that theholder might have in thetransaction.
Similarly, anissuer can employ atermsOfUseproperty to specify how and when aholder might be permitted and expectedto use acredential. Aholder usingcredentials outside of thescope(s) defined in thetermsOfUse
would be considered to be unauthorized.
Further study is required to determine how aholder can assert andenforce authorized use of their data afterpresentation.
While valid cryptographic signatures and successful status checks signify thereliability ofcredentials, they do not signify that allcredentials are interchangeable for all contexts. It is crucial thatverifiers alsovalidate any relevantclaims,considering the source and nature of theclaim alongside the purposefor which theholder presents thecredential.
For instance, in scenarios where a certified medical diagnosis is required, aself-assertedcredential carrying the necessary data might not sufficebecause it lacks validity from an authoritative medical source. To ensure propercredential use, stakeholders need to assess thecredential's relevance and authority within thespecific context of their intended application.
This section is non-normative.
Data inverifiable credentials can include injectable code or code fromscripting languages. Authors ofverifiable credentials benefit from avoidingsuch inclusions unless necessary and only after mitigating associated risks tothe fullest extent possible.
For example, a single natural language string containing multiple languages orannotations often requires additional structure or markup for correctpresentation. Markup languages, such as HTML, can label text spans in differentlanguages or supply string-internal markup needed to displaybidirectional text properly. It is also possible to use therdf:HTML
datatype to encodesuch values accurately in JSON-LD.
Despite the ability to encode information as HTML, implementers are stronglydiscouraged from doing so for the following reasons:
script
tag that an attacker injected at some point during the data production process.If implementers feel they need to use HTML, or other markup languages capable ofcontaining executable scripts, to address a specific use case, they are advisedto analyze how an attacker could use the markup to mount injection attacksagainst a consumer of the markup. This analysis should be followed by theproactive deployment of mitigations against the identified attacks, such asrunning the HTML rendering engine in a sandbox with no ability to access thenetwork.
This section is non-normative.
There are a number of accessibility considerations implementers should beaware of when processing data described in this specification. As withimplementation of any web standard or protocol, ignoring accessibility issuesmakes this information unusable by a large subset of the population. It isimportant to follow accessibility guidelines and standards, such as [WCAG21],to ensure that all people, regardless of ability, can make use of this data.This is especially important when establishing systems using cryptography,which have historically created problems for assistive technologies.
This section details the general accessibility considerations to take intoaccount when using this data model.
This section is non-normative.
Many physicalcredentials in use today, such as government identificationcards, have poor accessibility characteristics, including, but not limited to,small print, reliance on small and high-resolution images, and no affordancesfor people with vision impairments.
When using this data model to createverifiable credentials, it issuggested that data model designers use adata first approach. Forexample, given the choice of using data or a graphical image to depict acredential, designers should express every element of the image, such asthe name of an institution or the professionalcredential, in amachine-readable way instead of relying on a viewer's interpretation of theimage to convey this information. Using a data first approach is preferredbecause it provides the foundational elements of building different interfacesfor people with varying abilities.
This section is non-normative.
Implementers are advised to be aware of a number of internationalizationconsiderations when publishing data described in this specification.As with any web standards or protocols implementation, ignoringinternationalization makes it difficult for data to be produced and consumedacross a disparate set of languages and societies, which limits theapplicability of the specification and significantly diminishes its value as astandard.
Implementers are strongly advised to read theStrings on the Web: Language and Direction Metadata document[STRING-META], published by theW3C Internationalization Activity, whichelaborates on the need to provide reliable metadata about text to supportinternationalization. For the latest information on internationalizationconsiderations, implementers are also urged to read the Verifiable CredentialsImplementation Guidelines [VC-IMP-GUIDE] document.
This section outlines general internationalization considerations to take intoaccount when using this data model and is intended to highlight specificparts of theStrings on the Web: Language and Direction Metadatadocument [STRING-META] that implementers might be interested in reading.
Data publishers are strongly encouraged to read the section onCross-Syntax Expression in theStrings on the Web: Language and DirectionMetadata document [STRING-META] to ensure that expressinglanguage andbase direction information ispossible across multiple expression syntaxes, such as [JSON-LD11], [JSON],and CBOR [RFC7049].
The general design pattern is to use the following markup template whenexpressing a text string that is tagged with a language and, optionally, aspecific base direction.
"myProperty": { "@value": "The string value", "@language": "LANGUAGE" "@direction": "DIRECTION"}
When the language value object is used in place of a string value, the objectMUST contain a@value
property whose value is a string, andSHOULD contain a@language
property whose value is a string containing a well-formedLanguage-Tag
as defined by [BCP47], andMAY contain a@direction
propertywhose value is abase direction string defined by the@direction
property in [JSON-LD11]. The language value objectMUST NOT include any otherkeys beyond@value
,@language
, and@direction
.
Using the design pattern above, the following example expresses the title of abook in the English language without specifying a text direction.
"title": { "@value": "HTML and CSS: Designing and Creating Websites", "@language": "en"}
The next example uses a similar title expressed in the Arabic language with abase direction of right-to-left.
"title": { "@value": "HTML و CSS: تصميم و إنشاء مواقع الويب", "@language": "ar", "@direction": "rtl"}
The text above would most likely be rendered incorrectly as left-to-rightwithout the explicit expression of language and direction because many systemsuse the first character of a text string to determine itsbase direction.
Multiple language value objectsMAY be provided as an array value for theproperty:
"title": [ { "@value": "HTML and CSS: Designing and Creating Websites", "@language": "en" }, { "@value": "HTML و CSS: تصميم و إنشاء مواقع الويب", "@language": "ar", "@direction": "rtl" }]
{ "@context": [ "https://www.w3.org/ns/credentials/v2", "https://achievement.example/multilingual/v2" ], "type": [ "VerifiableCredential", "ExampleAchievementCredential" ], "issuer": { "id": "did:example:2g55q912ec3476eba2l9812ecbfe", "type": "Profile" }, "validFrom": "2024-03-14T22:32:52Z", "validUntil": "2025-01-01T00:00:00Z", "credentialSubject": { "type": [ "AchievementSubject" ], "achievement": { "id": "urn:uuid:9a652678-4616-475d-af12-aca21cfbe06d", "type": [ "Achievement" ], "name": { "en": "Successful installation of the Example application", "es": "Instalación exitosa de la aplicación Example" }, "criteria": { "narrative": { "es": "Instaló exitosamente de la aplicación Example.", "en": "Successfully installed the Example application." } } } }}
The language and base direction of each natural language string property valueSHOULD be provided, either via the language value structure for each propertyvalue, or via a default language and base direction for all values in the entirecredential. Using the per-value language value structure is preferred, becauseusing document defaults can result in a requirement that downstream processorsperform JSON-LD expansion-based transformation which is otherwise optional. SeetheString Internationalization section of the [JSON-LD11] specification formore information. Natural language string values that do not have a languageassociated with themSHOULD be treated as if the language value isundefined
(language tag "und
"). Natural language string values that do not have a basedirection associated with themSHOULD be treated as if the direction value is"auto
".
This section is non-normative.
While this specification does not provide conformance criteria for the processof thevalidation ofverifiable credentials orverifiable presentations, readers might be curious about how theinformation in this data model is expected to be used byverifiersduring the process ofvalidation. This section captures a selection ofconversations held by the Working Group related to the expected use of theproperties in this specification byverifiers.
This section is non-normative.
When averifier requests one or moreverifiable credentials from aholder, they can specify thetype of credential(s)that they would like to receive. Credential types, as well as validation schemasfor each type and each of theirclaims, are defined by specification authorsand are published in places like theVerifiable Credential Extensions.
The type of a credential is expressed via thetypeproperty. Averifiable credential of a specific type contains specificproperties (which might be deeply nested) that can be used to determinewhether or not thepresentation satisfies a set of processing rules that theverifier executes. By requestingverifiable credentials of a particulartype
, theverifier is able to gather specific information from theholder, which originated with theissuer of eachverifiable credential, that will enable theverifier to determine the next stage ofan interaction with aholder.
When averifier requests averifiable credential of a specific type,there will be a set of mandatory and optionalclaims that are associatedwith that type. Averifier's validation of averifiable credential willfail when mandatoryclaims are not included, and anyclaim that isnot associated with the specific type will be ignored. In other words, averifier will perform input validation on theverifiable credential itreceives and will reject malformed input based on the credential typespecification.
This section is non-normative.
In theverifiable credentials presented by aholder, the valueassociated with theid
property for eachcredentialSubject
identifies asubject to theverifier. If theholder is also thesubject, thentheverifier could authenticate theholder if they haveverificationmetadata related to theholder. Theverifier could then authenticate theholder using a signature generated by theholder contained in theverifiable presentation. Theid
property is optional.Verifierscould use otherproperties in averifiable credential to uniquelyidentify asubject.
For information on how authentication and WebAuthn might work withverifiable credentials, see theVerifiable Credentials Implementation Guidelines 1.0 document.
This section is non-normative.
The value associated with theissuer
property identifies anissuerto theverifier.
Metadata related to theissuer
property is available to theverifier through theverificationalgorithm as defined in Section7.1Verification.This metadata includes identification of the verified controller of theverification method used by the securing mechanism to secure eachverifiable credential orverifiable presentation, of which the controller istypically the respectiveissuer
orholder
.
Some ecosystems might have more complex relationships betweenissuersand controllers of verification methods and might use lists of verifiedissuers in addition to, or instead of, the mapping described above.
This section is non-normative.
The value associated with theholder
property is used to identify theholder to theverifier.
Often relevant metadata about theholder, as identified by the value oftheholder
property, is available to, or retrievable by, theverifier. For example, aholder can publish information containingtheverification material used to secureverifiable presentations. Thismetadata is used when checking proofs onverifiable presentations.Some cryptographic identifiers contain all necessary metadata in the identifieritself. In those cases, no additional metadata is required. Other identifiersuse verifiable data registries where such metadata is automatically publishedfor use byverifiers, without any additional action by theholder.
See theVerifiable Credentials Implementation Guidelines 1.0 andVerifiable Credentials Use Cases for additional examples related tosubject andholder.
Validation is the process by which verifiers apply business rules toevaluate the propriety of a particular use of averifiable credential.
Averifier might need to validate a givenverifiable presentationagainst complex business rules; for example, the verifier might need confidencethat theholder is the same entity as asubject of averifiable credential. In such a situation, the following factors can provide averifier with reasonable confidence that the claims expressed regardingthat identifier, in includedverifiable credentials, are, in fact, aboutthe current presenter:
holder
property of theverifiable presentationand at least one identifier property of at least one object in thecredentialSubject
array are the same.This section is non-normative.
ThevalidFrom
is expected to be within an expected range for theverifier. For example, averifier can check that the start ofthe validity period for averifiable credential is not in the future.
This section is non-normative.
The securing mechanism used to prove that the information in averifiable credential orverifiable presentation was not tampered with is called acryptographic proof. There are many types of cryptographic proofsincluding, but not limited to, digital signatures and zero-knowledge proofs. Ingeneral, when verifying cryptographic proofs, implementations are expected toensure:
In general, when verifying digital signatures, implementations are expected toensure:
This section is non-normative.
Theverifier expects that thevalidFrom
andvalidUntil
properties will be within a certain range. For example,averifier can check that the end of the validity period of averifiable credential is not in the past. Because some credentials can beuseful for secondary purposes even if their original validity period hasexpired, validity period, as expressed using thevalidFrom
andvalidUntil
properties, is always considered a component ofvalidation, which is performedafter verification.
This section is non-normative.
If thecredentialStatus
property is available, the status of averifiable credential is expected to be evaluated by theverifieraccording to thecredentialStatus
type definition for theverifiable credential and theverifier's own status evaluationcriteria. For example, averifier can ensure the status of theverifiable credential is not "withdrawn for cause by theissuer".
This section is non-normative.
If thecredentialSchema
property is available, the schema of averifiable credential is expected to be evaluated by theverifieraccording to thecredentialSchema
type definition for theverifiable credential and theverifier's own schema evaluationcriteria. For example, if thecredentialSchema
'stype
value is [VC-JSON-SCHEMA], then averifier can ensure a credential'sdata is valid against the given JSON Schema.
This section is non-normative.
Fitness for purpose is about whether the customproperties in theverifiable credential are appropriate for theverifier's purpose.For example, if averifier needs to determine whether asubject isolder than 21 years of age, they might rely on a specificbirthdate
property, or on more abstractproperties, such asageOver
.
Theissuer is trusted by theverifier to make theclaims athand. For example, a franchised fast food restaurant location trusts thediscount couponclaims made by the corporate headquarters of thefranchise. Policy information expressed by theissuer in theverifiable credential should be respected byholders andverifiers unless they accept the liability of ignoring the policy.
This section is non-normative.
Systems using what is today commonly referred to as "artificial intelligence"and/or "machine learning" might be capable of performing complex tasks at alevel that meets or exceeds human performance. This might include tasks such asthe acquisition and use ofverifiable credentials. Using such tasks todistinguish between human and automated "bot" activity, as is commonly donetoday with aCAPTCHA,for instance, might thereby cease to provide adequate or acceptable protection.
Implementers of security architectures that useverifiable credentialsand/or perform validation on their content are urged to consider the existenceof machine-based actors, such as those which are today commonly referred to as"artificial intelligence", that might legitimately holdverifiable credentials for use in interactions with other systems. Implementers mightalso consider how threat actors could couple such "artificial intelligence"systems withverifiable credentials to pose as humans when interacting withtheir systems. Such systems might include, but not be limited to, globalinfrastructure such as social media, election, energy distribution, supplychain, and autonomous vehicle systems.
ImplementationsMUST treat the base context value, located athttps://www.w3.org/ns/credentials/v2
, as already retrieved;the following value is the hexadecimal encoded SHA2-256 digest value of the basecontext file:59955ced6697d61e03f2b2556febe5308ab16842846f5b586d7f1f7adec92734
. It is possible to confirmthe cryptographic digest above by running the following command from a modernUnix command interface line:curl -s https://www.w3.org/ns/credentials/v2 | openssl dgst -sha256
.
It is strongly advised that all JSON-LD Context URLs used by anapplication use the same mechanism, or a functionally equivalent mechanism,to ensure end-to-end security. Implementations are expected to throw errorsif a cryptographic hash value for a resource does not match the expected hashvalue.
Implementations that apply the base context above, as well as other contextsand values in any@context
property, during operations such asJSON-LD Expansion ortransformation to RDF, are expected to do so without experiencing anyerrors. If such operations are performed and result in an error,theverifiable credential orverifiable presentationMUST resultin a verification failure.
It is extremely unlikely that the files that have associated cryptographic hashvalues in this specification will change. However, if critical errata arefound in the specification and corrections are required to ensureecosystem stability, the cryptographic hash values might change. As such, theHTTP cache times for the files are not set to infinity and implementers areadvised to check for errata if a cryptographic hash value change is detected.
This section serves as a reminder of the importance of ensuring that, whenverifyingverifiable credentials andverifiable presentations, theverifier has information that is consistent with what theissuerorholder had when securing thecredential orpresentation.This information might include at least:
Verifiers are warned that other data that is referenced from within acredential, such as resources that are linked to via URLs, are notcryptographically protected by default. It is considered a best practice toensure that the same sorts of protections are provided for any URL that iscritical to the security of theverifiable credential through the use ofpermanently cached files and/or cryptographic hashes. Ultimately, knowing thecryptographic digest of any linked external content enables averifier toconfirm that the content is the same as what theissuer orholderintended.
Implementations that depend on RDF vocabulary processingMUST ensure that thefollowing vocabulary URLs used in the base context ultimately resolve to thefollowing files when loading the JSON-LD serializations, which are normative.Other semantically equivalent serializations of the vocabulary filesMAY be usedby implementations. A cryptographic hash is provided for each JSON-LD documentto ensure that developers can verify that the content of each file is correct.
JSON-LD Documents and Hashes |
---|
URL: https://www.w3.org/2018/credentials# Resolved Document: https://www.w3.org/2018/credentials/index.jsonld SHA2-256 Digest: 9db03c54d69a8ec3944f10770e342b33e58a79045c957c35d51285976fc467c4 |
URL: https://w3id.org/security# Resolved Document: https://w3c.github.io/vc-data-integrity/vocab/security/vocabulary.jsonld SHA2-256 Digest: 689af6f393b55c9b35c37cfad59d13cc421e0c89ce97cf0e8234f9b4a3074104 |
It is possible to confirm the cryptographic digests listed above by runninga command like the following, replacing<DOCUMENT_URL>
with the appropriate value, through a modern UNIX-like OS command line interface:curl -sL -H "Accept: application/ld+json" <DOCUMENT_URL> | openssl dgst -sha256
Implementers and document authors might note that cryptographic digests forschema.org
are not provided. This is because theschema.org
vocabularyundergoes regular changes; any digest provided would be out of date withinweeks of publication. The Working Group discussed this concern and concludedthat the vocabulary terms fromschema.org
, that are used by thisspecification, have been stable for years and are highly unlikely to change intheir semantic meaning.
The following base classes are defined in this specification for processorsand other specifications that benefit from such definitions:
Base Class | Purpose |
---|---|
CredentialEvidence | Serves as a superclass for specific evidence types that are placed into theevidence property. |
CredentialSchema | Serves as a superclass for specific schema types that are placed into thecredentialSchema property. |
CredentialStatus | Serves as a superclass for specific credential status types that are placed intothecredentialStatus property. |
ConfidenceMethod | Serves as a superclass for specific confidence method types that are placed intotheconfidenceMethod property. |
RefreshService | Serves as a superclass for specific refresh service types that are placed intothecredentialRefresh property. |
RenderMethod | Serves as a superclass for specific render method types that are placed intotherenderMethod property. |
TermsOfUse | Serves as a superclass for specific terms of use types that are placed intothetermsOfUse property. |
This section defines datatypes that are used by this specification.
ThesriString
datatype is associated with a value to provide the integrityinformation for a resource using the method specified in theSubresource Integrityspecification. ThesriString
datatype is defined as follows:
https://www.w3.org/2018/credentials#sriString
integrity
attribute in the [SRI] specification,for the restrictions on the string format.This section is non-normative.
Theverifiable credential andverifiable presentation data modelsleverage a variety of underlying technologies including [JSON-LD11] and[VC-JSON-SCHEMA]. This section will provide a comparison of the@context
,type
, andcredentialSchema
properties, and cover some of the more specific use cases where it is possibleto use these features of the data model.
Thetype
property is used to uniquely identify the type of theverifiable credential in which it appears, that is, to indicate which set ofclaims theverifiable credential contains. This property, and the valueVerifiableCredential
within the set of its values, are mandatory.Whilst it is good practice to include one additional value depicting the uniquesubtype of thisverifiable credential, it is permitted to either omit orinclude additional type values in the array. Many verifiers will request averifiable credential of a specific subtype, then omitting the subtypevalue could make it more difficult for verifiers to inform the holder whichverifiable credential they require. When averifiable credentialhas multiple subtypes, listing all of them in thetype
property is sensible. The use of thetype
property in a[JSON-LD11] representation of averifiable credential enables to enforcethe semantics of theverifiable credential because the machine is able tocheck the semantics. With [JSON-LD11], the technology is not only describing thecategorization of the set of claims, the technology is also conveying thestructure and semantics of the sub-graph of the properties in the graph. In[JSON-LD11], this represents the type of the node in the graph which is why some[JSON-LD11] representations of averifiable credential will use thetype
property on many objects in theverifiable credential.
The primary purpose of the@context
property, from a [JSON-LD11]perspective, is to convey the meaning of the data and term definitions of thedata in averifiable credential, in a machine-readable way. The@context
property is used to map the globally unique URLs forproperties inverifiable credentials andverifiable presentationsinto short-form alias names, making [JSON-LD11] representations morehuman-friendly to read. From a [JSON-LD11] perspective, this mapping also allowsthe data in acredential to be modeled in a network of machine-readabledata, by enhancing how the data in theverifiable credential orverifiable presentation relates to a larger machine-readable data graph.This is useful for telling machines how to relate the meaning of data to otherdata in an ecosystem where parties are unable to coordinate. This property, withthe first value in the set beinghttps://www.w3.org/ns/credentials/v2
, is mandatory.
Since the@context
property is used to map data to a graphdata model, and thetype
property in [JSON-LD11] is used todescribe nodes within the graph, thetype
property becomeseven more important when using the two properties in combination. For example,if thetype
property is not included within the resolved@context
resource using [JSON-LD11], it could lead to claims beingdropped and/or their integrity no longer being protected during production andconsumption of theverifiable credential. Alternatively, it could lead toerrors being raised during production or consumption of averifiable credential. This will depend on the design choices of the implementation andboth paths are used in implementations today, so it's important to pay attentionto these properties when using a [JSON-LD11] representation of averifiable credential orverifiable presentation.
The primary purpose of thecredentialSchema
property is to definethe structure of theverifiable credential, and the datatypes for thevalues of each property that appears. AcredentialSchema
is usefulfor defining the contents and structure of a set of claims in averifiable credential, whereas [JSON-LD11] and a@context
in averifiable credential are best used only for conveying the semantics andterm definitions of the data, and can be used to define the structure of theverifiable credential as well.
While it is possible to use some [JSON-LD11] features to allude to thecontents of theverifiable credential, it's not generally suggested to use@context
to constrain the data types of the data model. For example,"@type": "@json"
is useful for leaving the semantics open-ended and notstrictly defined. This can be dangerous if the implementer is looking toconstrain the data type of the claims in thecredential, and is expectednot to be used.
When thecredentialSchema
and@context
propertiesare used in combination, both producers and consumers can be more confidentabout the expected contents and data types of theverifiable credentialandverifiable presentation.
This section is non-normative.
This section will be submitted to the Internet Engineering Steering Group(IESG) for review, approval, and registration with IANA.
This specification registers theapplication/vc
media type specifically foridentifying documents conforming to theverifiable credentials format.
Type name: | application |
Subtype name: | vc |
Required parameters: | None |
Encoding considerations: | Resources that use theapplication/vc media type are required to conform toall of the requirements for theapplication/ld+json media type and aretherefore subject to the same encoding considerations specified in Section 11ofThe JavaScript Object Notation (JSON) Data Interchange Format. |
Security considerations: | As defined in theVerifiable Credentials Data Model v2.0. |
Contact: | W3C Verifiable Credentials Working Grouppublic-vc-wg@w3.org |
Note that while theverifiable credentials format uses JSON-LD conventions,there are a number of constraints and additional requirements forverifiable credential implementations that justify the use of a specific media type.
This media type can be used in anenveloping proof to denote the envelopedpayload.
The credential is expected to be a validJSON-LD document.Verifiable credentials served with theapplication/vc
media type areexpected to have allJSON-LD 1.1 context information, including referencesto external contexts, within the body of the document. Contexts linked via ahttp://www.w3.org/ns/json-ld#context
HTTP Link Header(seeSection 6.1ofJSON-LD 1.1) are ignored.
This specification registers theapplication/vp
media type specifically foridentifying documents conforming to theverifiable presentations format.
Type name: | application |
Subtype name: | vp |
Required parameters: | None |
Encoding considerations: | Resources that use theapplication/vp media type are required to conform toall of the requirements for theapplication/ld+json media type and aretherefore subject to the same encoding considerations specified in Section 11ofThe JavaScript Object Notation (JSON) Data Interchange Format. |
Security considerations: | As defined inVerifiable Credentials Data Model v2.0. |
Contact: | W3C Verifiable Credentials Working Grouppublic-vc-wg@w3.org |
Note that while theverifiable presentations format uses JSON-LDconventions, there are a number of constraints and additional requirements forverifiable presentation implementations that justify the use of a specificmedia type.
This media type can be used in anenveloping proof to denote the envelopedpayload.
The presentation is expected to be a validJSON-LD document.Verifiable presentations served with theapplication/vp
media type are expected to haveallJSON-LD 1.1 context information, including references to externalcontexts, within the body of the document. Contexts linked via ahttp://www.w3.org/ns/json-ld#context
HTTP Link Header (seeSection 6.1of [JSON-LD11]) are ignored.
This section is non-normative.
Figure14 below is a variant ofFigure9: averifiable presentation referring to twoverifiable credentials, andusingembedded proofs based on [VC-DATA-INTEGRITY]. Eachverifiable credential graph is connected to its own separateproof graph; theverifiableCredential
property is used to connect theverifiable presentation to theverifiable credential graphs. Thepresentationproof graph represents the digital signature of theverifiable presentation graph, bothverifiable credential graphs, and theproof graphs linked from theverifiable credential graphs. The completeverifiable presentation consists, in this case, of six informationgraphs.
Figure15 below shows the sameverifiable presentation asFigure14, but using anenveloping proof based on [VC-JOSE-COSE]. Eachverifiable credential graph contains a singleEnvelopedVerifiableCredential
instance, referring, via adata:
URL [RFC2397], to a verifiable credential secured via anenveloping proof.
This section contains the substantive changes that have been made to thisspecification over time.
Changes since thev2.0 Second Candidate Recommendation:
Changes since thev2.0 First Candidate Recommendation:
@vocab
from the base context and added warnings about its use inapplication-specific context files.application/vc
andapplication/vp
.Changes since thev1.1 Recommendation:
proof
between Data Integrity andthis specification.issuer
property.name
anddescription
properties for issuers and credentials.dateTimeStamp
is used for time values. Provide further guidanceon proper use of time values and timezones.validFrom
optional.relatedResource
feature.renderMethod
andconfidenceMethod
to list of reserved properties.termsOfUse
to presentations in v2 context.application/vc
andapplication/vp
.issuanceDate
/expirationDate
tovalidFrom
/validUntil
.credentialSubject
values cannot be strings.Changes since thev1.0 Recommendation:
id
property of thecredentialStatus
andrefreshService
sections of the data model.issuer
,issuanceDate
,credentialStatus
, dates, dead links, and minor syntax errors.This section is non-normative.
The Working Group thanks the following individuals not only for theircontributions toward the content of this document, but also for yeoman's workin this standards community that drove changes, discussion, and consensus amonga sea of varied opinions: David Chadwick, Dave Longley, Ted Thibodeau Jr.,Brent Zundel, Ivan Herman, Joe Andrieu, and Gabe Cohen.
Work on this specification has been supported by the Rebooting the Web of Trustcommunity facilitated by Christopher Allen, Shannon Appelcline, Kiara Robles,Brian Weller, Betty Dhamers, Kaliya Young, Manu Sporny, Drummond Reed, JoeAndrieu, Heather Vescent, Kim Hamilton Duffy, Samantha Chase, Andrew Hughes,Will Abramson, Erica Connell, Eric Schuh, Zaïda Rivai, and Shigeya Suzuki.The participants in the Internet Identity Workshop, facilitated by Phil Windley,Kaliya Young, Doc Searls, and Heidi Nobantu Saul, also supported the refinementof this work through numerous working sessions designed to educate about,debate on, and improve this specification.
The Working Group also thanks our Working Group Chairs, Dan Burnett, Matt Stone,Brent Zundel, Wayne Chang, and Kristina Yasuda, as well as ourW3C StaffContacts, Kazuyuki Ashimura and Ivan Herman, for their expert management andsteady guidance of the group through multipleW3C standardization cycles. Wealso thank the Chairs of theW3C Credentials Community Group, Christopher Allen,Joe Andrieu, Kim Hamilton Duffy, Heather Vescent, Wayne Chang, Mike Prorock,Harrison Tang, Kimberly Wilson Linson, and Will Abramson, who oversaw theincubation of a number of work items that were incorporated into thisspecification.
Portions of the work on this specification have been funded by the United StatesDepartment of Homeland Security's Science and Technology Directorate undercontracts HSHQDC-17-C-00019, 70RSAT20T00000010/P00001, 70RSAT20T00000029,70RSAT21T00000016/P00001, 70RSAT23T00000005, 70RSAT23C00000030,70RSAT23R00000006, 70RSAT24T00000014, 70RSAT22T00000001, and the NationalScience Foundation under NSF 22-572. The content of this specification does notnecessarily reflect the position or the policy of the U.S. Government and noofficial endorsement should be inferred.
The Working Group would like to thank the following individuals for reviewingand providing feedback on the specification (in alphabetical order by firstname or their Github handle if a name was not provided):
Abhishek Mahadevan Raju,Adam C. Migus,Addison Phillips,Adrian Gropper,Aisp-GitHub,Alen Horvat,Alexander Mühle,AlexAndrei98,Allen Brown,Amy Guy,Andor Kesselman,Andres Paglayan,Andres Uribe,Andrew Hughes,Andrew Jones,Andrew Whitehead,Andy Miller,Anil John,Anthony Camilleri,Anthony Nadalin,Benjamin Collins,Benjamin Goering,Benjamin Young,Bert Van Nuffelen,Bohdan Andriyiv,Brent Zundel,Brian Richter,Bruno Zimmermann,caribouW3,cdr,Chaoxinhu,Charles "Chaals" McCathieNevile,Charles E. Lehner,Chris Abernethy,Chris Buchanan,Christian Lundkvist,Christine Lemmer-Webber,Christoph Lange,Christopher Allen,Christopher Lemmer Webber,ckennedy422,Clare Nelson,confiks,Dan Brickley,Daniel Buchner,Daniel Burnett,Daniel Hardman,Darrell O'Donnell,Dave Longley,David Ammouial,David Chadwick,David Ezell,David Hyland-Wood,David I. Lehn,David Janes,David Waite,Denis Ah-Kang,Denisthemalice,Devin Rousso,Dmitri Zagidulin,Dominique Hazael-Massieux,Drummond Reed,Emmanuel,enuoCM,Eric Elliott,Eric Korb,Eric Prud'hommeaux,etaleo,Evstifeev Roman,Fabricio Gregorio,Filip Kolarik,Gabe Cohen,Ganesh Annan,George Aristy,glauserr,Golda Velez,Grace Huang,Grant Noble,Greg Bernstein,Gregg Kellogg,Heather Vescent,Henry Andrews,Henry Story,Ian B. Jacobs,Ilan,Isaac Henderson,isaackps,Iso5786,Ivan Herman,Jace Hensley,Jack Tanner,James Schoening,Janina Sajka,Jan Forster Cognizone,Jeff Burdges,Jeffrey Yasskin,Jim Masloski,Jim St.Clair,Joe Andrieu,Joel Gustafson,Joel Thorstensson,John Tibbetts,Jonathan Holt,José San Juan,Juan Caballero,Julien Fraichot,Justin Richer,Kaan Uzdoğan,Kaliya Young,Kazuyuki Ashimura,Ken Ebert,Kendall Weihe,Kerri Lemoie,Kevin Dean,Kevin Griffin,Kim Hamilton Duffy,Konstantin Tsabolov,Kristijan Sedlak,Kristina Yasuda,Kyle Den Hartog,Lal Chandran,Lance,Lautaro Dragan,Leonard Rosenthol,Liam Missin,Liam Quin,Line Kofoed,Lionel Wolberger,Logan Porter,Lovesh Harchandani,Lukas J. Han,Mahmoud Alkhraishi,Maik Riechert,Manu Sporny,Marcel Jackisch,Mark Foster,Mark Harrison,Mark Moir,Markus Sabadello,Martin Thomson,Marty Reed,Matt Peterson,Matt Stone,Matthew Peterson,Matthieu Bosquet,Matti Taimela,Melvin Carvalho,Michael B. Jones,Michael Herman,Michael Lodder,Michael Richardson,Mike Prorock,Mike Varley,Mircea Nistor,MIZUKI Sonoko / Igarashi,nage,Nate Otto,Nathan George,Niclas Mietz,Niko Lockenvitz,Nikos Fotiou,Nis Jespersen,Oliver Terbu,Pat McBennett,Patrick St-Louis,Paul Bastian,Paul F. Dietrich,Paulo Jorge Q. Ferreira,Pelle Braendgaard,Pete Rowley,Phil Archer,Phillip Long,Pierre-Antoine Champin,Rajesh Rathnam,Ralph Swick,Renato Iannella,Reto Gmür,Reza Soltani,Richard Bergquist,Richard Ishida,Richard Varn,Rieks Joosten,RorschachRev,Ryan Grant,Samuel Müller,Samuel Smith,Sarven Capadisli,Sebastian Crane,Sebastian Elfors,Shawn Butterfield,Shigeya Suzuki,Sho Nakatani,Shuji Kamitsuna,Snorre Lothar von Gohren Edwin,Sten Reijers,Stephen Curran,Steve Huguenin,Steve McCown,Steven Rowat,Taro,tcibm,Ted Thibodeau Jr.,Tim Bouma,Timo Glastra,Tobias Käfer,Tobias Looker,Tom Jones,Torsten Lodderstedt,Tzviya Siegman,Victor Dods,Vincent Kelleher,Vladimir Alexiev,Víctor Herraiz Posada,Wayne Chang,whatisthejava,Will Abramson,William Entriken, andYancy Ribbens.
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in: