endorses/1 draft

Predicate IRI, exact bytes: https://registry.trustoverip.org/dtg/vsc/endorses/1

Machine-readable: predicate.jsonld, also served at this URL with Accept: application/ld+json. Definition format: predicate.schema.json.

Definition

Label
enendorses
Meaning
enThe issuer asserts something favorable about the subject: a skill, a standing, a reputation. The vocabulary of what may be endorsed is defined by the governing community.
Classificationevidence; weighed by: The governing VTC or VTN, whose endorsement vocabulary defines what may be endorsed and what weight an endorsement carries.
Objectvalue; the shape of value is defined by the governing community
Subject–object relationshipnone required
Additional membersnone
taskContextOPTIONAL
Minimum issuer scopeunconstrained
IssuerA party to a DTG edge with the subject, or a VTA acting under community policy.
Verification establishesThat the issuer endorsed the subject with the given payload.
Verification does not establish
  • that the endorsement is accurate; the verifiability of an endorsement applies to the issuer's signature, not to the truth of the assertion
  • that the issuer is qualified to give it, which is for the governing framework to say
  • that the subject holds any membership, authority or status
Defined inhttps://trustoverip.github.io/dtgwg-cred-spec/#the-dtg%3Aendorses-profile-(vec)
Governed bythe working group that maintains this registry

The type-level bound of the specification's What Verification Establishes applies in full: a statement attests; it never confers representation, authority, membership, admission, governed status or task completion.

Profile

A statement under this predicate is a verifiable endorsement credential (VEC). The predicate is one of the two core profiles the DTG Credentials Core Specification defines; its normative text is the section this definition links under Defined in, and this entry records it in the registry's format so that verifiers can configure against it. Nothing on the wire changes when the profile text moves here.

What the object carries

The object is a value whose structure is defined by the governing community's endorsement vocabulary, not by this profile. The specification's example endorses a skill:

"object": { "value": { "type": "SkillEndorsement", "name": "Software Development", "competencyLevel": "expert" } }

A verifier applies whatever schema its governing framework publishes for that vocabulary. This registry validates only that the object is a value.

Why the bound is narrow

An endorsement is evidence. What "verifiable" means here is that the signature is the issuer's, not that the endorsement is true, and not that the issuer was in a position to give it. Who may endorse what, and how much an endorsement counts, is the governing community's decision, applied through configuration and governance rather than read off the credential.

Notes for implementers

Examples

examples/skill-endorsement.json

{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://registry.trustoverip.org/dtg/context/v1"
  ],
  "type": [
    "VerifiableCredential",
    "DTGCredential",
    "StatementCredential"
  ],
  "issuer": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
  "validFrom": "2026-01-06T10:00:00Z",
  "credentialSubject": {
    "id": "did:key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuBV8xRoAnwWsdvktH",
    "predicate": "https://registry.trustoverip.org/dtg/vsc/endorses/1",
    "object": {
      "value": {
        "type": "SkillEndorsement",
        "name": "Software Development",
        "competencyLevel": "expert"
      }
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "cryptosuite": "eddsa-jcs-2022",
    "created": "2026-01-06T10:00:00Z",
    "proofPurpose": "assertionMethod",
    "verificationMethod": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK#z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
    "proofValue": "z3FXQjecWJKT…illustrative…"
  }
}

Last changed 2026-09-25.