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.
| 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: Tag your repo with the
vctmGitHub topic — registry-cli will discover and convert your credentials during the next registry build
.
├── 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
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/and your repo is tagged with thevctmGitHub topic - The registry-cli build discovers your repository and processes all markdown files
- Credential metadata files are generated in all supported formats and published to the registry site
- Your credentials appear at
https://registry.siros.org/<your-org>/<slug>
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 mechanismversion: "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/tlThe 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.json → dc+sd-jwt, .mdoc.json → mso_mdoc, .vc.json → jwt_vc_json |
schemaURIs |
Generated from supportedFormats + the registry base URL |
See credentials/TEMPLATE.schema-meta.yaml for a
fully commented example.
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.