Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VCTM Template Repository

A template repository for maintaining Verifiable Credential Type Metadata from markdown files. Credentials defined here are automatically discovered and converted by registry-cli during registry builds.

Supported Output Formats

Format File Extension Specification Use Case
VCTM .vctm.json SD-JWT VC Type Metadata OIDF/EUDI wallets
mDOC .mdoc.json ISO 18013-5 / OpenID4VCI Mobile credentials, EU PID
W3C VC .vc.json W3C VCDM 2.0 JSON Schema W3C ecosystem interop

Quick Start

  1. Use this template: Click "Use this template" to create your own repository
  2. Add credentials: Create markdown files in the credentials/ directory
  3. Push to main: Tag your repo with the vctm GitHub topic — registry-cli will discover and convert your credentials during the next registry build

Structure

.
├── credentials/                        # Markdown credential definitions
│   ├── demo-identity.md               # Example credential
│   ├── TEMPLATE.schema-meta.yaml      # Example TS11 schema metadata
│   └── images/                        # Logo and image assets
│       └── logo.svg                   # Generic credential logo
├── .github/
│   └── workflows/
│       └── vctm.yml                   # GitHub Action workflow
└── README.md

Creating Credentials

Create markdown files in the credentials/ directory with the following format:

---
vct: https://example.com/credentials/your-credential
background_color: "#1a365d"
text_color: "#ffffff"
---

# Your Credential Name

A description of your credential.

## Claims

- `claim_name` (string): Description of the claim [mandatory]
- `optional_claim` (string): Optional claim
- `selective_disclosure_claim` (date): Claim with selective disclosure [sd=always]

## Images

![Logo](images/logo.svg)

Front Matter Options

Core Options:

  • vct: Verifiable Credential Type identifier (required for VCTM format)
  • background_color: Background color for credential display
  • text_color: Text color for credential display
  • extends: Comma-separated list of VCT identifiers this type extends

mDOC/mso_mdoc Options:

  • doctype: ISO 18013-5 document type (e.g., eu.europa.ec.eudi.pid.1)
  • namespace: mDOC claims namespace (defaults to doctype if not specified)

W3C VC Options:

  • w3c_type: W3C credential type (e.g., PersonIdentificationCredential)

Claim Format

- `claim_name` (type): Description [mandatory] [sd=always|never]
  • claim_name: The claim identifier
  • type: Value type - string, date, number, etc. (default: string)
  • [mandatory]: Mark the claim as required
  • [sd=always|never]: Selective disclosure setting

How It Works

  1. When you push changes to markdown files in credentials/ and your repo is tagged with the vctm GitHub topic
  2. The registry-cli build discovers your repository and processes all markdown files
  3. Credential metadata files are generated in all supported formats and published to the registry site
  4. Your credentials appear at https://registry.siros.org/<your-org>/<slug>

TS11 Schema Metadata

To make your credentials eligible for the SIROS Registry TS11-compliant API, add a <slug>.schema-meta.yaml file alongside each credential.

Only two fields are required — everything else is auto-generated by registry-cli:

# demo-identity.schema-meta.yaml
attestation_los: iso_18045_basic   # Required: attestation level of assurance
binding_type: key                  # Required: holder binding mechanism

Optional fields

version: "1.0"                              # Schema version (default: "0.1.0")
rulebook_uri: https://example.com/rulebook   # Link to attestation rulebook
trusted_authorities:                         # Trust framework references
  - framework_type: etsi_tl
    value: https://example.com/tl

Auto-generated fields

The following fields are inferred automatically and should not be set manually:

Field How it's generated
id UUID v5 derived from the registry base URL + org/slug
supportedFormats Detected from files present: .vctm.jsondc+sd-jwt, .mdoc.jsonmso_mdoc, .vc.jsonjwt_vc_json
schemaURIs Generated from supportedFormats + the registry base URL

See credentials/TEMPLATE.schema-meta.yaml for a fully commented example.

Accessing Generated Files

After the action runs, your credential files will be available on the vctm branch:

# SD-JWT VC Type Metadata
https://github.com/YOUR-USERNAME/YOUR-REPO/raw/vctm/demo-identity.vctm.json

# mDOC (ISO 18013-5)
https://github.com/YOUR-USERNAME/YOUR-REPO/raw/vctm/demo-identity.mdoc.json

# W3C VC JSON Schema
https://github.com/YOUR-USERNAME/YOUR-REPO/raw/vctm/demo-identity.vc.json

Customization

Change the base URL

Edit .github/workflows/vctm.yml and update the base-url parameter:

base-url: https://your-domain.com/credentials

Change the output branch

Edit .github/workflows/vctm.yml and update the vctm-branch parameter:

vctm-branch: your-branch-name

Select output formats

By default, all formats are generated. To generate specific formats only:

formats: vctm           # Only VCTM
formats: vctm,mddl      # VCTM and mDOC
formats: all            # All formats (default)

License

This template is available as open source under the terms of your chosen license.

Resources

About

A template repository for VCTMs

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors