Open Badges 3.0 TrustEd Credential Profile
Abstract
This is the TrustEd Credentials profile of the1EdTech Open Badges Specification that aligns with Open Badges 3.0, the TrustEd Credentials Framework, and the conventions of the Verifiable Credentials Data Model v2.0. In the TrustEd Credentials Open Badges 3.0 Profile, some metadata fields that are optional in Open Badges 3.0 are required, such as Skills and Criteria, as are some Open Badges 3.0 extensions such as Assessments.
Like Open Badges 3.0,the credentials that are produced that adhere to the TrustEd Credentials Framework are easily be bundled into [=Comprehensive Learner Records=] and [=Verifiable Presentations=].
Introduction
Audiences
The target readers for this document are:
- Business Leaders - the people who are responsible for identifying the business case for using verifiable digital credentials and badges
- Solution Architects - the people who are responsible for the definition and design of systems, applications, and tools that are to be used to issue, exchange, and verify digital credentials and badges
- Product Developers - the people who are adding functionality to issue, exchange, and verify digital credentials
Document Set
The Open Badges Specification has several related documents and artifacts shown below. Together they make up the specification.
JSON-LD Context File
When two people communicate with one another, the conversation takes place in a shared environment, typically called "the context of the conversation". This shared context allows the individuals to use shortcut terms, like the first name of a mutual friend, to communicate more quickly but without losing accuracy. A context in JSON-LD works in the same way. It allows two applications to use shortcut terms to communicate with one another more efficiently, but without losing accuracy.
Simply speaking, a context is used to map terms to IRIs. Terms are case sensitive and any valid string that is not a reserved JSON-LD keyword can be used as a term.
-- JSON-LD 1.1
JSON Schema
All JSON Schema can be found in JSON Schema. JSON Schema files for credential and API schema verification are available online:
Terminology
- Authorization Server: This is a [=server=] that implements the OAuth 2.0 endpoints on behalf of the [=resource server=]. In many systems, the [=authorization server=] and the [=resource server=] are combined.
- Badge: A single assertion of an achievement that is packaged as a verifiable credential.
- Comprehensive Learner Record (CLR): Set of assertions that can be packaged as a verifiable credential.
- Resource Server: This is the [=server=] that has the protected resources ([=badges=]). Also called Provider in the IMS Global Security Framework v1.1.
- REST API: A style of web API (Application Programming Interface) loosely based on HTTP methods (DELETE, GET, POST, and PUT) to access resources (e.g. CLRs) via a URL.
- server: In a [=REST API=], the server is the actor that responds to a DELETE, GET, or POST request. Also called a Platform in the IMS Global Security Framework v1.1.
Conformance Statements
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 words MAY, MUST, MUST NOT, OPTIONAL, RECOMMENDED, REQUIRED, SHALL, SHALL NOT, SHOULD, and SHOULD NOT in this document are to be interpreted as described in [RFC2119].
An implementation of this specification that fails to implement a MUST/REQUIRED/SHALL requirement or fails to abide by a MUST NOT/SHALL NOT prohibition is considered nonconformant. SHOULD/SHOULD NOT/RECOMMENDED statements constitute a best practice. Ignoring a best practice does not violate conformance but a decision to disregard such guidance should be carefully considered. MAY/OPTIONAL statements indicate that implementers are entirely free to choose whether or not to implement the option.
The Conformance and Certification Guide for this specification may introduce greater normative constraints than those defined here for specific service or implementation categories.
Overview
The TrustEd Credential Profile for Open Badges 3.0 defines a structured and interoperable approach for representing high-quality digital credentials. The profile establishes additional requirements and guidance for the use of existing OB3 properties, including achievementType, criteria, alignment, result, and evidence, to improve consistency, transparency, and interpretability.
The profile introduces conventions for representing credential meaning and achievement using existing Open Badges 3.0 properties, including achievementType, assessment, skills alignment, evidence, criteria, and outcomes. These conventions enable conformant systems to consistently interpret credential meaning and level of achievement without reliance on issuer-specific context.
What is the problem this solves for?
The proliferation of digital credentials has resulted in significant variability in how achievements are described and communicated. While OB3 provides a flexible data model, inconsistent use of properties such as criteria, alignment, result, and evidence limits the ability of receiving systems to reliably interpret credential meaning.
Key challenges include: • Lack of consistent use of achievementType, resulting in ambiguity between participation, knowledge acquisition, and applied competency. • Incomplete or inconsistent representation of alignment to skills or frameworks, reducing comparability across credentials. • Limited or non-standard use of evidence and result, making it difficult to assess rigor or level of achievement. • Absence of structured expectations for representing assessment methods, such as rubrics or validated assessments.
The TrustEd Credential Profile addresses these challenges by defining required and recommended usage patterns for Open Bages 3.0 properties, enabling consistent, machine-readable representation of credential quality, assessment, and outcomes.
Benefits and Opportunities
The TrustEd Credential Profile enables improved interoperability and interpretability of digital credentials across issuing and receiving systems.
For learners: • Credentials include structured use of alignment, result, and evidence, enabling clearer communication of demonstrated knowledge and skills. • Credentials can be transferred across systems while preserving meaning and required metadata.
For issuers: • Provides implementation guidance for consistent use of Open Badges 3.0 properties such as criteria, alignment, result, and evidence. • Enables explicit representation of achievement type through controlled use of achievementType. • Supports alignment to external frameworks through standardized use of alignment.
For receiving systems: • Enables reliable parsing and interpretation of credentials based on consistent metadata patterns. • Supports automated or semi-automated evaluation of credentials using result, evidence, and alignment. • Reduces reliance on issuer-specific interpretation or external validation.
For the ecosystem: • Establishes a common profile for representing high-quality credentials within OB3. • Improves interoperability by defining consistent usage of existing properties rather than introducing incompatible extensions. • Strengthens trust in digital credentials as verifiable and comparable representations of learning and achievement.
Use Cases
The use cases below drive the design of Open Badges 3.0 TrustEd Credential Profile specification.
Use Case 1: Issuing a TrustEd Knowledge Credential
An issuing organization awards a TrustEd Credential to a learner upon successful completion of an assessment that validates foundational knowledge.
The issuing system creates an Open Badges 3.0 credential conforming to the TrustEd Profile, including required metadata such as criteria, result, evidence, and alignment to skills or frameworks. Assessment details may also be included to clarify how the learner’s knowledge was evaluated. The credential is delivered to the learner and can be stored in a wallet or profile system. Any conformant receiving system can interpret the credential, understand the level of achievement, and verify its validity.
⸻
Use Case 2: Issuing a TrustEd Application Credential
An issuing organization awards a TrustEd Credential to a learner who demonstrates the ability to apply knowledge through a project, lab, or performance-based assessment.
The issuing system generates a credential that includes the required metadata for the TrustEd Profile, such as criteria, result, evidence, and alignment to skills or frameworks. Assessment details, such as rubric-based or performance-based evaluation information, may also be included to clarify how the learner demonstrated applied competence.
A receiving system, such as an employer platform, consumes the credential and can evaluate both the outcome and supporting evidence, enabling more informed decision-making.
⸻
Use Case 3: Verifying and Interpreting a TrustEd Credential
A receiving organization, such as an employer or another institution, receives a TrustEd Credential issued under the OB3 profile.
The receiving system validates the credential using OB3 verification mechanisms and interprets the TrustEd metadata fields. It evaluates the included achievementType, criteria, evidence, results, endorsements, and any available assessment details to understand the nature and rigor of the credential.
The organization uses this information to assess the learner’s level of competency without needing additional clarification from the issuer.
⸻
Use Case 4: Cross-Platform Credential Portability
A learner earns a TrustEd Credential from one platform and shares it with another platform or system.
The credential, structured according to the OB3 TrustEd Profile, is transferred without loss of meaning or required metadata. The receiving platform correctly parses and displays key fields such as skills, criteria, evidence, and results.
This enables seamless portability and supports learner mobility across systems, institutions, and employment contexts.
Changes to Open Badges 3.0 Specification
Summary of Changes
The TrustEd Credential Profile defines additional requirements and guidance for the use of existing Open Badges 3.0 properties to support consistent representation of credential quality and achievement. This includes structured use of `achievementType` to describe the nature of the achievement, and strengthened expectations for properties such as criteria, alignment, result, and evidence.
The profile also introduces guidance for representing assessment information, including use of rubrics, validated assessments, and outcome data, as well as expectations for accreditation and endorsement metadata. These changes enhance clarity, comparability, and interoperability while remaining fully compatible with the core OB3 specification.
Changes to the Data Model
This profile specializes the Open Badges 3.0 Data model by defining a set of changes, mainly modifying the cardinality of some properties to make them required.
Changes to Achievement
The existing following optional properties in Achievement are MANDATORY:
- `achievementType`
- `alignment`
- `resultDescription`
The value of `achievementType` MUST identify the nature of the achievement using the Open Badges 3.0 `achievementType`vocabulary or another conformant term from an allowed extensible vocabulary.
Changes to AchievementCredential
The existing following optional properties in AchievementCredential are MANDATORY:
- `awardedDate`
- `evidence`
Changes to AchievementSubject
The existing following optional properties in AchievementSubject are MANDATORY:
- `result`
Changes to Result
The existing following optional properties in Result are MANDATORY: A new property in Result 'resultDate' is MANDATORY
- `resultDescription`
TrustEd Credential Profile Requirements
Achievement Type
- A TrustEd Credential MUST include `achievementType`.
- The value MUST identify the nature of the achievement using the Open Badges 3.0 achievementType vocabulary or another conformant term from an allowed extensible vocabulary.
Skills and Framework Alignment
- A TrustEd Credential MUST include at least one `alignment`.
- Each alignment MUST reference an external skills framework via URI.
Evidence
- A TrustEd Credential MUST include at least one `evidence` object.
Result
- A TrustEd Credential MUST include a `result`.
- A TrustEd Credential MUST include `result.resultDate`.
- If `resultDescription.rubricCriterionLevel` is present, `result.achievedLevel` MUST be included.
Criteria
- A TrustEd Credential MUST include `criteria` as either a URI or narrative.
Assessment
- Assessment information SHOULD be provided.
- When present, it SHOULD follow OBEE assessment structures.
Duration
- Duration information SHOULD be included using `creditsAvailable` and/or `creditsEarned`.
Endorsement
- Endorsements SHOULD be included where applicable.
Accreditor
- Accreditor information MUST be included using the applicable Open Badges Issuer Accreditation Extension version 2.0 for accreditor information.
- The accreditor property MUST support multiple accreditor organizations.
- Organizations that are not accredited MAY include an empty list of accreditors.
Data Models
Credential Data Models
Achievement
A collection of information about the accomplishment recognized by the Assertion. Many assertions may be created corresponding to one Achievement.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
Unique URI for the Achievement. | [1] | N/A |
| type | IRI |
The type MUST include the IRI 'Achievement'. | [1..*] | N/A |
| alignment | Alignment |
An object describing which objectives or educational standards this achievement aligns to, if any. | [0..*] | N/A |
| achievementType | AchievementType |
The type of achievement. This is an extensible vocabulary. | [0..1] | N/A |
| creator | Profile |
The person or organization that created the achievement definition. | [0..1] | N/A |
| creditsAvailable | Float |
Credit hours associated with this entity, or credit hours possible. For example 3.0. | [0..1] | N/A |
| criteria | Criteria |
Criteria describing how to earn the achievement. | [1] | N/A |
| description | String |
A short description of the achievement. | [1] | N/A |
| endorsement | EndorsementCredential |
Allows endorsers to make specific claims about the Achievement. These endorsements are signed with a Data Integrity proof format. | [0..*] | N/A |
| endorsementJwt | CompactJws |
Allows endorsers to make specific claims about the Achievement. These endorsements are signed with the VC-JWT proof format. | [0..*] | N/A |
| fieldOfStudy | String |
Category, subject, area of study, discipline, or general branch of knowledge. Examples include Business, Education, Psychology, and Technology. | [0..1] | N/A |
| humanCode | String |
The code, generally human readable, associated with an achievement. | [0..1] | N/A |
| image | Image |
An image representing the achievement. | [0..1] | N/A |
| inLanguage | LanguageCode |
The language of the achievement. | [0..1] | N/A |
| name | String |
The name of the achievement. | [1] | N/A |
| otherIdentifier | IdentifierEntry |
A list of identifiers for the described entity. | [0..*] | N/A |
| related | Related |
The related property identifies another Achievement that should be considered the same for most purposes. It is primarily intended to identify alternate language editions or previous versions of Achievements. | [0..*] | N/A |
| resultDescription | ResultDescription |
The set of result descriptions that may be asserted as results with this achievement. | [0..*] | N/A |
| specialization | String |
Name given to the focus, concentration, or specific area of study defined in the achievement. Examples include 'Entrepreneurship', 'Technical Communication', and 'Finance'. | [0..1] | N/A |
| tag | String |
One or more short, human-friendly, searchable, keywords that describe the type of achievement. | [0..*] | N/A |
| version | String |
The version property allows issuers to set a version string for an Achievement. This is particularly useful when replacing a previous version with an update. | [0..1] | N/A |
This class can be extended with additional properties.
AchievementCredential
AchievementCredentials are representations of an awarded achievement, used to share information about a achievement belonging to one earner. Maps to a Verifiable Credential as defined in the Verifiable Credentials Data Model v2.0. As described in data-integrity, at least one proof mechanism, and the details necessary to evaluate that proof, MUST be expressed for a credential to be a verifiable credential. In the case of an embedded proof, the credential MUST append the proof in the proof property.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| @context | Context |
The value of the @context property MUST be an ordered set where the first item is a URI with the value 'https://www.w3.org/ns/credentials/v2', and the second item is a URI with the value 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json'. |
[2..*] | N/A |
| id | URI |
Unambiguous reference to the credential. | [1] | N/A |
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the URI 'VerifiableCredential', and one of the items MUST be the URI 'AchievementCredential' or the URI 'OpenBadgeCredential'. | [1..*] | N/A |
| name | String |
The name of the credential for display purposes in wallets. For example, in a list of credentials and in detail views. | [0..1] | N/A |
| description | String |
The short description of the credential for display purposes in wallets. | [0..1] | N/A |
| image | Image |
The image representing the credential for display purposes in wallets. | [0..1] | N/A |
| awardedDate | DateTimeZ |
Timestamp of when the credential was awarded. validFrom is used to determine the most recent version of a Credential in conjunction with issuer and id. Consequently, the only way to update a Credental is to update the validFrom, losing the date when the Credential was originally awarded. awardedDate is meant to keep this original date. |
[0..1] | N/A |
| credentialSubject | AchievementSubject |
The recipient of the achievement. | [1] | N/A |
| endorsement | EndorsementCredential |
Allows endorsers to make specific claims about the credential, and the achievement and profiles in the credential. These endorsements are signed with a Data Integrity proof format. | [0..*] | N/A |
| endorsementJwt | CompactJws |
Allows endorsers to make specific claims about the credential, and the achievement and profiles in the credential. These endorsements are signed with the VC-JWT proof format. | [0..*] | N/A |
| issuer | ProfileRef |
A description of the individual, entity, or organization that issued the credential. | [1] | N/A |
| validFrom | DateTimeZ |
Timestamp of when the credential becomes valid. | [1] | N/A |
| validUntil | DateTimeZ |
If the credential has some notion of validity period, this indicates a timestamp when a credential should no longer be considered valid. After this time, the credential should be considered invalid. | [0..1] | N/A |
| proof | Proof |
If present, one or more embedded cryptographic proofs that can be used to detect tampering and verify the authorship of the credential. | [0..*] | N/A |
| credentialSchema | CredentialSchema |
The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine if the provided data conforms to the provided schema. |
[0..*] | N/A |
| credentialStatus | CredentialStatus |
The information in CredentialStatus is used to discover information about the current status of a verifiable credential, such as whether it is suspended or revoked. | [0..1] | N/A |
| refreshService | RefreshService |
The information in RefreshService is used to refresh the verifiable credential. | [0..1] | N/A |
| termsOfUse | TermsOfUse |
The value of the termsOfUse property tells the verifier what actions it is required to perform (an obligation), not allowed to perform (a prohibition), or allowed to perform (a permission) if it is to accept the verifiable credential. |
[0..*] | N/A |
| evidence | Evidence |
A description of the work that the recipient did to earn the credential. This can be a page that links out to other pages if linking directly to the work is infeasible. | [0..*] | N/A |
This class can be extended with additional properties.
AchievementSubject
A collection of information about the recipient of an achievement. Maps to Credential Subject in Verifiable Credentials Data Model v2.0.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
An identifier for the Credential Subject. Either id or at least one identifier MUST be supplied. |
[0..1] | N/A |
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the IRI 'AchievementSubject'. | [1..*] | N/A |
| activityEndDate | DateTime |
The datetime the activity ended. | [0..1] | N/A |
| activityStartDate | DateTime |
The datetime the activity started. | [0..1] | N/A |
| creditsEarned | Float |
The number of credits earned, generally in semester or quarter credit hours. This field correlates with the Achievement creditsAvailable field. |
[0..1] | N/A |
| achievement | Achievement |
The achievement being awarded. | [1] | N/A |
| identifier | IdentityObject |
Other identifiers for the recipient of the achievement. Either id or at least one identifier MUST be supplied. |
[0..*] | N/A |
| image | Image |
An image representing this user's achievement. If present, this must be a PNG or SVG image, and should be prepared via the 'baking' instructions. An 'unbaked' image for the achievement is defined in the Achievement class and should not be duplicated here. | [0..1] | N/A |
| licenseNumber | String |
The license number that was issued with this credential. | [0..1] | N/A |
| narrative | Markdown |
A narrative that connects multiple pieces of evidence. Likely only present at this location if evidence is a multi-value array. | [0..1] | N/A |
| result | Result |
The set of results being asserted. | [0..*] | N/A |
| role | String |
Role, position, or title of the learner when demonstrating or performing the achievement or evidence of learning being asserted. Examples include 'Student President', 'Intern', 'Captain', etc. | [0..1] | N/A |
| source | Profile |
The person, organization, or system that assessed the achievement on behalf of the issuer. For example, a school may assess the achievement, while the school district issues the credential. | [0..1] | N/A |
| term | String |
The academic term in which this assertion was achieved. | [0..1] | N/A |
This class can be extended with additional properties.
Address
An address for the described entity.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the IRI 'Address'. | [1..*] | N/A |
| addressCountry | String |
A country. | [0..1] | N/A |
| addressCountryCode | CountryCode |
A country code. The value must be a ISO 3166-1 alpha-2 country code Codes for the representation of names of countries and their subdivisions — Part 1: Country code. | [0..1] | N/A |
| addressRegion | String |
A region within the country. | [0..1] | N/A |
| addressLocality | String |
A locality within the region. | [0..1] | N/A |
| streetAddress | String |
A street address within the locality. | [0..1] | N/A |
| postOfficeBoxNumber | String |
A post office box number for PO box addresses. | [0..1] | N/A |
| postalCode | String |
A postal code. | [0..1] | N/A |
| geo | GeoCoordinates |
The geographic coordinates of the location. | [0..1] | N/A |
This class can be extended with additional properties.
Alignment
Describes an alignment between an achievement and a node in an educational framework.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the IRI 'Alignment'. | [1..*] | N/A |
| targetCode | String |
If applicable, a locally unique string identifier that identifies the alignment target within its framework and/or targetUrl. | [0..1] | N/A |
| targetDescription | String |
Short description of the alignment target. | [0..1] | N/A |
| targetName | String |
Name of the alignment. | [1] | N/A |
| targetFramework | String |
Name of the framework the alignment target. | [0..1] | N/A |
| targetType | AlignmentTargetType |
The type of the alignment target node. | [0..1] | N/A |
| targetUrl | URL |
URL linking to the official description of the alignment target, for example an individual standard within an educational framework. | [1] | N/A |
This class can be extended with additional properties.
Criteria
Descriptive metadata about the achievements necessary to be recognized with an assertion of a particular achievement. This data is added to the Achievement class so that it may be rendered when the achievement assertion is displayed, instead of simply a link to human-readable criteria external to the achievement. Embedding criteria allows either enhancement of an external criteria page or increased portability and ease of use by allowing issuers to skip hosting the formerly-required external criteria page altogether. Criteria is used to allow would-be recipients to learn what is required of them to be recognized with an assertion of a particular achievement. It is also used after the assertion is awarded to a recipient to let those inspecting earned achievements know the general requirements that the recipients met in order to earn it.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
The URI of a webpage that describes in a human-readable format the criteria for the achievement. | [0..1] | N/A |
| narrative | Markdown |
A narrative of what is needed to earn the achievement. Markdown is allowed. | [0..1] | N/A |
This class can be extended with additional properties.
EndorsementCredential
A verifiable credential that asserts a claim about an entity. As described in data-integrity, at least one proof mechanism, and the details necessary to evaluate that proof, MUST be expressed for a credential to be a verifiable credential. In the case of an embedded proof, the credential MUST append the proof in the proof property.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| @context | Context |
The value of the @context property MUST be an ordered set where the first item is a URI with the value 'https://www.w3.org/ns/credentials/v2', and the second item is a URI with the value 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json'. |
[2..*] | N/A |
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the URI 'VerifiableCredential', and one of the items MUST be the URI 'EndorsementCredential'. | [1..*] | N/A |
| id | URI |
Unambiguous reference to the credential. | [1] | N/A |
| name | String |
The name of the credential for display purposes in wallets. For example, in a list of credentials and in detail views. | [1] | N/A |
| description | String |
The short description of the credential for display purposes in wallets. | [0..1] | N/A |
| credentialSubject | EndorsementSubject |
The individual, entity, organization, assertion, or achievement that is endorsed and the endorsement comment. | [1] | N/A |
| awardedDate | DateTimeZ |
Timestamp of when the credential was awarded. validFrom is used to determine the most recent version of a Credential in conjunction with issuer and id. Consequently, the only way to update a Credental is to update the validFrom, losing the date when the Credential was originally awarded. awardedDate is meant to keep this original date. |
[0..1] | N/A |
| issuer | ProfileRef |
A description of the individual, entity, or organization that issued the credential. | [1] | N/A |
| validFrom | DateTimeZ |
Timestamp of when the credential becomes valid. | [1] | N/A |
| validUntil | DateTimeZ |
If the credential has some notion of validity period, this indicates a timestamp when a credential should no longer be considered valid. After this time, the credential should be considered invalid. | [0..1] | N/A |
| proof | Proof |
If present, one or more embedded cryptographic proofs that can be used to detect tampering and verify the authorship of the credential. | [0..*] | N/A |
| credentialSchema | CredentialSchema |
The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine if the provided data conforms to the provided schema. |
[0..*] | N/A |
| credentialStatus | CredentialStatus |
The information in CredentialStatus is used to discover information about the current status of a verifiable credential, such as whether it is suspended or revoked. | [0..1] | N/A |
| refreshService | RefreshService |
The information in RefreshService is used to refresh the verifiable credential. | [0..1] | N/A |
| termsOfUse | TermsOfUse |
The value of the termsOfUse property tells the verifier what actions it is required to perform (an obligation), not allowed to perform (a prohibition), or allowed to perform (a permission) if it is to accept the verifiable credential. |
[0..*] | N/A |
| evidence | Evidence |
A description of the work that the recipient did to earn the credential. This can be a page that links out to other pages if linking directly to the work is infeasible. | [0..*] | N/A |
This class can be extended with additional properties.
EndorsementSubject
A collection of information about the subject of the endorsement.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
The identifier of the individual, entity, organization, assertion, or achievement that is endorsed. | [1] | N/A |
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the URI 'EndorsementSubject'. | [1..*] | N/A |
| endorsementComment | Markdown |
Allows endorsers to make a simple claim in writing about the entity. | [0..1] | N/A |
This class can be extended with additional properties.
Evidence
Descriptive metadata about evidence related to the achievement assertion. Each instance of the evidence class present in an assertion corresponds to one entity, though a single entry can describe a set of items collectively. There may be multiple evidence entries referenced from an assertion. The narrative property is also in scope of the assertion class to provide an overall description of the achievement related to the assertion in rich text. It is used here to provide a narrative of achievement of the specific entity described. If both the description and narrative properties are present, displayers can assume the narrative value goes into more detail and is not simply a recapitulation of description.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
The URL of a webpage presenting evidence of achievement or the evidence encoded as a Data URI. The schema of the webpage is undefined. | [0..1] | N/A |
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the IRI 'Evidence'. | [1..*] | N/A |
| narrative | Markdown |
A narrative that describes the evidence and process of achievement that led to an assertion. | [0..1] | N/A |
| name | String |
A descriptive title of the evidence. | [0..1] | N/A |
| description | String |
A longer description of the evidence. | [0..1] | N/A |
| genre | String |
A string that describes the type of evidence. For example, Poetry, Prose, Film. | [0..1] | N/A |
| audience | String |
A description of the intended audience for a piece of evidence. | [0..1] | N/A |
This class can be extended with additional properties.
GeoCoordinates
The geographic coordinates of a location.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| type | IRI |
MUST be the IRI 'GeoCoordinates'. | [1] | N/A |
| latitude | Float |
The latitude of the location World Geodetic System 1984 (WGS 84). | [1] | N/A |
| longitude | Float |
The longitude of the location World Geodetic System 1984 (WGS 84). | [1] | N/A |
This class can be extended with additional properties.
IdentifierEntry
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| type | IRI |
MUST be the IRI 'IdentifierEntry'. | [1] | N/A |
| identifier | Identifier |
An identifier. | [1] | N/A |
| identifierType | IdentifierTypeEnum |
The identifier type. | [1] | N/A |
IdentityObject
A collection of information about the recipient of an achievement.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| type | IRI |
MUST be the IRI 'IdentityObject'. | [1] | N/A |
| hashed | Boolean |
Whether or not the identityHash value is hashed. |
[1] | N/A |
| identityHash | IdentityHash |
Either the IdentityHash of the identity or the plaintext value. If it's possible that the plaintext transmission and storage of the identity value would leak personally identifiable information where there is an expectation of privacy, it is strongly recommended that an IdentityHash be used. | [1] | N/A |
| identityType | IdentifierTypeEnum |
The identity type. | [1] | N/A |
| salt | String |
If the identityHash is hashed, this should contain the string used to salt the hash. If this value is not provided, it should be assumed that the hash was not salted. |
[0..1] | N/A |
Image
Metadata about images that represent assertions, achieve or profiles. These properties can typically be represented as just the id string of the image, but using a fleshed-out document allows for including captions and other applicable metadata.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
The URI or Data URI of the image. | [1] | N/A |
| type | IRI |
MUST be the IRI 'Image'. | [1] | N/A |
| caption | String |
The caption for the image. | [0..1] | N/A |
Profile
A Profile is a collection of information that describes the entity or organization using Open Badges. Issuers must be represented as Profiles, and endorsers, or other entities may also be represented using this vocabulary. Each Profile that represents an Issuer may be referenced in many BadgeClasses that it has defined. Anyone can create and host an Issuer file to start issuing Open Badges. Issuers may also serve as recipients of Open Badges, often identified within an Assertion by specific properties, like their url or contact email address.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
Unique URI for the Issuer/Profile file. | [1] | N/A |
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the IRI 'Profile'. | [1..*] | N/A |
| name | String |
The name of the entity or organization. | [0..1] | N/A |
| url | URI |
The homepage or social media profile of the entity, whether individual or institutional. Should be a URL/URI Accessible via HTTP. | [0..1] | N/A |
| phone | PhoneNumber |
[0..1] | N/A | |
| description | String |
A short description of the issuer entity or organization. | [0..1] | N/A |
| endorsement | EndorsementCredential |
Allows endorsers to make specific claims about the individual or organization represented by this profile. These endorsements are signed with a Data Integrity proof format. | [0..*] | N/A |
| endorsementJwt | CompactJws |
Allows endorsers to make specific claims about the individual or organization represented by this profile. These endorsements are signed with the VC-JWT proof format. | [0..*] | N/A |
| image | Image |
An image representing the issuer. This must be a PNG or SVG image. | [0..1] | N/A |
EmailAddress |
An email address. | [0..1] | N/A | |
| address | Address |
An address for the individual or organization. | [0..1] | N/A |
| otherIdentifier | IdentifierEntry |
A list of identifiers for the described entity. | [0..*] | N/A |
| official | String |
If the entity is an organization, official is the name of an authorized official of the organization. |
[0..1] | N/A |
| parentOrg | Profile |
The parent organization of the entity. | [0..1] | N/A |
| familyName | String |
Family name. In the western world, often referred to as the 'last name' of a person. | [0..1] | N/A |
| givenName | String |
Given name. In the western world, often referred to as the 'first name' of a person. | [0..1] | N/A |
| additionalName | String |
Additional name. Includes what is often referred to as 'middle name' in the western world. | [0..1] | N/A |
| patronymicName | String |
Patronymic name. | [0..1] | N/A |
| honorificPrefix | String |
Honorific prefix(es) preceding a person's name (e.g. 'Dr', 'Mrs' or 'Mr'). | [0..1] | N/A |
| honorificSuffix | String |
Honorific suffix(es) following a person's name (e.g. 'M.D, PhD'). | [0..1] | N/A |
| familyNamePrefix | String |
Family name prefix. As used in some locales, this is the leading part of a family name (e.g. 'de' in the name 'de Boer'). | [0..1] | N/A |
| dateOfBirth | Date |
Birthdate of the person. | [0..1] | N/A |
This class can be extended with additional properties.
Related
Identifies a related achievement.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
The related achievement. | [1] | N/A |
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the IRI 'Related'. | [1..*] | N/A |
| inLanguage | LanguageCode |
The language of the related achievement. | [0..1] | N/A |
| version | String |
The version of the related achievement. | [0..1] | N/A |
This class can be extended with additional properties.
Result
Describes a result that was achieved.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the IRI 'Result'. | [1..*] | N/A |
| achievedLevel | URI |
If the result represents an achieved rubric criterion level (e.g. Mastered), the value is the id of the RubricCriterionLevel in linked ResultDescription. |
[0..1] | N/A |
| alignment | Alignment |
The alignments between this result and nodes in external frameworks. This set of alignments are in addition to the set of alignments defined in the corresponding ResultDescription object. | [0..*] | N/A |
| resultDescription | URI |
An achievement can have many result descriptions describing possible results. The value of resultDescription is the id of the result description linked to this result. The linked result description must be in the achievement that is being asserted. |
[0..1] | N/A |
| status | ResultStatusType |
The status of the achievement. Required if resultType of the linked ResultDescription is Status. |
[0..1] | N/A |
| value | String |
A string representing the result of the performance, or demonstration, of the achievement. For example, 'A' if the recipient received an A grade in class. | [0..1] | N/A |
This class can be extended with additional properties.
ResultDescription
Describes a possible achievement result.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
The unique URI for this result description. Required so a result can link to this result description. | [1] | N/A |
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the IRI 'ResultDescription'. | [1..*] | N/A |
| alignment | Alignment |
Alignments between this result description and nodes in external frameworks. | [0..*] | N/A |
| allowedValue | String |
An ordered list of allowed values. The values should be ordered from low to high as determined by the achievement creator. | [0..*] | N/A |
| name | String |
The name of the result. | [1] | N/A |
| requiredLevel | URI |
The id of the rubric criterion level required to pass as determined by the achievement creator. |
[0..1] | N/A |
| requiredValue | String |
A value from allowedValue or within the range of valueMin to valueMax required to pass as determined by the achievement creator. |
[0..1] | N/A |
| resultType | ResultType |
The type of result this description represents. This is an extensible enumerated vocabulary. | [1] | N/A |
| rubricCriterionLevel | RubricCriterionLevel |
An ordered array of rubric criterion levels that may be asserted in the linked result. The levels should be ordered from low to high as determined by the achievement creator. | [0..*] | N/A |
| valueMax | String |
The maximum possible value that may be asserted in a linked result. |
[0..1] | N/A |
| valueMin | String |
The minimum possible value that may be asserted in a linked result. |
[0..1] | N/A |
This class can be extended with additional properties.
RubricCriterionLevel
Describes a rubric criterion level.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
The unique URI for this rubric criterion level. Required so a result can link to this rubric criterion level. | [1] | N/A |
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the IRI 'RubricCriterionLevel'. | [1..*] | N/A |
| alignment | Alignment |
Alignments between this rubric criterion level and a rubric criterion levels defined in external frameworks. | [0..*] | N/A |
| description | String |
Description of the rubric criterion level. | [0..1] | N/A |
| level | String |
The rubric performance level in terms of success. | [0..1] | N/A |
| name | String |
The name of the rubric criterion level. | [1] | N/A |
| points | String |
The points associated with this rubric criterion level. | [0..1] | N/A |
This class can be extended with additional properties.
VerifiableCredential
A Verifiable Credential as defined in the Verifiable Credentials Data Model v2.0. As described in data-integrity, at least one proof mechanism, and the details necessary to evaluate that proof, MUST be expressed for a credential to be a verifiable credential. In the case of an embedded proof, the credential MUST append the proof in the proof property.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| @context | Context |
The value of the @context property MUST be an ordered set where the first item is a URI with the value 'https://www.w3.org/ns/credentials/v2'. |
[1..*] | N/A |
| id | URI |
Unambiguous reference to the credential. | [0..1] | N/A |
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the URI 'VerifiableCredential'. | [1..*] | N/A |
| issuer | ProfileRef |
A description of the individual, entity, or organization that issued the credential. | [1] | N/A |
| validFrom | DateTimeZ |
Timestamp of when the credential becomes valid. | [1] | N/A |
| validUntil | DateTimeZ |
If the credential has some notion of validity period, this indicates a timestamp when a credential should no longer be considered valid. After this time, the credential should be considered invalid. | [0..1] | N/A |
| credentialSubject | CredentialSubject |
The subject of the credential. | [1] | N/A |
| proof | Proof |
If present, one or more embedded cryptographic proofs that can be used to detect tampering and verify the authorship of the credential. | [0..*] | N/A |
| credentialSchema | CredentialSchema |
The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine if the provided data conforms to the provided schema. |
[0..*] | N/A |
| credentialStatus | CredentialStatus |
The information in CredentialStatus is used to discover information about the current status of a verifiable credential, such as whether it is suspended or revoked. | [0..1] | N/A |
| refreshService | RefreshService |
The information in RefreshService is used to refresh the verifiable credential. | [0..1] | N/A |
| termsOfUse | TermsOfUse |
The value of the termsOfUse property tells the verifier what actions it is required to perform (an obligation), not allowed to perform (a prohibition), or allowed to perform (a permission) if it is to accept the verifiable credential. |
[0..*] | N/A |
| evidence | Evidence |
A description of the work that the recipient did to earn the credential. This can be a page that links out to other pages if linking directly to the work is infeasible. | [0..*] | N/A |
This class can be extended with additional properties.
ProfileRef
A description of the individual, entity, or organization that issued the credential. Either a URI with the Unique URI for the Issuer/Profile file, or a Profile object MUST be supplied. The ultimate representation of this class is a choice of exactly one of the classes in the following set:
| Type | Description |
|---|---|
URI |
A NormalizedString that respresents a Uniform Resource Identifier (URI). |
Profile |
A Profile is a collection of information that describes the entity or organization using Open Badges. Issuers must be represented as Profiles, and endorsers, or other entities may also be represented using this vocabulary. Each Profile that represents an Issuer may be referenced in many BadgeClasses that it has defined. Anyone can create and host an Issuer file to start issuing Open Badges. Issuers may also serve as recipients of Open Badges, often identified within an Assertion by specific properties, like their url or contact email address. |
CredentialSchema
Identify the type and location of a data schema.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
The value MUST be a URI identifying the schema file. One instance of CredentialSchema MUST have an id that is the URL of the JSON Schema for this credential defined by this specification. |
[1] | N/A |
| type | IRI |
The value MUST identify the type of data schema validation. One instance of CredentialSchema MUST have a type of '1EdTechJsonSchemaValidator2019'. |
[1] | N/A |
This class can be extended with additional properties.
CredentialStatus
The information in CredentialStatus is used to discover information about the current status of a verifiable credential, such as whether it is suspended or revoked.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
The value MUST be the URL of the issuer's credential status method. | [0..1] | N/A |
| type | IRI |
The name of the credential status method. | [1] | N/A |
This class can be extended with additional properties.
CredentialSubject
Claims about the credential subject. Maps to Credential Subject as defined in the Verifiable Credentials Data Model v2.0.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
The identity of the credential subject. | [0..1] | N/A |
This class can be extended with additional properties.
Proof
A JSON-LD Linked Data proof.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| type | IRI |
Signature suite used to produce proof. | [1] | N/A |
| created | DateTime |
Date the proof was created. | [0..1] | N/A |
| cryptosuite | String |
The suite used to create the proof. | [0..1] | N/A |
| challenge | String |
A value chosen by the verifier to mitigate authentication proof replay attacks. | [0..1] | N/A |
| domain | String |
The domain of the proof to restrict its use to a particular target. | [0..1] | N/A |
| nonce | String |
A value chosen by the creator of proof to randomize proof values for privacy purposes. | [0..1] | N/A |
| proofPurpose | String |
The purpose of the proof to be used with verificationMethod. MUST be 'assertionMethod'. |
[0..1] | N/A |
| proofValue | String |
Value of the proof. | [0..1] | N/A |
| verificationMethod | URI |
The URL of the public key that can verify the signature. | [0..1] | N/A |
This class can be extended with additional properties.
RefreshService
The information in RefreshService is used to refresh the verifiable credential.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
The value MUST be the URL of the issuer's refresh service. | [1] | N/A |
| type | IRI |
The name of the refresh service method. | [1] | N/A |
This class can be extended with additional properties.
TermsOfUse
Terms of use can be utilized by an issuer or a holder to communicate the terms under which a verifiable credential or verifiable presentation was issued
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
The value MUST be a URI identifying the term of use. | [0..1] | N/A |
| type | IRI |
The value MUST identify the type of the terms of use. | [1] | N/A |
This class can be extended with additional properties.
Context
JSON-LD Context. Either a URI with the context definition or a Map with a local context definition MUST be supplied. The ultimate representation of this class is a choice of exactly one of the classes in the following set:
| Type | Description |
|---|---|
URI |
A NormalizedString that respresents a Uniform Resource Identifier (URI). |
Map |
A map representing an object with unknown, arbitrary properties |
AchievementType Enumeration
The type of achievement, for example 'Award' or 'Certification'. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.
| Term | Description |
|---|---|
| Achievement | Represents a generic achievement. |
| ApprenticeshipCertificate | Credential earned through work-based learning and earn-and-learn models that meet standards and are applicable to industry trades and professions. This is an exact match of ApprenticeshipCertificate in Credential Transparency Description Language Terms. |
| Assessment | Direct, indirect, formative, and summative evaluation or estimation of the nature, ability, or quality of an entity, performance, or outcome of an action. This is an exact match of Assessment in Credential Transparency Description Language Terms. |
| Assignment | Represents the result of a curricular, or co-curricular assignment or exam. |
| AssociateDegree | College/university award for students typically completing the first one to two years of post secondary school education. Equivalent to an award at UNESCO ISCED 2011, Level 5. This is an exact match of AssociateDegree in Credential Transparency Description Language Terms. |
| Award | Represents an award. |
| Badge | Visual symbol containing verifiable claims in accordance with the Open Badges specification and delivered digitally. This is an exact match of Badge in Credential Transparency Description Language Terms. |
| BachelorDegree | College/university award for students typically completing three to five years of education where course work and activities advance skills beyond those of the first one to two years of college/university study. Equivalent to an award at UNESCO ISCED 2011, Level 6. Use for 5-year cooperative (work-study) programs. A cooperative plan provides for alternate class attendance and employment in business, industry, or government; thus, it allows students to combine actual work experience with their college studies. Also includes bachelor's degrees in which the normal 4 years of work are completed in 3 years. This is an exact match of BachelorDegree in Credential Transparency Description Language Terms. |
| Certificate | Credential that designates requisite knowledge and skills of an occupation, profession, or academic program. This is an exact match of Certificate in Credential Transparency Description Language Terms. |
| CertificateOfCompletion | Credential that acknowledges completion of an assignment, training or other activity. A record of the activity may or may not exist, and the credential may or may not be designed as preparation for another resource such as a credential, assessment, or learning opportunity. This is an exact match of CertificateOfCompletion in Credential Transparency Description Language Terms. |
| Certification | Time-limited, revocable, renewable credential awarded by an authoritative body for demonstrating the knowledge, skills, and abilities to perform specific tasks or an occupation. Certifications can typically be revoked if not renewed, for a violation of a code of ethics (if applicable) or proven incompetence after due process. Description of revocation criteria for a specific Certification should be defined using Revocation Profile. This is an exact match of Certification in Credential Transparency Description Language Terms. |
| CommunityService | Represents community service. |
| Competency | Measurable or observable knowledge, skill, or ability necessary to successful performance of a person. This is an exact match of Competency in Credential Transparency Description Language ASN Terms. |
| Course | Represents a course completion. |
| CoCurricular | Represents a co-curricular activity. |
| Degree | Academic credential conferred upon completion of a program or course of study, typically over multiple years at a college or university. This is an exact match of Degree in Credential Transparency Description Language Terms. |
| Diploma | Credential awarded by educational institutions for successful completion of a course of study or its equivalent. This is an exact match of Diploma in Credential Transparency Description Language Terms. |
| DoctoralDegree | Highest credential award for students who have completed both a bachelor's degree and a master's degree or their equivalent as well as independent research and/or a significant project or paper. Equivalent to UNESCO ISCED, Level 8. This is an exact match of DoctoralDegree in Credential Transparency Description Language Terms. |
| Fieldwork | Represents practical activities that are done away school, college, or place of work. Includes internships and practicums. |
| GeneralEducationDevelopment | (GED) Credential awarded by examination that demonstrates that an individual has acquired secondary school-level academic skills. Equivalent to a secondary school diploma, based on passing a state- or province-selected examination such as GED, HiSET, or TASC; or to an award at UNESCO ISCED 2011 Levels 2 or 3. This is an exact match of GeneralEducationDevelopment in Credential Transparency Description Language Terms. |
| JourneymanCertificate | Credential awarded to skilled workers on successful completion of an apprenticeship in industry trades and professions. This is an exact match of JourneymanCertificate in Credential Transparency Description Language Terms. |
| LearningProgram | Set of learning opportunities that leads to an outcome, usually a credential like a degree or certificate. This is an exact match of LearningProgram in Credential Transparency Description Language Terms. |
| License | Credential awarded by a government agency or other authorized organization that constitutes legal authority to do a specific job and/or utilize a specific item, system or infrastructure and are typically earned through some combination of degree or certificate attainment, certifications, assessments, work experience, and/or fees, and are time-limited and must be renewed periodically. This is an exact match of License in Credential Transparency Description Language Terms. |
| Membership | Represents membership. |
| ProfessionalDoctorate | Doctoral degree conferred upon completion of a program providing the knowledge and skills for the recognition, credential, or license required for professional practice. Equivalent to an award at UNESCO ISCED 2011, Level 8. This is an exact match of ProfessionalDoctorate in Credential Transparency Description Language Terms. |
| QualityAssuranceCredential | Credential assuring that an organization, program, or awarded credential meets prescribed requirements and may include development and administration of qualifying examinations. This is an exact match of QualityAssuranceCredential in Credential Transparency Description Language Terms. |
| MasterCertificate | Credential awarded upon demonstration through apprenticeship of the highest level of skills and performance in industry trades and professions. This is an exact match of MasterCertificate in Credential Transparency Description Language Terms. |
| MasterDegree | Credential awarded for a graduate level course of study where course work and activities advance skills beyond those of the bachelor's degree or its equivalent. Equivalent to an award at UNESCO ISCED 2011, Level 7. This is an exact match of MasterDegree in Credential Transparency Description Language Terms. |
| MicroCredential | Credential that addresses a subset of field-specific knowledge, skills, or competencies; often developmental with relationships to other micro-credentials and field credentials. This is an exact match of MicroCredential in Credential Transparency Description Language Terms. |
| ResearchDoctorate | Doctoral degree conferred for advanced work beyond the master level, including the preparation and defense of a thesis or dissertation based on original research, or the planning and execution of an original project demonstrating substantial artistic or scholarly achievement. Equivalent to an award at UNESCO ISCED 2011, Level 8. This is an exact match of ResearchDoctorate in Credential Transparency Description Language Terms. |
| SecondarySchoolDiploma | Diploma awarded by secondary education institutions for successful completion of a secondary school program of study. Equivalent to an award at UNESCO ISCED 2011 Levels 2 or 3. This is an exact match of SecondarySchoolDiploma in Credential Transparency Description Language Terms. |
This class can be extended with additional properties.
AlignmentTargetType Enumeration
The type of the alignment target node in the target framework.
| Term | Description |
|---|---|
| ceasn:Competency | An alignment to a CTDL-ASN/CTDL competency published by Credential Engine. |
| ceterms:Credential | An alignment to a CTDL Credential published by Credential Engine. |
| CFItem | An alignment to a CASE Framework Item. |
| CFRubric | An alignment to a CASE Framework Rubric. |
| CFRubricCriterion | An alignment to a CASE Framework Rubric Criterion. |
| CFRubricCriterionLevel | An alignment to a CASE Framework Rubric Criterion Level. |
| CTDL | An alignment to a Credential Engine Item. |
This class can be extended with additional properties.
IdentifierTypeEnum Enumeration
| Term | Description |
|---|---|
| name | |
| sourcedId | |
| systemId | |
| productId | |
| userName | |
| accountId | |
| emailAddress | |
| nationalIdentityNumber | |
| isbn | |
| issn | |
| lisSourcedId | |
| oneRosterSourcedId | |
| sisSourcedId | |
| ltiContextId | |
| ltiDeploymentId | |
| ltiToolId | |
| ltiPlatformId | |
| ltiUserId | |
| identifier |
This class can be extended with additional properties.
ResultType Enumeration
The type of result. This is an extensible enumerated vocabulary. Extending the vocabulary makes use of a naming convention.
| Term | Description |
|---|---|
| GradePointAverage | The result is a grade point average. |
| LetterGrade | The result is a letter grade. |
| Percent | The result is a percent score. |
| PerformanceLevel | The result is a performance level. |
| PredictedScore | The result is a predicted score. |
| RawScore | The result is a raw score. |
| Result | A generic result. |
| RubricCriterion | The result is from a rubric criterion. |
| RubricCriterionLevel | The result is a rubric criterion level. |
| RubricScore | The result represents a rubric score with both a name and a numeric value. |
| ScaledScore | The result is a scaled score. |
| Status | The result conveys the status of the achievement. |
This class can be extended with additional properties.
ResultStatusType Enumeration
Defined vocabulary to convey the status of an achievement.
| Term | Description |
|---|---|
| Completed | The learner has successfully completed the achievement. This is the default status if no status result is included. |
| Enrolled | The learner is enrolled in the activity described by the achievement. |
| Failed | The learner has unsuccessfully completed the achievement. |
| InProgress | The learner has started progress in the activity described by the achievement. |
| OnHold | The learner has completed the activity described by the achievement, but successful completion has not been awarded, typically for administrative reasons. |
| Provisional | The learner has completed the activity described by the achievement, but the completed result has not yet been confirmed. |
| Withdrew | The learner withdrew from the activity described by the achievement before completion. |
The data models in this section are shared by Open Badges Specification v3.0 and Comprehensive Learner Record Standard v2.0.
Open Badges API Data Models
GetOpenBadgeCredentialsResponse
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| credential | AchievementCredential |
OpenBadgeCredentials that have not been signed with the VC-JWT Proof Format MUST be in the credential array. |
[0..*] | N/A |
| compactJwsString | CompactJws |
OpenBadgeCredentials that have been signed with the VC-JWT Proof Format MUST be in the compactJwsString array. |
[0..*] | N/A |
The data models in this section are used by the open-badges-api.
Shared API Data Models
Imsx_StatusInfo
This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| imsx_codeMajor | Imsx_CodeMajor |
The code major value (from the corresponding enumerated vocabulary). | [1] | N/A |
| imsx_severity | Imsx_Severity |
The severity value (from the corresponding enumerated vocabulary). | [1] | N/A |
| imsx_description | String |
A human readable description supplied by the entity creating the status code information. | [0..1] | N/A |
| imsx_codeMinor | Imsx_CodeMinor |
The set of reported code minor status codes. | [0..1] | N/A |
Imsx_CodeMajor Enumeration
This is the set of primary status report values i.e. the major code assigned to the status block. This is used in conjunction with the 'Severity' structure in the status object.
| Term | Description |
|---|---|
| failure | Denotes that the transaction request has failed. The detailed reason will be reported in the accompanying 'codeMinor' fields. |
| processing | Denotes that the request is being processed at the destination or there has been a local transmission failure. This value is used in asynchronous services. |
| success | Denotes that the request has been successfully completed. If the associated 'severity' value is 'warning' then the request has been partially successful i.e. best effort by the service provider. Other parts of the status information may provide more insight into a partial success response. |
| unsupported | Denotes that the service provider does not support the requested operation. This is the required default response for an unsupported operation by an implementation. |
Imsx_Severity Enumeration
This is the context for the status report values. This is used in conjunction with the 'CodeMajor' structure in the status object.
| Term | Description |
|---|---|
| error | A catastrophic error has occurred in processing the request and so the request was not completed (the Service Provider may not even have received the request). |
| status | The request has been completed and a response was received from the Service Provider. |
| warning | The request has only been partially completed. For an asynchronous service a further response should be expected. |
Imsx_CodeMinor
This is the container for the set of code minor status codes reported in the responses from the Service Provider.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| imsx_codeMinorField | Imsx_CodeMinorField |
Each reported code minor status code. | [1..*] | N/A |
Imsx_CodeMinorField
This is the container for a single code minor status code.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| imsx_codeMinorFieldName | NormalizedString |
This should contain the identity of the system that has produced the code minor status code report. | [1] | N/A |
| imsx_codeMinorFieldValue | Imsx_CodeMinorFieldValue |
The code minor status code (this is a value from the corresponding enumerated vocabulary). | [1] | N/A |
Imsx_CodeMinorFieldValue Enumeration
This is the set of codeMinor status codes that are used to provide further insight into the completion status of the end-to-end transaction i.e. this should be used to provide more information than would be supplied by an HTTP code.
| Term | Description |
|---|---|
| forbidden | This is used to indicate that the server can be reached and process the request but refuses to take any further action. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '403'. |
| fullsuccess | The request has been fully and successfully implemented by the service provider. For a REST binding this will have an HTTP code of '200' for a successful search request. |
| internal_server_error | This should be used only if there is catastrophic error and there is not a more appropriate code. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '500'. |
| invalid_data | This error condition may occur if a JSON request/response body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and a HTTP code of '422'. |
| invalid_query_parameter | An invalid data query parameter field was supplied and the query could not be processed. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '400'. |
| misdirected_request | This is used to indicate that the request was made with a protocol that is not supported by the server. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '421'. |
| not_acceptable | This is used to indicate that the server cannot provide a response with a Content-Type that matches any of the content types in the request Accept header. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '406'. |
| not_allowed | This is used to indicate that the server does not allow the HTTP method. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '405'. |
| not_found | This is used to indicate that the server did not find the resource. This would be accompanied by the 'codeMajor/severity' values of 'failure/status' and for a REST binding a HTTP code of '404'. |
| not_modified | This is used to indicate that the server did not modify the resource. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '304'. |
| server_busy | The server is receiving too many requests. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '429'. |
| unauthorizedrequest | The request was not correctly authorised. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '401'. |
| unknown | Any other error occurred. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code corresponding to the error. |
The data models in this section are shared by all 1EdTech service specifications.
Shared API Security Data Models
ServiceDescriptionDocument
The Service Description Document (SDD) is a machine readable document that contains the description of the service features supported by the Provider/Platform. The SDD is an OpenAPI 3.0 (JSON) OpenAPI Specification 3.0 structured document that MUST be a profiled version of the OpenAPI 3.0 (JSON) file provided with this specification. This profiled version contains all of the details about the supported set of service end-points, the supported optional data fields, definitions of the proprietary data fields supplied using the permitted extension mechanisms, definitions of the available proprietary endpoints, and information about the security mechanisms.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| openapi | String |
This string MUST be the semantic version number of the OpenAPI Specification version that the OpenAPI document uses. The openapi field SHOULD be used by tooling specifications and clients to interpret the OpenAPI document. This is not related to the API info.version string. | [1] | N/A |
| info | OpenApiInfo |
Information about the API and the [=resource server=]. | [1] | N/A |
| components | OpenApiComponents |
Holds a set of reusable objects for different aspects of the OAS. | [1] | N/A |
This class can be extended with additional properties.
OpenApiComponents
Holds a set of reusable objects for different aspects of the OAS. All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| securitySchemes | OpenApiSecuritySchemes |
The Map of security scheme objects supported by this specification. | [1] | N/A |
This class can be extended with additional properties.
OpenApiInfo
The object provides metadata about the API. The metadata MAY be used by the clients if needed, and MAY be presented in editing or documentation generation tools for convenience.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| termsOfService | URL |
A fully qualified URL to the [=resource server=]'s terms of service. | [1] | N/A |
| title | String |
The name of the [=resource server=]. | [1] | N/A |
| version | String |
The version of the API. | [1] | N/A |
| x-imssf-image | URI |
An image representing the [=resource server=]. MAY be a Data URI or the URL where the image may be found. | [0..1] | N/A |
| x-imssf-privacyPolicyUrl | URL |
A fully qualified URL to the [=resource server=]'s privacy policy. | [1] | N/A |
This class can be extended with additional properties.
OpenApiOAuth2SecurityScheme
Defines an OAuth2 security scheme that can be used by the operations.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| type | String |
MUST be the string oauth2. |
[1] | N/A |
| description | String |
A short description for the security scheme. | [0..1] | N/A |
| x-imssf-registrationUrl | URL |
A fully qualified URL to the Client Registration endpoint. | [1] | N/A |
This class can be extended with additional properties.
OpenApiSecuritySchemes
The Map of security scheme objects supported by this specification.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| OAuth2ACG | OpenApiOAuth2SecurityScheme |
REQUIRED if the [=authorization server=] supports the Authorization Code Grant Flow. | [0..1] | N/A |
The data models in this section are shared by all 1EdTech service specifications.
Shared OAuth 2.0 Data Models
AuthorizationError Vocabulary
This is the set of ASCII error code strings that may be returned in response to a client authorization request. See Section 4.1 of The OAuth 2.0 Authorization Framework.
| Term | Description |
|---|---|
| invalid_request | The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed. |
| unauthorized_client | The client is not authorized to request an authorization code using this method. |
| access_denied | The resource owner or authorization server denied the request. |
| unsupported_response_type | The authorization server does not support obtaining an authorization code using this method. |
| invalid_scope | The requested scope is invalid, unknown, or malformed. |
| server_error | The authorization server encountered an unexpected condition that prevented it from fulfilling the request. (This error code is needed because a 500 Internal Server Error HTTP status code cannot be returned to the client via an HTTP redirect.) |
| temporarily_unavailable | The authorization server is currently unable to handle the request due to a temporary overloading or maintenance of the server. (This error code is needed because a 503 Service Unavailable HTTP status code cannot be returned to the client via an HTTP redirect.) |
RegistrationError Vocabulary
This is the set of ASCII error code strings that may be returned in response to a client registration request. See OAuth 2.0 Dynamic Client Registration Protocol.
| Term | Description |
|---|---|
| invalid_redirect_uri | The value of one or more redirection URIs is invalid. |
| invalid_client_metadata | The value of one of the client metadata fields is invalid and the server has rejected this request. Note that an authorization server MAY choose to substitute a valid value for any requested parameter of a client's metadata. |
| invalid_software_statement | The software statement presented is invalid. This MUST only be returned if a Software Statement has been supplied in the registration request. Use of a Software Statement is NOT RECOMMENDED. |
| unapproved_software_statement | The software statement presented is not approved for use by this authorization server. This MUST only be returned if a Software Statement has been supplied in the registration request. Use of a Software Statement is NOT RECOMMENDED. |
TokenError Vocabulary
This is the set of ASCII error code strings that may be returned in response to a client token request. See Section 5.2 of The OAuth 2.0 Authorization Framework.
| Term | Description |
|---|---|
| invalid_request | The request is missing a required parameter, includes an unsupported parameter value (other than grant type), repeats a parameter, includes multiple credentials, utilizes more than one mechanism for authenticating the client, or is otherwise malformed. |
| invalid_client | Client authentication failed (e.g., unknown client, no client authentication included, or unsupported authentication method). The authorization server MAY return an HTTP 401 (Unauthorized) status code to indicate which HTTP authentication schemes are supported. If the client attempted to authenticate via the "Authorization" request header field, the authorization server MUST respond with an HTTP 401 (Unauthorized) status code and include the "WWW-Authenticate" response header field matching the authentication scheme used by the client. |
| invalid_grant | The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. |
| unauthorized_client | The authenticated client is not authorized to use this authorization grant type. |
| unsupported_grant_type | The authorization grant type is not supported by the authorization server. |
| unsupported_token_type | The authorization server does not support the revocation of the presented token type. That is, the client tried to revoke an access token on a server not supporting this feature. |
| invalid_scope | The requested scope is invalid, unknown, malformed, or exceeds the scope granted by the resource owner. |
The data models in this section are shared by all 1EdTech service specifications.
Shared Proof Data Models
Multikey
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
The id of the verification method MUST be the JWK thumbprint calculated from the publicKeyMultibase property value according to [[?MULTIBASE]]. |
[1] | N/A |
| type | String |
The type of the verification method MUST be the string DataIntegrityProof. |
[0..1] | N/A |
| cryptosuite | String |
The cryptosuite of the verification method MUST be the string eddsa-rdf-2022. |
[1] | N/A |
| controller | URI |
The identify of the entity that controls this public key. | [0..1] | N/A |
| publicKeyMultibase | String |
The publicKeyMultibase property of the verification method MUST be a public key encoded according to [[?MULTICODEC]] and formatted according to [[?MULTIBASE]]. The multicodec encoding of a Ed25519 public key is the two-byte prefix 0xed01 followed by the 32-byte public key data. |
[1] | N/A |
JWK
A JSON Web Key (JWK) formatted according to JSON Web Key (JWK).
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| kty | String |
The kty (key type) parameter identifies the cryptographic algorithm family used with the key, such as RSA or EC. |
[1] | N/A |
| use | String |
The use (public key use) parameter identifies the intended use of the public key, such as sig (signature) or end (encryption). |
[0..1] | N/A |
| key_ops | String |
The key_ops (key operations) parameter identifies the operation(s) for which the key is intended to be used, such as sign (compute digital signature or MAC) or verify (verify digital signature or MAC). |
[0..1] | N/A |
| alg | String |
The alg (algorithm) parameter identifies the algorithm intended for use with the key, such as RS256 or PS256. |
[0..1] | N/A |
| kid | String |
The kid (key ID) parameter is used to match a specific key. |
[0..1] | N/A |
| x5u | URI |
The x5u (X.509 URL) parameter is a URI that refers to a resource for an X.509 public key certificate or certificate chain Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile. |
[0..1] | N/A |
| x5c | String |
The x5c (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile. |
[0..*] | N/A |
| x5t | String |
The x5t (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile. |
[0..1] | N/A |
| x5t_S256 | String |
The x5t#S256 (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile. |
[0..1] | N/A |
This class can be extended with additional properties.
JWKS
A JWK Set (JWKS) formatted according to JSON Web Key (JWK).
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| keys | JWK |
A JWK Set is a JSON object that represents a set of JWKs. | [1..*] | N/A |
Data models for the JSON Web Token Proof Format (VC-JWT) Verifiable Credentials Data Model v2.0 shared by Open Badges Specification v3.0 and Comprehensive Learner Record Standard v2.0.
Derived Types
Open Badges Data Model 3.0
| Type | Description |
|---|---|
| ASCIIString | An ASCII ASCII format for network interchange string. The string MUST NOT include characters outside the set %x20-21 / %x23-5B / %x5D-7E. |
| BaseTerm | A term in an enumeration which serves as a common term for all other entries in this enumeration, and as such is less specific. The lexical constraints are the same as for Term. |
| CompactJws | A String in Compact JWS format JSON Web Signature (JWS). |
| CountryCode | A two-digit ISO 3166-1 alpha-2 country code Codes for the representation of names of countries and their subdivisions — Part 1: Country code. |
| DateTimeZ | A DateTime with the trailing timezone specifier included, e.g. 2021-09-07T02:09:59+02:00 |
| EmailAddress | A NormalizedString representing an email address. |
| Identifier | A NormalizedString that functions as an identifier. |
| IdentityHash | A String consisting of an algorithm identifier, a $ separator, and a hash across an identifier and an optionally appended salt string. The only supported algorithms are MD5 The MD5 Message-Digest Algorithm and SHA-256 FIPS PUB 180-4: Secure Hash Standard (SHS), identified by the strings 'md5' and 'sha256' respectively. Identifiers and salts MUST be encoded in UTF-8 prior to hashing, and the resulting hash MUST be expressed in hexadecimal using uppercase (A-F, 0-9) or lowercase character (a-f, 0-9) sets. For example: 'sha256$b5809d8a92f8858436d7e6b87c12ebc0ae1eac4baecc2c0b913aee2c922ef399' represents the result of calculating a SHA-256 hash on the string 'a@example.comKosher'. in which the email identifier 'a@example.com' is salted with 'Kosher' |
| IRI | A NormalizedString that represents an Internationalized Resource Identifier (IRI), which extends the ASCII characters subset of the Uniform Resource Identifier (URI). |
| LanguageCode | A language code Tags for Identifying Languages. |
| Markdown | A String that may contain Markdown. |
| NumericDate | An Integer representing the number of seconds from from 1970-01-01T00:00:00Z UTC until the specified UTC data/time, ignoring leap seconds. |
| PhoneNumber | A NormalizedString representing a phone number. |
| Term | A term in an enumeration. The lexical constraints are the same as for Token. |
| URI | A NormalizedString that respresents a Uniform Resource Identifier (URI). |
| URL | A URI that represents a Uniform Resource Locator (URL). |
| UUID | An Identifier with the lexical restrictions of a UUID A Universally Unique IDentifier (UUID) URN Namespace |
The derived types in this section are shared by all 1EdTech specifications.
Primitive Types
Open Badges Data Model 3.0
| Type | Description |
|---|---|
| Boolean | A boolean, expressed as true or false |
| Date | An Representation of dates and times. ISO 8601:2004. calendar date using the syntax YYYY-MM-DD. |
| DateTime | An Representation of dates and times. ISO 8601:2004. time using the syntax YYYY-MM-DDThh:mm:ss. |
| Float | |
| Integer | |
| Language | A language code Tags for Identifying Languages. |
| Map | A map representing an object with unknown, arbitrary properties |
| Namespace | A namespace data type for defining data from a context other than that as the default for the data model. This is used for importing other data models. |
| NonNegativeInteger | |
| NormalizedString | A String conforming to the normalizedString definition in W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes. |
| PositiveInteger | |
| String | Character strings. |
The primitive types in this section are shared by all 1EdTech specifications.
Verification Support Data Models
AnyAchievementCredential
AnyAchievementCredential represents an AchievementCredential that might be built using Verifiable Credentials Data Model v1.1 or Verifiable Credentials Data Model v2.0. The scope of this class is only for verification purposes. It is not intended to be used in the creation of new credentials, where the AchievementCredential class MUST be used. The ultimate representation of this class is a choice of exactly one of the classes in the following set:
| Type | Description |
|---|---|
AchievementCredentialv1p1 |
AchievementCredentials are representations of an awarded achievement, used to share information about a achievement belonging to one earner. Maps to a Verifiable Credential as defined in the Verifiable Credentials Data Model v2.0. As described in data-integrity, at least one proof mechanism, and the details necessary to evaluate that proof, MUST be expressed for a credential to be a verifiable credential. In the case of an embedded proof, the credential MUST append the proof in the proof property. |
AchievementCredential |
AchievementCredentials are representations of an awarded achievement, used to share information about a achievement belonging to one earner. Maps to a Verifiable Credential as defined in the Verifiable Credentials Data Model v2.0. As described in data-integrity, at least one proof mechanism, and the details necessary to evaluate that proof, MUST be expressed for a credential to be a verifiable credential. In the case of an embedded proof, the credential MUST append the proof in the proof property. |
AchievementCredentialv1p1
AchievementCredentials are representations of an awarded achievement, used to share information about a achievement belonging to one earner. Maps to a Verifiable Credential as defined in the Verifiable Credentials Data Model v2.0. As described in data-integrity, at least one proof mechanism, and the details necessary to evaluate that proof, MUST be expressed for a credential to be a verifiable credential. In the case of an embedded proof, the credential MUST append the proof in the proof property.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| @context | Context |
The value of the @context property MUST be an ordered set where the first item is a URI with the value 'https://www.w3.org/2018/credentials/v1', and the second item is a URI with the value 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json'. |
[2..*] | N/A |
| id | URI |
Unambiguous reference to the credential. | [1] | N/A |
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the URI 'VerifiableCredential', and one of the items MUST be the URI 'AchievementCredential' or the URI 'OpenBadgeCredential'. | [1..*] | N/A |
| name | String |
The name of the credential for display purposes in wallets. For example, in a list of credentials and in detail views. | [1] | N/A |
| description | String |
The short description of the credential for display purposes in wallets. | [0..1] | N/A |
| image | Image |
The image representing the credential for display purposes in wallets. | [0..1] | N/A |
| awardedDate | DateTimeZ |
Timestamp of when the credential was awarded. validFrom is used to determine the most recent version of a Credential in conjunction with issuer and id. Consequently, the only way to update a Credental is to update the validFrom, losing the date when the Credential was originally awarded. awardedDate is meant to keep this original date. |
[0..1] | N/A |
| credentialSubject | AchievementSubjectv1p1 |
The recipient of the achievement. | [1] | N/A |
| endorsement | EndorsementCredentialv1p1 |
Allows endorsers to make specific claims about the credential, and the achievement and profiles in the credential. These endorsements are signed with a Data Integrity proof format. | [0..*] | N/A |
| endorsementJwt | CompactJws |
Allows endorsers to make specific claims about the credential, and the achievement and profiles in the credential. These endorsements are signed with the VC-JWT proof format. | [0..*] | N/A |
| issuer | Profilev1p1 |
A description of the individual, entity, or organization that issued the credential. | [1] | N/A |
| issuanceDate | DateTimeZ |
Timestamp of when the credential was issued. | [1] | N/A |
| expirationDate | DateTimeZ |
If the credential has some notion of expiry, this indicates a timestamp when a credential should no longer be considered valid. After this time, the credential should be considered expired. | [0..1] | N/A |
| proof | Proof |
If present, one or more embedded cryptographic proofs that can be used to detect tampering and verify the authorship of the credential. | [0..*] | N/A |
| credentialSchema | CredentialSchema |
The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine if the provided data conforms to the provided schema. |
[0..*] | N/A |
| credentialStatus | CredentialStatus |
The information in CredentialStatus is used to discover information about the current status of a verifiable credential, such as whether it is suspended or revoked. | [0..1] | N/A |
| refreshService | RefreshService |
The information in RefreshService is used to refresh the verifiable credential. | [0..1] | N/A |
| termsOfUse | TermsOfUse |
The value of the termsOfUse property tells the verifier what actions it is required to perform (an obligation), not allowed to perform (a prohibition), or allowed to perform (a permission) if it is to accept the verifiable credential. |
[0..*] | N/A |
| evidence | Evidence |
A description of the work that the recipient did to earn the credential. This can be a page that links out to other pages if linking directly to the work is infeasible. | [0..*] | N/A |
This class can be extended with additional properties.
AnyEndorsementCredential
AnyEndorsementCredential represents an EndorsementCredential that might be built using Verifiable Credentials Data Model v1.1 or Verifiable Credentials Data Model v2.0. The scope of this class is only for verification purposes. It is not intended to be used in the creation of new credentials, where the EndorsementCredential class MUST be used. The ultimate representation of this class is a choice of exactly one of the classes in the following set:
| Type | Description |
|---|---|
EndorsementCredential |
A verifiable credential that asserts a claim about an entity. As described in data-integrity, at least one proof mechanism, and the details necessary to evaluate that proof, MUST be expressed for a credential to be a verifiable credential. In the case of an embedded proof, the credential MUST append the proof in the proof property. |
EndorsementCredentialv1p1 |
A verifiable credential that asserts a claim about an entity. As described in data-integrity, at least one proof mechanism, and the details necessary to evaluate that proof, MUST be expressed for a credential to be a verifiable credential. In the case of an embedded proof, the credential MUST append the proof in the proof property. |
EndorsementCredentialv1p1
A verifiable credential that asserts a claim about an entity. As described in data-integrity, at least one proof mechanism, and the details necessary to evaluate that proof, MUST be expressed for a credential to be a verifiable credential. In the case of an embedded proof, the credential MUST append the proof in the proof property.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| @context | Context |
The value of the @context property MUST be an ordered set where the first item is a URI with the value 'https://www.w3.org/2018/credentials/v1', and the second item is a URI with the value 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json'. |
[2..*] | N/A |
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the URI 'VerifiableCredential', and one of the items MUST be the URI 'EndorsementCredential'. | [1..*] | N/A |
| id | URI |
Unambiguous reference to the credential. | [1] | N/A |
| name | String |
The name of the credential for display purposes in wallets. For example, in a list of credentials and in detail views. | [1] | N/A |
| description | String |
The short description of the credential for display purposes in wallets. | [0..1] | N/A |
| credentialSubject | EndorsementSubject |
The individual, entity, organization, assertion, or achievement that is endorsed and the endorsement comment. | [1] | N/A |
| awardedDate | DateTimeZ |
Timestamp of when the credential was awarded. validFrom is used to determine the most recent version of a Credential in conjunction with issuer and id. Consequently, the only way to update a Credental is to update the validFrom, losing the date when the Credential was originally awarded. awardedDate is meant to keep this original date. |
[0..1] | N/A |
| issuer | Profilev1p1 |
A description of the individual, entity, or organization that issued the credential. | [1] | N/A |
| issuanceDate | DateTimeZ |
Timestamp of when the credential was issued. | [1] | N/A |
| expirationDate | DateTimeZ |
If the credential has some notion of expiry, this indicates a timestamp when a credential should no longer be considered valid. After this time, the credential should be considered expired. | [0..1] | N/A |
| proof | Proof |
If present, one or more embedded cryptographic proofs that can be used to detect tampering and verify the authorship of the credential. | [0..*] | N/A |
| credentialSchema | CredentialSchema |
The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine if the provided data conforms to the provided schema. |
[0..*] | N/A |
| credentialStatus | CredentialStatus |
The information in CredentialStatus is used to discover information about the current status of a verifiable credential, such as whether it is suspended or revoked. | [0..1] | N/A |
| refreshService | RefreshService |
The information in RefreshService is used to refresh the verifiable credential. | [0..1] | N/A |
| termsOfUse | TermsOfUse |
The value of the termsOfUse property tells the verifier what actions it is required to perform (an obligation), not allowed to perform (a prohibition), or allowed to perform (a permission) if it is to accept the verifiable credential. |
[0..*] | N/A |
| evidence | Evidence |
A description of the work that the recipient did to earn the credential. This can be a page that links out to other pages if linking directly to the work is infeasible. | [0..*] | N/A |
This class can be extended with additional properties.
VerifiableCredentialv1p1
A Verifiable Credential as defined in the Verifiable Credentials Data Model v1.1. As described in data-integrity, at least one proof mechanism, and the details necessary to evaluate that proof, MUST be expressed for a credential to be a verifiable credential. In the case of an embedded proof, the credential MUST append the proof in the proof property.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| @context | Context |
The value of the @context property MUST be an ordered set where the first item is a URI with the value 'https://www.w3.org/2018/credentials/v1'. |
[1..*] | N/A |
| id | URI |
Unambiguous reference to the credential. | [0..1] | N/A |
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the URI 'VerifiableCredential'. | [1..*] | N/A |
| issuer | Profilev1p1 |
A description of the individual, entity, or organization that issued the credential. | [1] | N/A |
| issuanceDate | DateTimeZ |
Timestamp of when the credential was issued. | [1] | N/A |
| expirationDate | DateTimeZ |
If the credential has some notion of expiry, this indicates a timestamp when a credential should no longer be considered valid. After this time, the credential should be considered expired. | [0..1] | N/A |
| credentialSubject | CredentialSubject |
The subject of the credential. | [1] | N/A |
| proof | Proof |
If present, one or more embedded cryptographic proofs that can be used to detect tampering and verify the authorship of the credential. | [0..*] | N/A |
| credentialSchema | CredentialSchema |
The value of the credentialSchema property MUST be one or more data schemas that provide verifiers with enough information to determine if the provided data conforms to the provided schema. |
[0..*] | N/A |
| credentialStatus | CredentialStatus |
The information in CredentialStatus is used to discover information about the current status of a verifiable credential, such as whether it is suspended or revoked. | [0..1] | N/A |
| refreshService | RefreshService |
The information in RefreshService is used to refresh the verifiable credential. | [0..1] | N/A |
| termsOfUse | TermsOfUse |
The value of the termsOfUse property tells the verifier what actions it is required to perform (an obligation), not allowed to perform (a prohibition), or allowed to perform (a permission) if it is to accept the verifiable credential. |
[0..*] | N/A |
| evidence | Evidence |
A description of the work that the recipient did to earn the credential. This can be a page that links out to other pages if linking directly to the work is infeasible. | [0..*] | N/A |
This class can be extended with additional properties.
AchievementSubjectv1p1
A collection of information about the recipient of an achievement. Maps to Credential Subject in Verifiable Credentials Data Model v2.0.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
An identifier for the Credential Subject. Either id or at least one identifier MUST be supplied. |
[0..1] | N/A |
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the IRI 'AchievementSubject'. | [1..*] | N/A |
| activityEndDate | DateTime |
The datetime the activity ended. | [0..1] | N/A |
| activityStartDate | DateTime |
The datetime the activity started. | [0..1] | N/A |
| creditsEarned | Float |
The number of credits earned, generally in semester or quarter credit hours. This field correlates with the Achievement creditsAvailable field. |
[0..1] | N/A |
| achievement | Achievementv1p1 |
The achievement being awarded. | [1] | N/A |
| identifier | IdentityObject |
Other identifiers for the recipient of the achievement. Either id or at least one identifier MUST be supplied. |
[0..*] | N/A |
| image | Image |
An image representing this user's achievement. If present, this must be a PNG or SVG image, and should be prepared via the 'baking' instructions. An 'unbaked' image for the achievement is defined in the Achievement class and should not be duplicated here. | [0..1] | N/A |
| licenseNumber | String |
The license number that was issued with this credential. | [0..1] | N/A |
| narrative | Markdown |
A narrative that connects multiple pieces of evidence. Likely only present at this location if evidence is a multi-value array. | [0..1] | N/A |
| result | Result |
The set of results being asserted. | [0..*] | N/A |
| role | String |
Role, position, or title of the learner when demonstrating or performing the achievement or evidence of learning being asserted. Examples include 'Student President', 'Intern', 'Captain', etc. | [0..1] | N/A |
| source | Profilev1p1 |
The person, organization, or system that assessed the achievement on behalf of the issuer. For example, a school may assess the achievement, while the school district issues the credential. | [0..1] | N/A |
| term | String |
The academic term in which this assertion was achieved. | [0..1] | N/A |
Achievementv1p1
A collection of information about the accomplishment recognized by the Assertion. Many assertions may be created corresponding to one Achievement.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
Unique URI for the Achievement. | [1] | N/A |
| type | IRI |
[1..*] | N/A | |
| alignment | Alignment |
An object describing which objectives or educational standards this achievement aligns to, if any. | [0..*] | N/A |
| achievementType | AchievementType |
The type of achievement. This is an extensible vocabulary. | [0..1] | N/A |
| creator | Profilev1p1 |
The person or organization that created the achievement definition. | [0..1] | N/A |
| creditsAvailable | Float |
Credit hours associated with this entity, or credit hours possible. For example 3.0. | [0..1] | N/A |
| criteria | Criteria |
Criteria describing how to earn the achievement. | [1] | N/A |
| description | String |
A short description of the achievement. | [1] | N/A |
| endorsement | EndorsementCredentialv1p1 |
Allows endorsers to make specific claims about the Achievement. These endorsements are signed with a Data Integrity proof format. | [0..*] | N/A |
| endorsementJwt | CompactJws |
Allows endorsers to make specific claims about the Achievement. These endorsements are signed with the VC-JWT proof format. | [0..*] | N/A |
| fieldOfStudy | String |
Category, subject, area of study, discipline, or general branch of knowledge. Examples include Business, Education, Psychology, and Technology. | [0..1] | N/A |
| humanCode | String |
The code, generally human readable, associated with an achievement. | [0..1] | N/A |
| image | Image |
An image representing the achievement. | [0..1] | N/A |
| inLanguage | LanguageCode |
The language of the achievement. | [0..1] | N/A |
| name | String |
The name of the achievement. | [1] | N/A |
| otherIdentifier | IdentifierEntry |
A list of identifiers for the described entity. | [0..*] | N/A |
| related | Related |
The related property identifies another Achievement that should be considered the same for most purposes. It is primarily intended to identify alternate language editions or previous versions of Achievements. | [0..*] | N/A |
| resultDescription | ResultDescription |
The set of result descriptions that may be asserted as results with this achievement. | [0..*] | N/A |
| specialization | String |
Name given to the focus, concentration, or specific area of study defined in the achievement. Examples include 'Entrepreneurship', 'Technical Communication', and 'Finance'. | [0..1] | N/A |
| tag | String |
One or more short, human-friendly, searchable, keywords that describe the type of achievement. | [0..*] | N/A |
| version | String |
The version property allows issuers to set a version string for an Achievement. This is particularly useful when replacing a previous version with an update. | [0..1] | N/A |
This class can be extended with additional properties.
Profilev1p1
A Profile is a collection of information that describes the entity or organization using Open Badges. Issuers must be represented as Profiles, and endorsers, or other entities may also be represented using this vocabulary. Each Profile that represents an Issuer may be referenced in many BadgeClasses that it has defined. Anyone can create and host an Issuer file to start issuing Open Badges. Issuers may also serve as recipients of Open Badges, often identified within an Assertion by specific properties, like their url or contact email address.
| Property | Type | Description | Multiplicity | Privacy |
|---|---|---|---|---|
| id | URI |
Unique URI for the Issuer/Profile file. | [1] | N/A |
| type | IRI |
The value of the type property MUST be an unordered set. One of the items MUST be the IRI 'Profile'. | [1..*] | N/A |
| name | String |
The name of the entity or organization. | [0..1] | N/A |
| url | URI |
The homepage or social media profile of the entity, whether individual or institutional. Should be a URL/URI Accessible via HTTP. | [0..1] | N/A |
| phone | PhoneNumber |
[0..1] | N/A | |
| description | String |
A short description of the issuer entity or organization. | [0..1] | N/A |
| endorsement | EndorsementCredentialv1p1 |
Allows endorsers to make specific claims about the individual or organization represented by this profile. These endorsements are signed with a Data Integrity proof format. | [0..*] | N/A |
| endorsementJwt | CompactJws |
Allows endorsers to make specific claims about the individual or organization represented by this profile. These endorsements are signed with the VC-JWT proof format. | [0..*] | N/A |
| image | Image |
An image representing the issuer. This must be a PNG or SVG image. | [0..1] | N/A |
EmailAddress |
An email address. | [0..1] | N/A | |
| address | Address |
An address for the individual or organization. | [0..1] | N/A |
| otherIdentifier | IdentifierEntry |
A list of identifiers for the described entity. | [0..*] | N/A |
| official | String |
If the entity is an organization, official is the name of an authorized official of the organization. |
[0..1] | N/A |
| parentOrg | Profile |
The parent organization of the entity. | [0..1] | N/A |
| familyName | String |
Family name. In the western world, often referred to as the 'last name' of a person. | [0..1] | N/A |
| givenName | String |
Given name. In the western world, often referred to as the 'first name' of a person. | [0..1] | N/A |
| additionalName | String |
Additional name. Includes what is often referred to as 'middle name' in the western world. | [0..1] | N/A |
| patronymicName | String |
Patronymic name. | [0..1] | N/A |
| honorificPrefix | String |
Honorific prefix(es) preceding a person's name (e.g. 'Dr', 'Mrs' or 'Mr'). | [0..1] | N/A |
| honorificSuffix | String |
Honorific suffix(es) following a person's name (e.g. 'M.D, PhD'). | [0..1] | N/A |
| familyNamePrefix | String |
Family name prefix. As used in some locales, this is the leading part of a family name (e.g. 'de' in the name 'de Boer'). | [0..1] | N/A |
| dateOfBirth | Date |
Birthdate of the person. | [0..1] | N/A |
This class can be extended with additional properties.
The data models in this section are used by the verification-and-validation process for supporting older credentials created with Verifiable Credentials Data Model v1.1.
IP Disclosures
IP disclosures are not listed yet.
List of Contributors
The following individuals contributed to the development of this document:
| Name | Affiliation | Role |
|---|---|---|
| Trever Cox | University of Central Oklahoma | Editor |
| Mary Gwozdz | UNICON | Editor |
| Melissa Marsh Lockhart | Georgia Institute of Technology (GA Tech) | Editor |
| Nate Otto | SkyBridge Skills | Editor |
| Deanna Parker | Solutions for Information Design (SOLID) | Editor |
| Sonja Strahl | University of Maryland Global Campus | Editor |
| Susan Haught | 1Edtech | Editor |
| Emilie Rafal | 1Edtech | Editor |
| Rob Coyle | 1Edtech | Editor |
| Xavi Aracil | 1Edtech | Editor |
Changelog
Changelog entries are not listed yet.
Revision History
| Version | Doc Version | Date | Comments |
|---|---|---|---|
| Base Document | 2026-03-02 | Created Base document |
IPR and Distribution Notices
Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation.
1EdTech takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on 1EdTech's procedures with respect to rights in 1EdTech specifications can be found at the 1EdTech Intellectual Property Rights web page: https://www.1edtech.org/ip.
Copyright © 1EdTech Consortium, Inc. All Rights Reserved.
Use of this specification to develop products or services is governed by the license with 1EdTech found on the 1EdTech website: https://www.1edtech.org/standards/specification-license.
Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.
The limited permissions granted above are perpetual and will not be revoked by 1EdTech or its successors or assigns.
THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.
Trademark information: https://www.1edtech.org/about/legal/trademarks