Skip to content

FIDEScommunity/fides-wallet-catalog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

850 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FIDES Wallet Catalog

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.

🎯 Concept

The FIDES Wallet Catalog is a standardized, searchable database of digital identity wallets. Providers can contribute and update listings in two ways:

  1. WordPress forms on fides.community (recommended) β€” submit and update forms with moderation, then automatic sync to GitHub
  2. GitHub Pull Requests β€” edit community-catalogs/*/wallet-catalog.json directly (schema v2)

Shared properties:

  1. Standardized format β€” unified JSON schema (v2)
  2. Community-maintained β€” providers own their data
  3. Automatic aggregation β€” crawler builds data/aggregated.json
  4. Always up-to-date β€” daily crawl plus WP publish sync
  5. Open source β€” Apache-2.0 license

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

πŸ“ Project Structure

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

πŸš€ Getting Started

Installation

npm install

Run Crawler

This crawls the wallet catalogs and generates data/aggregated.json:

npm run crawl

Backfill first-seen dates (one-time / when needed)

To initialize historical firstSeenAt values from git history:

npm run backfill:first-seen

After backfill, run the crawler again:

npm run crawl

Start Development Server

npm run dev

Open http://localhost:5173 in your browser.

Start API Server (optional)

npm run serve

The API runs on http://localhost:3001 β€” same data and filters as GET /api/public/wallet on Vercel (see docs/API.md).

🌍 Data Sources

Wallet data lives in community-catalogs/ and is aggregated into data/aggregated.json. Sources include:

  • WordPress submissions β€” published entries from [fides_wallet_submit_form] / [fides_wallet_update_form] on fides.community (synced via GitHub Actions)
  • Community Pull Requests β€” direct JSON contributions to this repo
  • National & commercial wallets β€” 70+ providers (EUDI member states, government apps, vendors, tech giants)

Organization metadata (provider name, logo, country, etc.) is merged from the FIDES Organization Catalog at crawl time using orgId.

DID-based auto-discovery (optional)

Advanced: host a catalog on your domain and register a DID for automatic crawling. See docs/DID_REGISTRATION.md.

πŸ“‹ Add or Update Your Wallet

Option A β€” WordPress forms (recommended)

  1. Ensure your organization exists in the organization catalog (orgId e.g. org:your-org).
  2. Sign in on fides.community and open the submit or update wallet form page.
  3. Complete the form and submit. A maintainer reviews under Tools β†’ Catalog Submissions.
  4. After Publish, data syncs to this repo and the public catalog updates.

Shortcodes (site operators): [fides_wallet_submit_form], [fides_wallet_update_form]. Requires fides-community-tools-tiles with catalog submissions enabled.

Governance: fides-community-tools-tiles/docs/CATALOG-SUBMISSION-GOVERNANCE.md β€” Β§14 (CI), Β§15 (deploy).

Pro listings: organizations with a linked WordPress account can publish richer fields (media, recognitions, pricing, store links, etc.) on export. See schemas/README.md.

Option B β€” GitHub Pull Request

  1. Fork this repository
  2. Create a folder in community-catalogs/ (lowercase, hyphenated slug)
  3. Add wallet-catalog.json with "$schema": "https://fides.community/schemas/wallet-catalog/v2"
  4. Open a Pull Request

Full contributor guide: docs/GITHUB_REPO_STRUCTURE.md.

Minimal example (schema v2)

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/v2",
  "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/..."
      }
    }
  ]
}

Schema reference (v2 fields, limits, tier export): schemas/README.md.

Validation

PRs and community JSON are validated in CI. Locally:

npm run validate

πŸ” Using the Catalog Data

Date Semantics in aggregated.json

Each wallet in data/aggregated.json now includes:

  • orgId - organization catalog id (org:…); provider on each wallet is merged from the organization catalog at crawl time
  • updatedAt - semantic update timestamp used for "Last updated" sorting
  • firstSeenAt - stable first time this wallet was seen in the FIDES catalog
  • fetchedAt - technical crawl timestamp (still present for backwards compatibility)

updatedAt fallback order:

  1. wallet-level updatedAt / updated from provider data
  2. catalog-level lastUpdated
  3. git last commit date of the provider's wallet-catalog.json
  4. fetchedAt (last resort)

firstSeenAt is persisted in data/wallet-history-state.json, so it does not reset on each crawl.

Direct JSON Access

The aggregated catalog is available at:

https://raw.githubusercontent.com/FIDEScommunity/fides-wallet-catalog/main/data/aggregated.json

Updated daily via GitHub Actions.

API Server (Optional)

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

Public HTTP API (Vercel)

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.

πŸ“Š Wallet Properties (schema v2)

The schema supports extensive metadata. Highlights:

  • General: name, description, logo, website, documentation, repository
  • Commercial (Pro export): media (videos/images), recognitions, pricing, features, appStoreLinks
  • Deployment: deploymentModel (saas, on_premises, hybrid), slaAvailable, license enum + licenseOther
  • Type: personal or organizational
  • Platforms: iOS, Android, Web, Windows, macOS, Linux, CLI
  • VC formats (vcFormat): sd_jwt_vc, mdoc, apple_wallet_pass, etc.
  • Protocols: OpenID4VCI, OpenID4VP, SIOPv2, ISO 18013-5, …
  • Technical: identifiers, key storage, signing algorithms, credential status, interoperability profiles
  • Status: development, beta, production, deprecated

Removed in v2: top-level video, string-array certifications β€” use media.videos and recognitions.certifications.

Full reference: schemas/README.md and schemas/wallet-catalog.schema.json.

πŸ”Œ WordPress Integration

A WordPress plugin is included in wordpress-plugin/fides-wallet-catalog/.

Installation

  1. Copy the plugin folder to wp-content/plugins/
  2. Activate the plugin in WordPress Admin
  3. (Optional) Configure a custom data source in Settings > FIDES Wallet Catalog
  4. Use the shortcode on any page:
[fides_wallet_catalog]

Shortcode Options

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 fetches data from GitHub (data/aggregated.json) and supports on-site contributions when fides-community-tools-tiles is installed.

Contributor forms (logged-in users)

Shortcode Purpose
[fides_wallet_submit_form] Add a new wallet (moderated)
[fides_wallet_update_form] Suggest changes (?wallet= pre-selects from modal pencil)

Configure the update form URL under Settings β†’ FIDES Wallet Catalog. Moderation: Tools β†’ Catalog Submissions in tiles. Published rows sync to GitHub via .github/workflows/wp-submissions-sync.yml.

Docs: CATALOG-SUBMISSION-GOVERNANCE.md (Β§14–16).

Plugin data fallback (local)

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

πŸ“„ License

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.

🏒 About

Developed and maintained by FIDES Labs BV


Β© 2026 FIDES Labs BV - All rights reserved

About

FIDES Community Wallet Catalog crawler and Wordpress plugin

Resources

License

Stars

3 stars

Watchers

2 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors