Skip to main content
Version: v4

Essential Credential Schemas

Rendered from the JSON schemas published by the Verifiable Trust specification. The id claim, when present, is the DID of the subject. Constraints are the JSON schema constraints; required marks the claims an issuer must set.

SchemaSubjectFormatWho issuesDID Document fragment
Servicethe serviceW3C JSON-LDthe service itself or its parent organization (OPEN issuer mode)#vpr-schemas-service-vtc-vp
Organizationthe legal entityW3C JSON-LDaccredited ECS issuers (onboarding process)#vpr-schemas-org-vtc-vp
Personathe human-controlled personaW3C JSON-LDaccredited ECS issuers (onboarding process)#vpr-schemas-persona-vtc-vp
User Agenta wallet or agent instanceAnonCreds or SD-JWT VCaccredited wallet vendorsnone, private
Badgea humanAnonCreds or SD-JWT VCany Verifiable Service (OPEN issuer mode, permissionless holders)none, private

The ECS ecosystem publishes the matching VTJSCs under the reserved fragments #vpr-schemas-{service,org,persona,ua,badge}-vtjsc-vp.

Service (ServiceCredential)​

ECS Service: identifies a Verifiable Service and declares the minimum requirements to interact with it. Subject: the service DID. Public, W3C JSON-LD, presented as a linked presentation under #vpr-schemas-service-vtc-vp.

Schema id: https://verana-labs.github.io/verifiable-trust-spec/schemas/v4/service.json

ClaimTypeConstraintsRequired
descriptionstringlength 0 to 4096yes
descriptionFormatstringone of text/plain, text/markdown; default text/plainno
idstringuri; length 0 to 2048yes
logoDigestSristringlength 0 to 256yes
logoUristringuri; length 0 to 4096yes
minimumAgeRequiredinteger0 to 255yes
namestringlength 1 to 512yes
privacyPolicyDigestSristringlength 0 to 256yes
privacyPolicyUristringuri; length 0 to 4096yes
termsAndConditionsDigestSristringlength 0 to 256yes
termsAndConditionsUristringuri; length 0 to 4096yes
typestringlength 1 to 128yes

Organization (OrganizationCredential)​

ECS Organization: identifies the legal entity that operates one or more Verifiable Services. Subject: the organization DID. Public, W3C JSON-LD, #vpr-schemas-org-vtc-vp. Issued by accredited ECS issuers after an onboarding process.

Schema id: https://verana-labs.github.io/verifiable-trust-spec/schemas/v4/org.json

ClaimTypeConstraintsRequired
addressstringlength 1 to 1024yes
countryCodestringlength 2 to 2; pattern ^[A-Z]{2}$yes
idstringuri; length 0 to 2048yes
legalJurisdictionstringlength 1 to 64; pattern ^[A-Z]{2}(-[A-Z0-9]{1,3})?$no
leistringpattern ^[A-Z0-9]{20}$no
logoDigestSristringlength 0 to 256yes
logoUristringuri; length 0 to 4096yes
namestringlength 1 to 512yes
organizationKindstringlength 1 to 64no
registryIdstringlength 1 to 256yes
registryUristringuri; length 0 to 4096no

Persona (PersonaCredential)​

ECS Persona: identifies a human-controlled persona that operates one or more Verifiable Services, the alternative to Organization. Subject: the persona DID. Public, W3C JSON-LD, #vpr-schemas-persona-vtc-vp.

Schema id: https://verana-labs.github.io/verifiable-trust-spec/schemas/v4/persona.json

ClaimTypeConstraintsRequired
avatarDigestSristringlength 0 to 256when avatarUri is set
avatarUristringuri; length 0 to 4096no
controllerCountryCodestringlength 2 to 2; pattern ^[A-Z]{2}$yes
controllerJurisdictionstringlength 1 to 64; pattern ^[A-Z]{2}(-[A-Z0-9]{1,3})?$no
descriptionstringlength 0 to 16384no
descriptionFormatstringone of text/plain, text/markdown; default text/plainno
idstringuri; length 0 to 2048yes
namestringlength 1 to 256yes

User Agent (UserAgentCredential)​

ECS User Agent: identifies a user agent instance and the software it runs; the issuer identifies the product line. Private, AnonCreds or SD-JWT VC, never in a DID Document.

Schema id: https://verana-labs.github.io/verifiable-trust-spec/schemas/v4/ua.json

ClaimTypeConstraintsRequired
buildstringlength 1 to 128no
versionstringlength 1 to 64yes

Badge (BadgeCredential)​

ECS Badge: identifies a human, for example an employee or member of the organization behind a service; the issuer identifies whom they represent. Private, AnonCreds or SD-JWT VC, never in a DID Document. Attributes are facts, not authorizations.

Schema id: https://verana-labs.github.io/verifiable-trust-spec/schemas/v4/badge.json

ClaimTypeConstraintsRequired
badgeNumberstringlength 1 to 256yes
biometricPatternstringlength 0 to 262144; base64no
biometricPatternSchemestringlength 1 to 128when biometricPattern is set
birthDateinteger10000101 to 99991231no
departmentstringlength 1 to 128no
namestringlength 1 to 256yes
photostringlength 0 to 262144; pattern ^data:image/(png|jpeg);base64,[A-Za-z0-9+/]+={0,2}$yes
titlestringlength 1 to 128no