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.
| 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 |
- Use this template: Click "Use this template" to create your own repository
- Add credentials: Create markdown files in the
credentials/directory - Push to main: The GitHub Action will automatically generate all formats on the
vctmbranch
.
├── 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
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
Core Options:
vct: Verifiable Credential Type identifier (required for VCTM format)background_color: Background color for credential displaytext_color: Text color for credential displayextends: 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_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
- When you push changes to markdown files in
credentials/, the GitHub Action triggers - The
sirosfoundation/mtcvctmaction processes all markdown files - Credential metadata files are generated in multiple formats and committed to the
vctmbranch - A registry file is created at
.well-known/vctm-registry.json
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
Edit .github/workflows/vctm.yml and update the base-url parameter:
base-url: https://your-domain.com/credentialsEdit .github/workflows/vctm.yml and update the vctm-branch parameter:
vctm-branch: your-branch-nameBy 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)This template is available as open source under the terms of your chosen license.