VC Type Metadata Registry
Publish and discover SD-JWT VC Types (VCT). Generate types from issuers or schemas, localize display labels once, and reference a stable URL in your systems.
Top 3 most called VCTs
No calls yet.
What you can do
- Generate VC Types three ways: from an Issuer (OIDC4VCI), from a JSON Schema, or from scratch with assisted AI.
- Localize once: produce
display[]
labels/descriptions in up to 30 languages, reuse everywhere. - Publish to a registry with a stable URL and integrity hash, or keep private while you iterate.
- Discover & reuse existing types from the public registry to avoid duplicates.
Who it's for
- Project managers who need a shared reference for names, fields, and UI labels.
- CTOs/architects coordinating issuers, wallets, and verifiers across vendors.
- Integrators aligning schema and UX wording without long back-and-forth.
When to use it
- Before implementation, to agree on the credential type and UI text.
- When converging multiple JSON Schemas into a single approved type.
- When preparing partner documentation and localization.
Generate from an Issuer
Fetch an OIDC4VCI Credential Issuer metadata, select a configuration, and we prefill VCT fields (display, claims, schema...). Support Draft 11 to Finale 1.0.
Generate from JSON Schema
Upload a JSON Schema (2020-12+). We keep property names and help you add multilingual display[].
Add support for 30 languages.
Start from scratch (with AI)
Describe your credential and target languages; we’ll draft the schema
and display[]
and let you refine.
Add support for 30 languages.
How it works (at a glance)
- Choose a path: Issuer · Schema · From Scratch.
- Describe & localize: generate fields and
display[]
in your target languages. - Review name/description for registry clarity.
- Publish or keep private and reference the stable VCT URL when ready.
Standards & interoperability
- VCT identifier (
vct
) names the credential type for SD-JWT VC. - Type metadata can include schema (validation), display metadata (rendering, multi-language), and claim metadata (selective disclosure hints).
- Retrieval: from a URL in
vct
or from a registry; optional integrity viavct#integrity
. - JSON Schema (2020-12 recommended) for predictability.
{
"vct": "https://vc-registry.com/vct/registry/publish/urn:example:vct:person",
"name": "Person Identity",
"description": "Person identity with core claims and localization",
"display": [
{ "lang": "en", "name": "Person Identity", "description": "A basic person identity credential" },
{ "lang": "fr", "name": "Identité Personne", "description": "Un justificatif d'identité de base" }
],
"claims": [
{
"path": ["given_name"],
"display": [
{ "lang": "en", "label": "Given name", "description": "First name" },
{ "lang": "fr", "label": "Prénom" }
],
"sd": "allowed"
},
{
"path": ["family_name"],
"display": [
{ "lang": "en", "label": "Family name", "description": "Last name" },
{ "lang": "fr", "label": "Nom de famille" }
],
"sd": "allowed"
},
{
"path": ["birth_date"],
"display": [
{ "lang": "en", "label": "Date of birth" },
{ "lang": "fr", "label": "Date de naissance" }
],
"sd": "allowed"
},
{
"path": ["nationality"],
"display": [
{ "lang": "en", "label": "Nationality" },
{ "lang": "fr", "label": "Nationalité" }
],
"sd": "allowed"
},
{
"path": ["address"],
"display": [
{ "lang": "en", "label": "Address" },
{ "lang": "fr", "label": "Adresse" }
],
"sd": "allowed"
},
{
"path": ["address", "street_address"],
"display": [
{ "lang": "en", "label": "Street address" },
{ "lang": "fr", "label": "Rue" }
],
"sd": "allowed",
"svg_id": "address_street_address"
},
{
"path": ["address", "locality"],
"display": [
{ "lang": "en", "label": "City/Town" },
{ "lang": "fr", "label": "Ville" }
],
"sd": "allowed"
},
{
"path": ["address", "postal_code"],
"display": [
{ "lang": "en", "label": "Postal code" },
{ "lang": "fr", "label": "Code postal" }
],
"sd": "allowed"
},
{
"path": ["address", "country"],
"display": [
{ "lang": "en", "label": "Country" },
{ "lang": "fr", "label": "Pays" }
],
"sd": "allowed"
},
{
"path": ["emails", null],
"display": [
{ "lang": "en", "label": "Email" },
{ "lang": "fr", "label": "E-mail" }
],
"sd": "allowed"
}
],
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"vct": { "type": "string", "description": "Verifiable Credential Type identifier (StringOrURI)" },
"given_name": { "type": "string", "description": "First name" },
"family_name": { "type": "string", "description": "Last name" },
"birth_date": { "type": "string", "format": "date" },
"nationality": { "type": "string", "description": "ISO 3166-1 alpha-2 country code" },
"address": {
"type": "object",
"properties": {
"street_address": { "type": "string" },
"locality": { "type": "string" },
"region": { "type": "string" },
"postal_code": { "type": "string" },
"country": { "type": "string" }
},
"required": ["country"]
},
"emails": {
"type": "array",
"items": { "type": "string", "format": "email" },
"minItems": 1
}
},
"required": ["vct", "given_name", "family_name", "birth_date"]
}
}
Scroll inside the box to see the full example. Use the “Copy” button to copy the JSON.
SD-JWT VC & VC Type (VCT) Metadata
This registry focuses on SD-JWT VC and the VC Type (VCT) metadata used by wallets and verifiers: schema (validation), display[] (multilingual labels/descriptions), and claim hints for selective disclosure.
Learn more in the IETF OAuth Working Group draft: IETF SD-JWT VC Draft.