Skip to main content
Version: 0.6



The IOTA DIDComm Specification is in the RFC phase and may undergo changes. Suggestions are welcome at GitHub #464.

  • Status: IN-PROGRESS
  • Last Updated: 2021-10-29

CredentialInfo objects allow parties to negotiate which kinds of verifiable credentials they want to issue or exchange. Verifiable credential kinds can be described by different attributes such as the type and @context fields or the structure of the data in the payload. CredentialInfo provides methods to specify the identifying characteristics of a credential.

Currently, only CredentialType2021 is prescribed but additional CredentialInfo methods may be introduced in the future, e.g. to account for selective disclosure of particular fields. If full schema negotiation of credentials is required, refer to the external Presentation Exchange 1.0 specification.


  • Type: CredentialType2021

Negotiates verifiable credentials using their type and optional JSON-LD @context. The issuer field may also be included depending on the protocol and usage.

"credentialInfoType": string, // REQUIRED
"@context": [string], // OPTIONAL
"type": [string], // REQUIRED
"issuer": [string], // OPTIONAL
credentialInfoTypeString indicating the CredentialInfo method, MUST be "CredentialType2021".
@contextArray of [JSON-LD][contexts]CONTEXT referenced in the credential.
typeArray of credential types specifying the kind of credential offered.1
issuerArray of credential issuer DIDs or URIs.2

1 The type MAY be under-specified depending on the protocol but SHOULD always include the most general types. For example, a credential with the types ["VerifiableCredential", "DriversLicence", "EUDriversLicence", "GermanDriversLicence"] could be specified as ["VerifiableCredential", "DriversLicence"].

2 The issuer field MAY either be the single issuer of an existing credential, one or more issuers that a verifier would trust during a presentation, or one or more trusted issuers that a holder requests to sign their credential during an issuance. The issuer field is OPTIONAL as the holder may not want to reveal too much information up-front about the exact credentials they possess during a presentation; they may want a non-repudiable signed request from the verifier first.


  1. Indicate a "UniversityDegreeCredential" from a specific issuer:
"credentialInfoType": "CredentialType2021",
"type": ["VerifiableCredential", "UniversityDegreeCredential"],
"issuer": ["did:example:76e12ec712ebc6f1c221ebfeb1f"]

Unresolved Questions