walt.id Identity Stack

repository·main·Indexed 43 days ago

https://github.com/walt-id/waltid-identity

Open-source digital ID and wallet infrastructure for issuing, holding, and verifying digital identity credentials. Supports standards including OpenID4VCI, OpenID4VP, W3C Verifiable Credentials, SD-JWT, and mdoc/mDL. Provides a suite of API services (Issuer, Verifier, and Wallet APIs), web applications, and multiplatform libraries for JVM, JavaScript, and iOS.

Tokens
286.4K
Snippets
622
Records
962
Agent score
55%

What's inside walt.id

  1. Overview of walt.id OpenID4VC Wallet Mobile

    main

    The waltid-openid4vc-wallet-mobile module is a mobile facade for the walt.id wallet SDK. It provides an Android and iOS-facing API used by native demo applications.

    Key architectural details:

    • Protocol Logic: Delegated to waltid-openid4vc-wallet.
    • Persistence: Delegated to waltid-openid4vc-wallet-persistence-mobile.
    • iOS Integration: Native iOS apps should use the Swift WalletSDK package, which wraps this KMP (Kotlin Multiplatform) module with Swift-friendly types, async/await support, and DocC documentation.
    • Development: For local setup and platform build flags, refer to the Mobile Wallet Development Guide.
  2. Overview of the waltid-verification-policies library

    main

    The waltid-verification-policies library is a Kotlin Multiplatform library designed for composable verification of digital credentials. It allows developers to build verifier services that check credentials (JWT VC, SD-JWT VC, LDP VC, mdoc) against multiple criteria such as signatures, expiration, issuer, schema, status, and revocation.

    Important Deprecation Notice: This library is planned for deprecation in Q2 2026. Users are encouraged to migrate to the newer waltid-verification-policies2 library, which supports the OpenID4VP 1.0 major release.

  3. Overview of walt.id Applications and Development Tools

    main
    The waltid-applications directory contains end-user applications and development tools built on top of walt.id libraries and services. These tools demonstrate real-world usage of walt.id technology, including credential management, issuance, and verification workflows. The applications are categorized into Development Tools, Web Applications, Mobile Applications, and Test Applications.
  4. Overview of Issuer API 2

    main

    Issuer API 2 is a modern walt.id service implementing the OpenID4VCI 1.0 (OpenID for Verifiable Credential Issuance) standard. It is designed for new issuer integrations and provides:

    • Credential Issuance: Profile-based offers, authorization, and token endpoints.
    • Metadata Endpoints: Support for Credential Issuer, Authorization Server, JWT VC Issuer, JWKS, and VCT metadata.
    • Grant Types: Supports both pre-authorized code and authorization code flows.
    • Session Management: Tools to inspect issuance sessions and stream real-time updates via Server-Sent Events (SSE).
    • Pluggable Infrastructure: Supports in-memory or Redis-backed persistence and integrates with the walt.id crypto stack for KMS support.

    Note: The original waltid-issuer-api is legacy/draft-based and is planned for deprecation.

  5. What is the waltid-openid4vp library for?

    main

    The waltid-openid4vp library is a core Kotlin Multiplatform library that provides the foundational data models, types, and utilities for implementing the OpenID for Verifiable Presentations (OpenID4VP) 1.0 protocol.

    It defines the core structures used by Verifiers to request verifiable presentations from Wallets.

    Note: Most developers should NOT use this library directly. Instead, use the specialized implementation libraries:

    • waltid-openid4vp-verifier: For a complete Verifier implementation.
    • waltid-openid4vp-wallet: For a complete Wallet/Holder implementation.
  6. Overview of walt.id Protocol Libraries

    main

    The waltid-protocols directory contains multiplatform libraries for implementing identity and credential protocols. These libraries enable the development of Issuers, Verifiers, and Wallets using standards such as:

    • OpenID for Verifiable Credentials (OID4VCI): For credential issuance.
    • OpenID4VP: For verifiable presentations.
    • SIOPv2 (Self-Issued OpenID Provider v2): For decentralized identity.

    Libraries are categorized into Main Libraries (for protocol implementation), Wallet Libraries (for building holders), and Helper Libraries (for specific protocol utilities).

  7. Overview of walt.id Library Categories

    main

    The walt.id ecosystem is composed of multiplatform libraries (JVM, JavaScript, and iOS) organized into several functional domains:

    • Authentication & Authorization: Frameworks for Ktor applications (waltid-ktor-authnz), permission management (waltid-permissions), and OIDC-based Identity Providers (waltid-idpkit).
    • Cryptography: Core cryptographic operations (waltid-crypto), COSE implementation (waltid-cose), X.509 handling (waltid-x509), and cloud KMS integrations (AWS, Azure, OCI).
    • Credentials: Unified abstraction for parsing/verifying credentials (waltid-digital-credentials), W3C Verifiable Credentials (waltid-w3c-credentials), mdoc (waltid-mdoc-credentials2), and verification policy systems.
    • Protocols: Implementations of identity protocols including OpenID4VCI (issuance), OpenID4VP (presentation), and ISO/IEC 18013-7 (Apple Wallet/DC API).
    • SD-JWT: Selective Disclosure JWT implementations (waltid-sdjwt).
    • Web: Ktor-based server utilities for notifications (SSE, webhooks) and data fetching.
  8. Overview of walt.id Authentication & Authorization Libraries

    main

    The waltid-auth directory contains a suite of libraries designed to implement authentication and authorization systems within walt.id applications. These libraries cover a spectrum of needs from Ktor-specific frameworks to general permission management and specialized Identity Provider (IdP) toolkits.

    Available libraries include:

    • waltid-ktor-authnz: A framework for Ktor applications supporting diverse authentication methods (OIDC, JWT, Web3, Verifiable Credentials, etc.).
    • waltid-permissions: A system for fine-grained access control and permission checking.
    • waltid-idpkit: A toolkit for building OIDC-based Identity Providers that leverage Verifiable Credentials for user authentication.
  9. What is Ktor Notifications

    main

    Ktor Notifications is a library designed for Ktor-based JVM applications to deliver real-time session updates. It provides production-ready utilities for two primary delivery mechanisms:

    1. Server-Sent Events (SSE): Enables in-app streaming of KtorSessionUpdate events per session or target, allowing UIs to subscribe to live updates.
    2. Webhooks: Allows pushing JSON payloads to external systems, supporting optional Basic or Bearer authentication.

    The library is built upon the transport-agnostic models defined in waltid-ktor-notifications-core.

  10. Overview of walt.id Wallet API 2

    main

    The waltid-wallet-api2 is a Ktor-based REST service designed for holders to receive, store, and present Verifiable Credentials. It is built on a multiplatform core and provides full support for the following protocols:

    • OpenID4VCI 1.0: For credential issuance.
    • OpenID4VP 1.0: For credential presentation, including support for DCQL.

    Key architectural features include:

    • Pluggable Stores: Uses in-memory storage by default, with support for SQLite or Postgres via the wallet2-persistence feature flag.
    • Optional Auth: Supports account registration, JWT-based login, and wallet ownership enforcement via the auth feature.
    • Separation of Concerns: Route logic is isolated in waltid-openid4vc-wallet-server.
    • API Documentation: A full OpenAPI 3 specification is available at /swagger/index.html.