Developed and maintained by FIDES Labs BV
A comprehensive, community-driven catalog of 70+ digital identity wallets from around the world, including national EUDI Wallets and commercial solutions.
The FIDES Wallet Catalog provides a standardized, searchable database of digital identity wallets. Wallet providers contribute their wallet information via GitHub Pull Requests, ensuring:
- Standardized format - All wallets follow a unified JSON schema
- Community-maintained - Providers manage their own information via PR
- Automatic aggregation - GitHub Actions daily aggregates all catalogs
- Always up-to-date - Changes are immediately reflected in the 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
- API - JSON data at
data/aggregated.json, optional HTTP API on Vercel
wallet-catalog/
βββ CONCEPT.md # Conceptual design
βββ lib/
β βββ walletPublicApi.ts # Shared list/filter (Express + Vercel; outside api/ β see file comment)
β βββ httpWalletTypes.ts # Types for the HTTP API helpers
βββ api/
β βββ public/ # Vercel serverless routes only (each *.ts is an endpoint)
β βββ wallet/ # index + [orgId]/[walletId] (logic inlined for Vercel)
β βββ api-docs.ts
βββ public/ # Static landing + Swagger UI for the API
βββ vercel.json
βββ schemas/
β βββ wallet-catalog.schema.json # JSON Schema for wallet descriptors
βββ community-catalogs/ # All wallet catalogs (add yours here!)
β βββ animo/
β β βββ did.json # Example DID document (optional)
β β βββ wallet-catalog.json # Wallet catalog descriptor
β βββ sphereon/
β βββ google/
β βββ apple/
β βββ france/ # Country folders for government wallets
β βββ germany/
β βββ italy/
β βββ ... # 70+ wallet providers
βββ src/
β βββ types/wallet.ts # TypeScript types
β βββ crawler/index.ts # Crawler service
β βββ server/index.ts # API server
β βββ App.tsx # Frontend application
β βββ ...
βββ wordpress-plugin/ # WordPress plugin
β βββ fides-wallet-catalog/
βββ data/
β βββ aggregated.json # Aggregated wallet data (used by UI/API)
β βββ wallet-history-state.json # Stable first-seen state across crawler runs
β βββ did-registry.json # Registered DIDs for automatic crawling
βββ docs/ # Documentation
βββ API.md # Public HTTP API (Vercel)
βββ DID_REGISTRATION.md # How to register your DID
βββ GITHUB_REPO_STRUCTURE.md # Repository structure
βββ DESIGN_DECISIONS.md # Architecture and design choices
βββ LESSONS_LEARNED.md # Lessons from update visibility & filter counters
npm installThis crawls the wallet catalogs and generates data/aggregated.json:
npm run crawlTo initialize historical firstSeenAt values from git history:
npm run backfill:first-seenAfter backfill, run the crawler again:
npm run crawlnpm run devOpen http://localhost:5173 in your browser.
npm run serveThe API runs on http://localhost:3001 β same data and filters as GET /api/public/wallet on Vercel (see docs/API.md).
The FIDES Wallet Catalog aggregates wallet data from the community-catalogs/ directory:
Wallet providers submit their own wallet-catalog.json files via GitHub Pull Requests. The catalog includes:
- National EUDI Wallets - 20+ EU member state wallets (Austria, Finland, Germany, Netherlands, Spain, etc.)
- Government Digital ID Apps - France IdentitΓ©, mObywatel, Diia, IT Wallet, etc.
- Commercial Wallet Providers - 50+ vendors worldwide (Animo, Sphereon, Procivis, Lissi, etc.)
- Tech Giants - Apple Wallet, Google Wallet
Advanced feature: Wallet providers with DID infrastructure can host their catalog on their own domain and register their DID for automatic crawling. See docs/DID_REGISTRATION.md.
- Fork this repository
- Create a folder in
community-catalogs/with your organization/wallet name - Add your
wallet-catalog.jsonfollowing the schema - Submit a Pull Request
See docs/GITHUB_REPO_STRUCTURE.md for detailed instructions and examples.
Organization details (name, DID, website, logo, country) live in the FIDES Organization Catalog. Your wallet-catalog.json only references that record via orgId (for example org:your-org β the same id as in the organization catalog).
{
"$schema": "https://fides.community/schemas/wallet-catalog/v1",
"orgId": "org:your-org",
"wallets": [
{
"id": "my-wallet",
"name": "My Wallet",
"type": "personal",
"platforms": ["iOS", "Android"],
"vcFormat": ["sd_jwt_vc", "mdoc"],
"appStoreLinks": {
"iOS": "https://apps.apple.com/app/...",
"android": "https://play.google.com/store/apps/..."
}
}
]
}Your PR will be automatically validated against the schema. To validate locally:
npm run validateEach wallet in data/aggregated.json now includes:
orgId- organization catalog id (org:β¦);provideron each wallet is merged from the organization catalog at crawl timeupdatedAt- semantic update timestamp used for "Last updated" sortingfirstSeenAt- stable first time this wallet was seen in the FIDES catalogfetchedAt- technical crawl timestamp (still present for backwards compatibility)
updatedAt fallback order:
- wallet-level
updatedAt/updatedfrom provider data - catalog-level
lastUpdated - git last commit date of the provider's
wallet-catalog.json fetchedAt(last resort)
firstSeenAt is persisted in data/wallet-history-state.json, so it does not reset on each crawl.
The aggregated catalog is available at:
https://raw.githubusercontent.com/FIDEScommunity/fides-wallet-catalog/main/data/aggregated.json
Updated daily via GitHub Actions.
For development, you can run a local API server:
npm run serve| Endpoint | Description |
|---|---|
GET /api/wallets |
Paginated list (content, totalElements, page/number, size) + filters |
GET /api/wallets/:orgId/:walletId |
One wallet (orgId URL-encoded, e.g. org%3Aanimo) |
Example with filters:
GET /api/wallets?search=paradym&type=personal&platforms=iOS,Android&vcFormat=sd_jwt_vc&page=0&size=20
Deploy this repository to Vercel (root = repo root; settings from vercel.json) to expose GET /api/public/wallet, wallet detail, and OpenAPI β see docs/API.md. For a single hostname with other FIDES catalogs, use the FIDES API Gateway and set FIDES_WALLET_CATALOG_ORIGIN to this projectβs *.vercel.app URL.
The schema supports extensive wallet metadata:
- General: name, description, logo, website, app store links
- Type: personal or organizational
- Platforms: iOS, Android, Web, Windows, macOS, Linux, CLI
- VC formats (field
vcFormat): canonical codes such assd_jwt_vc,mdoc,anoncreds,apple_wallet_pass, etc. - Protocols: OpenID4VCI, OpenID4VP, DIDComm, ISO 18013-5, SIOPv2
- Identifiers: did:web, did:key, did:jwk, did:peer, X.509, etc.
- Key Storage: Secure Enclave, StrongBox, HSM, TEE, Cloud KMS, FIDO2/WebAuthn
- Signing Algorithms: ES256, ES384, EdDSA, RS256, etc.
- Certifications: EUDI Wallet LSP, ISO 27001, SOC 2, Common Criteria
- Interoperability: DIIP v4, EWC v3, EUDI Wallet ARF
- Status: development, beta, production, deprecated
See the full schema: schemas/wallet-catalog.schema.json
A WordPress plugin is included in wordpress-plugin/fides-wallet-catalog/.
- Copy the plugin folder to
wp-content/plugins/ - Activate the plugin in WordPress Admin
- (Optional) Configure a custom data source in Settings > FIDES Wallet Catalog
- Use the shortcode on any page:
[fides_wallet_catalog]
| Option | Values | Description |
|---|---|---|
type |
personal, organizational, both | Filter by wallet type |
show_filters |
true, false | Show/hide filters (default: true) |
show_search |
true, false | Show/hide search bar (default: true) |
columns |
1, 2, 3, 4 | Number of columns (default: 3) |
theme |
dark, light | Color theme (default: dark) |
Each filter option shows a count of how many wallets match (e.g. "Personal (52)", "SD-JWT-VC (48)") so you can see the dataset distribution at a glance. Counts are computed over the visible set (e.g. when using type="personal", only personal wallets are counted).
The plugin automatically fetches data from the FIDES Community GitHub repository daily.
The WordPress plugin tries GitHub first and falls back to:
wordpress-plugin/fides-wallet-catalog/data/aggregated.json
For local testing with the latest generated data, copy:
data/aggregated.json -> wordpress-plugin/fides-wallet-catalog/data/aggregated.json
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