Skip to main content

Module statement

Module statement 

Source
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

ConstantobjecttaskContextminimum issuerScopeConstructor
ENDORSES_V1valueOPTIONAL—DTGCredential::new_endorses_vsc
WITNESSED_V1digestMultibaseREQUIREDdirectedDTGCredential::new_witnessed_vsc
VETTED_V1valueREQUIREDdirectedDTGCredential::new_vetted_vsc
PRESENTED_V1digestMultibaseREQUIREDdirectedDTGCredential::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§

CredentialSubjectStatement
Verifiable Statement Credential subject.
PredicateProfile
The machine-checkable constraints of one predicate profile.

Enums§

ObjectKind
Which of the three object members a statement carries.
StatementObject
What a statement says about its subject: exactly one of id, digestMultibase or value.

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 credential object.digestMultibase names, in the exchange taskContext names.
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 classes object.value states.
WITNESSED_V1
dtg:witnessed — the issuer attests that it observed the subject issue the credential object.digestMultibase names, under the conditions of the trust task exchange taskContext names. A VSC under this profile is a verifiable witness credential (VWC).

Functions§

check_predicate_iri
Checks that predicate is a well-formed predicate IRI: absolute, not a compact form, and in Unicode Normalization Form C.