Expand description
Verifiable Statement Credentials (VSC): one type, many predicates.
A VSC is the DTG’s general-purpose claim — I witnessed this party issue this
credential, I endorse this party’s skill, I vetted this party’s identity. Each is a
statement a verifier reads and either believes or does not. Rather than give each
predicate a credential type of its own, DTG Core Credentials defines one type,
StatementCredential, and lets a predicate profile fix the constraints of each
predicate.
credentialSubject: { id, predicate, object: { id | digestMultibase | value }, ...profile members }§A predicate is an identifier, matched as one
predicate is an absolute IRI in Unicode Normalization Form C, compared byte for byte.
A compact form — a CURIE such as dtg:witnessed, a bare JSON-LD term — is malformed,
not unknown: no expansion is performed, so matching never depends on a JSON-LD context.
check_predicate_iri is the check.
Recognizing a predicate is the verifier’s configuration, never the credential’s: see crate::PredicateAcceptList, which fails closed.
§The core profiles
| Constant | object | taskContext | minimum issuerScope | Constructor |
|---|---|---|---|---|
| ENDORSES_V1 | value | OPTIONAL | — | DTGCredential::new_endorses_vsc |
| WITNESSED_V1 | digestMultibase | REQUIRED | directed | DTGCredential::new_witnessed_vsc |
| VETTED_V1 | value | REQUIRED | directed | DTGCredential::new_vetted_vsc |
| PRESENTED_V1 | digestMultibase | REQUIRED | directed | DTGCredential::new_presented_vsc |
A statement under one of these is checked against its profile when it is parsed, built, validated and signed. A statement under any other predicate is only checked for shape; whether it means anything is the verifier’s accept-list to say.
§A statement attests; it never establishes
Whatever its predicate says, a VSC does not confer representation, authority,
membership, admission or personhood, and is not proof that a trust task completed. A
predicate named mayActFor is a string.
Structs§
- Credential
Subject Statement - Verifiable Statement Credential subject.
- Predicate
Profile - The machine-checkable constraints of one predicate profile.
Enums§
- Object
Kind - Which of the three
objectmembers a statement carries. - Statement
Object - What a statement says about its subject: exactly one of
id,digestMultibaseorvalue.
Constants§
- ENDORSES_
V1 dtg:endorses— the issuer asserts something favourable about the subject: a skill, a standing, a reputation. A VSC under this profile is a verifiable endorsement credential (VEC).- PRESENTED_
V1 dtg:presented— the issuer attests that it observed the subject present the credentialobject.digestMultibasenames, in the exchangetaskContextnames.- VETTED_
V1 dtg:vetted— the issuer attests that it checked the subject’s claimed identity in a vetting session, by the method and against the document classesobject.valuestates.- WITNESSED_
V1 dtg:witnessed— the issuer attests that it observed the subject issue the credentialobject.digestMultibasenames, under the conditions of the trust task exchangetaskContextnames. A VSC under this profile is a verifiable witness credential (VWC).
Functions§
- check_
predicate_ iri - Checks that
predicateis a well-formed predicate IRI: absolute, not a compact form, and in Unicode Normalization Form C.