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 |
| ||
|---|---|---|---|
| Meaning |
| ||
| Classification | evidence; weighed by: The governing VTC or VTN, whose endorsement vocabulary defines what may be endorsed and what weight an endorsement carries. | ||
| Object | value; the shape of value is defined by the governing community | ||
| Subject–object relationship | none required | ||
| Additional members | none | ||
taskContext | OPTIONAL | ||
| Minimum issuer scope | unconstrained | ||
| Issuer | A party to a DTG edge with the subject, or a VTA acting under community policy. | ||
| Verification establishes | That the issuer endorsed the subject with the given payload. | ||
| Verification does not establish |
| ||
| Defined in | https://trustoverip.github.io/dtgwg-cred-spec/#the-dtg%3Aendorses-profile-(vec) | ||
| Governed by | the 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
taskContextis optional. An endorsement is meaningful standing alone; a community may still require it for endorsements made in a ceremony.- The profile places no constraint on the issuer's correlation scope.
- The specification currently writes the predicate as
dtg:endorses, a documentation shorthand for a placeholder namespace. The IRI on this page is the one decided for the registry; the specification's notation is aligned in an editorial pass (see cred-spec #48).
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.