Skip to content

leifj/vctm-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VCTM Template Repository

A template repository for maintaining Verifiable Credential Type Metadata from markdown files. This template uses the sirosfoundation/mtcvctm GitHub Action to automatically generate credential metadata in multiple formats.

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: The GitHub Action will automatically generate all formats on the vctm branch

Structure

.
├── credentials/              # Markdown credential definitions
│   ├── demo-identity.md     # Example credential
│   └── 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/, the GitHub Action triggers
  2. The sirosfoundation/mtcvctm action processes all markdown files
  3. Credential metadata files are generated in multiple formats and committed to the vctm branch
  4. A registry file is created at .well-known/vctm-registry.json

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

No releases published

Packages

 
 
 

Contributors