Developed and maintained by FIDES Labs BV
A community-driven catalog of verifiable credential schemas used in the FIDES ecosystem, including national identity credentials and sector-specific credentials.
The FIDES Credential Catalog provides a standardized, searchable database of verifiable credential definitions. Credential authorities contribute their schemas via GitHub Pull Requests, ensuring:
- Standardized format β All credentials follow a unified JSON schema
- Community-maintained β Authorities manage their own information via PR
- Automatic aggregation β The crawler aggregates and enriches entries with attributes extracted from linked schemas
- Always up-to-date β Changes are reflected in
data/aggregated.jsonon every crawl run - Cross-catalog linking β Shows which relying parties accept each credential, sourced from the FIDES RP Catalog
- Open source β Apache-2.0 license, fully transparent
The catalog is available as:
- Website β Interactive catalog at fides.community
- WordPress plugin β Embed the catalog on your own site
- Machine-readable JSON β
data/aggregated.json - Public API β Serverless query API (
GET /api/public/credentialtype) for filter, search, and pagination; see docs/API.md
fides-credential-catalog/
βββ schemas/
β βββ credential-catalog.schema.json # JSON Schema for source catalog entries
βββ community-catalogs/ # Credential entries by authority (add yours here!)
β βββ fides/
β βββ credential-catalog.json # FIDES Labs credentials
βββ src/
β βββ types/credential.ts # TypeScript type definitions
β βββ crawler/
β βββ index.ts # Crawler: aggregates, validates, and enriches data
β βββ schemaAttributes.ts # Flattens nested JSON Schema properties into attributes
βββ data/
β βββ aggregated.json # Aggregated machine-readable output (used by UI/API)
β βββ credential-history-state.json # Stable first-seen state across crawler runs
βββ wordpress-plugin/
β βββ fides-credential-catalog/
β βββ fides-credential-catalog.php # WordPress plugin main file
β βββ assets/
β βββ credential-catalog.js # UI logic (search, filters, cards, modal)
β βββ style.css # Styling
βββ package.json
βββ tsconfig.json
βββ .gitignore
npm installResolving orgId: The crawler loads the organization catalog data/aggregated.json from GitHub raw, or falls back to ../organization-catalog/data/aggregated.json. Set ORGANIZATION_CATALOG_AGGREGATED_PATH to point at a local file when needed.
Crawls all community-catalogs/**/credential-catalog.json files, enriches them with
attributes fetched from linked schemas (schemaUrl), and writes data/aggregated.json:
npm run crawlSchema attributes: Nested object.properties from each schemaUrl are flattened into attributes rows in aggregated.json. Field paths use / (e.g. eu.europa.ec.eudi.pid.1/given_name) so dotted namespaces stay readable. Arrays of objects expose item fields under β¦/item/β¦. Limits: max depth and max 500 rows per credential (see schemaAttributes.ts). Optional depth on each row drives indentation in the WordPress UI. In the plugin modal, nested fields are labeled with a leading slash and without repeating the first segment (e.g. /given_name); hover shows the full path.
npm testValidates all source files against the JSON Schema:
npm run validateCredential authorities submit their own credential-catalog.json files via GitHub Pull Requests. The catalog currently includes:
- FIDES Labs β 16 credentials covering identity, access, mobility, logistics, and sustainability
The credential catalog reads the FIDES RP Catalog to display which relying parties accept each credential. Relying party entries reference accepted credentials via acceptedCredentialRefs.
- Fork this repository
- Ensure your organization exists in the FIDES Organization Catalog (canonical name, website, DID, logo, contact).
- Create a folder in
community-catalogs/(usually matching your org code, e.g.fides) - Add a
credential-catalog.jsonwithorgIdpointing at your organization catalog entry - Submit a Pull Request
{
"$schema": "https://fides.community/schemas/credential-catalog/v1",
"orgId": "org:yourorg",
"credentials": [
{
"id": "cred:yourorg:my-credential:sd-jwt-vc",
"displayName": "My Credential",
"shortDescription": "A short description of this credential.",
"authority": {
"name": "Your Organization",
"url": "https://yourdomain.com"
},
"subjectType": "Person",
"vcFormat": "sd_jwt_vc",
"nativeIdentifier": "urn:yourorg:my-credential:1",
"nativeIdentifierType": "vct",
"schemaUrl": "https://yourdomain.com/schemas/my-credential.json",
"schemaType": "JSON Schema",
"version": "1.0"
}
]
}Credential IDs follow the pattern: cred:<authorityCode>:<credentialKey>:<formatCode>
| Segment | Description | Example |
|---|---|---|
cred |
Fixed prefix | cred |
authorityCode |
Short code for the authority | fides, eu, nl |
credentialKey |
Stable kebab-case credential key | lpid, ehic, green-lane |
formatCode |
VC format abbreviation | sd-jwt-vc, mdoc, vcdm-2-0 |
Example: cred:fides:lpid:sd-jwt-vc
Your PR will be automatically validated against the JSON Schema. To validate locally:
npm run validate- On every PR/push that touches
community-catalogs/**/credential-catalog.jsonorschemas/**, the validate workflow runs and checks all catalog files against the schema (including the ID pattern). - When a catalog file is merged to
main, the crawl workflow runs: it runs the crawler (enrichment fromschemaUrl, git-based dates), updatesdata/aggregated.jsonanddata/credential-history-state.json, and commits them. So the live catalog data is updated automatically after your PR is merged. The crawler also runs daily and can be triggered manually from the Actions tab.
The aggregated catalog is available at:
https://raw.githubusercontent.com/FIDEScommunity/fides-credential-catalog/main/data/aggregated.json
Top-level fields:
| Field | Description |
|---|---|
schemaVersion |
Schema version string |
catalogType |
Always "credential-catalog" |
lastUpdated |
ISO 8601 timestamp of last crawl |
credentials |
Array of enriched credential entries |
stats |
Summary counts |
Each credential entry in credentials[] includes all source fields plus:
| Enriched Field | Source |
|---|---|
orgId |
Copied from source catalog (same as organization catalog id) |
provider |
Resolved by crawler from the organization catalog (name, did, website, logo, contact) |
attributes |
Extracted by crawler from schemaUrl |
firstSeenAt |
Persisted in credential-history-state.json (stable, not reset on re-crawl) |
updatedAt |
Git last-commit date of the source file, or lastUpdated from the catalog |
updatedAtβ used for "Last updated" sorting. Fallback order:- Git last-commit date of the provider's
credential-catalog.json - Catalog-level
lastUpdated - Crawl timestamp
- Git last-commit date of the provider's
firstSeenAtβ stable first time this credential was seen; persisted indata/credential-history-state.json
Source entries support the following fields:
| Field | Required | Description |
|---|---|---|
id |
β | Stable ID: cred:<authorityCode>:<credentialKey>:<formatCode> |
displayName |
β | Human-readable credential name |
authority |
β | Issuing authority (name + optional URL) |
subjectType |
β | Person, Organization, Product, Dataset, Software, or Document |
vcFormat |
β | sd_jwt_vc, mdoc, jwt_vc, vcdm_1_1, vcdm_2_0, anoncreds, idemix, apple_wallet_pass, google_wallet_pass, acdc |
version |
β | Version string (e.g. "1.0") |
schemaUrl |
β | URL to the credential schema |
schemaType |
β | JSON Schema, JSON-LD Context, ISO Data Model, ACDC Schema, or Other |
shortDescription |
β | One-line description shown on the catalog card |
nativeIdentifier |
β | Native credential type identifier (e.g. urn:org:fides:lpid:1) |
nativeIdentifierType |
β | vct, docType, type, schema_said, or other |
rulebookUrl |
β | URL to the credential rulebook or governance document |
extends |
β | References to base credential(s) this credential extends |
vocabularies |
β | Referenced vocabularies or data models |
tags |
β | Free-form tags |
See the full schema: schemas/credential-catalog.schema.json
A WordPress plugin is included in wordpress-plugin/fides-credential-catalog/.
- Copy the plugin folder to
wp-content/plugins/ - Activate the plugin in WordPress Admin β Plugins
- (Optional) Configure data source URLs in Settings β FIDES Credential Catalog
- Use the shortcode on any page:
[fides_credential_catalog]
| Option | Values | Default | Description |
|---|---|---|---|
show_filters |
true, false |
true |
Show/hide the filter sidebar |
show_search |
true, false |
true |
Show/hide the search bar |
columns |
2, 3, 4 |
3 |
Number of card columns |
theme |
fides, light, dark |
fides |
Color theme |
Example:
[fides_credential_catalog show_filters="true" columns="3" theme="fides"]
Configure in Settings β FIDES Credential Catalog:
| Setting | Default | Description |
|---|---|---|
| RP Aggregated Data URL | GitHub raw URL for RP catalog | URL to aggregated.json of the FIDES RP Catalog |
| RP Catalog Base URL | https://fides.community/... |
Base URL for RP deep links in the credential modal |
The plugin fetches the aggregated JSON at runtime. For local testing, copy the generated data into the plugin:
cp data/aggregated.json wordpress-plugin/fides-credential-catalog/data/aggregated.jsonNote:
wordpress-plugin/*/data/is excluded from git via.gitignore.
A serverless query API is available for apps that need server-side filter, pagination, and a stable contract:
- Endpoint:
GET /api/public/credentialtype - OpenAPI:
GET /api/public/api-docs
The API returns credential definitions only (schema URL, format, subject kind); issuer-related fields are omitted. For issuance URLs and issuer details, use the (future) Issuer Catalog API. Design choices, mapping, and deployment are documented in docs/API.md. Deploy the repo to Vercel to expose the API. If the build fails on install, ensure Vercel β Project Settings β Build & Development Settings β Install Command is empty (so vercel.json is used).
To replicate this API setup for another catalog (e.g. Issuer Catalog), see API_SETUP.md.
| Catalog | Repository | Description |
|---|---|---|
| Wallet Catalog | fides-wallet-catalog | Digital identity wallets |
| RP Catalog | fides-rp-catalog | Relying parties and verifiers |
| Credential Catalog | this repository | Verifiable credential schemas |
This project is licensed under the Apache License 2.0.
Copyright 2026 FIDES Labs BV
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Developed and maintained by FIDES Labs BV
- Website: https://fides.community
- GitHub: https://github.com/FIDEScommunity
- Contact: For questions or support, please open an issue in this repository
Β© 2026 FIDES Labs BV - All rights reserved