Skip to main content
Version: v0.25.0 (Latest)

Module Reference

All IDK modules follow the com.sphereon.idk:<artifact-id> naming convention and are versioned together. Use the BOM to align versions, or specify 0.25.0 explicitly.

Modules marked with -public contain interfaces, data classes, and common logic. Modules marked with -impl (or -default) contain injectable implementations. See Installation for details on this pattern.

Core

ModuleDescription
lib-core-api-publicCore interfaces, IdkResult, error types, scope definitions (AppScope, UserScope, SessionScope), AbstractAppGraph base class
lib-core-api-defaultDefault implementations: root scope provider, session context manager, graph factories
lib-conf-settingsConfiguration system: property sources, property resolution, secrets, multi-tenancy
lib-core-events-publicEvent bus interfaces and event types
lib-core-events-implEvent bus implementation and DI contributions
lib-core-loggers-mobile-loggerMobile logging provider with in-memory buffer, platform-native output (Logcat / NSLog), and log export
lib-core-testTest utilities and helpers for IDK-based tests
lib-core-compatCompatibility layer for cross-platform APIs

HTTP Client

ModuleDescription
lib-data-link-http-client-publicHTTP client factory interface and configuration
lib-data-link-http-client-implKtor-based HTTP client implementation

Cryptography

ModuleDescription
lib-crypto-core-publicIdentifier resolution (IIdentifierService), signing/verification interfaces, COSE/JOSE types, X.509 models
lib-crypto-core-implIdentifier resolution implementations, JWS/JWE/COSE operations, X.509 chain validation

KMS Providers

ModuleDescription
lib-crypto-kms-provider-softwareSoftware-based key storage using in-memory or file-backed keys. Available on all platforms
lib-crypto-kms-provider-mobileiOS Secure Enclave and Android Keystore integration
lib-crypto-kms-provider-awsAWS KMS integration
lib-crypto-kms-provider-azureAzure Key Vault integration
lib-crypto-kms-provider-restRemote KMS via REST API
lib-crypto-kms-rest-apiKMS REST API models (shared between client and server)
lib-crypto-kms-rest-serverKMS REST server (expose a KMS over HTTP)

Decentralized Identifiers (DID)

ModuleDescription
lib-did-core-publicDID Document model, DID URL parsing, verification method types
lib-did-resolver-publicDidResolver interface, resolution metadata, resolution options
lib-did-resolver-implComposite DID resolver, resolution caching, DI contributions
lib-did-manager-publicDidManager interface for creating, updating, and deactivating DIDs
lib-did-manager-implDID management implementation

DID Methods

ModuleDescription
lib-did-methods-keydid:key method: self-contained key-based DIDs
lib-did-methods-jwkdid:jwk method: JWK-encoded DIDs
lib-did-methods-webdid:web method: DNS-anchored DIDs resolved over HTTPS

DID Persistence

ModuleDescription
lib-did-persistence-apiPersistence interface for DID document storage
lib-did-persistence-memoryIn-memory DID persistence (development/testing)
lib-did-persistence-sqliteSQLite-backed DID persistence

DID Server

ModuleDescription
lib-did-rest-resolver-serverUniversal Resolver compatible REST server

Trust Establishment

ModuleDescription
lib-trust-core-publicTrustValidationService interface, TrustContext, TrustStatus, TrustAnchor, revocation interfaces
lib-trust-core-implComposite trust validator, composite revocation checker (OCSP + CRL), caching
lib-trust-etsi-entities-publicETSI TS 119 612/602 entity models (trust service providers, services, service history)
lib-trust-etsiETSI trust list parsing (XML TSL + JSON LoTE), trust list resolution, XML signature verification
lib-trust-x509X.509 trust validation: CA bundle matching, fingerprint comparison, chain building
lib-trust-didDID-based trust: method allow-lists, trusted DID lists, controller chain validation
lib-trust-oidfedOpenID Federation trust: trust chain resolution, trust mark verification

SD-JWT

ModuleDescription
lib-sdjwt-publicSD-JWT interfaces, disclosure models, CNF builder, holder binding types
lib-sdjwt-implSD-JWT issuance, verification, and selective disclosure implementation

OAuth 2.0

ModuleDescription
lib-oauth2-common-publicShared OAuth2 types: token models, error types, grant types
lib-oauth2-common-implShared OAuth2 implementations
lib-oauth2-client-publicOAuth2Client interface, DpopService, PkceService, token request/response models
lib-oauth2-client-implOAuth2 client implementation: authorization code, client credentials, pre-authorized code, token exchange, DPoP, PKCE
lib-oauth2-server-authorization-publicAuthorizationServerService interface, command models for all grant types, storage interfaces
lib-oauth2-server-authorization-implAuthorization server implementation: RFC 6749, 7636, 8693, 9449, 9126, 7662, 7009, 8414, OIDC
lib-oauth2-server-resource-publicResource server token validation interfaces
lib-oauth2-server-resource-implResource server implementation

JWT Validation

ModuleDescription
lib-oauth2-jwt-validation-apiJwtValidationService interface, IdpConfig with factory methods for OIDC/Keycloak/Azure AD/Auth0/Okta
lib-oauth2-jwt-validation-implJWT validation implementation with JWKS fetching, caching, and multi-tenant support

OpenID4VP

ModuleDescription
lib-openid-oid4vp-dcqlDCQL (Digital Credentials Query Language) query parser and evaluator
lib-openid-oid4vp-common-publicShared OID4VP types: authorization request/response, presentation definition models
lib-openid-oid4vp-common-implShared OID4VP implementations
lib-openid-oid4vp-holder-publicHolder/wallet interfaces for processing authorization requests and creating presentations
lib-openid-oid4vp-holder-implHolder implementation
lib-openid-oid4vp-verifier-publicVerifier/relying-party interfaces for creating requests and validating presentations
lib-openid-oid4vp-verifier-implVerifier implementation
lib-openid-oid4vp-universal-publicCombined holder + verifier with HTTP adapter for same-device and cross-device flows
lib-openid-oid4vp-universal-implUniversal OID4VP implementation
lib-openid-oid4vp-auth-bridge-publicAuthentication bridge: converts OID4VP presentations into OAuth2 token responses
lib-openid-oid4vp-auth-bridge-implAuth bridge implementation

Credential Claims Mapping

ModuleDescription
lib-credential-claims-mapper-publicInterfaces for mapping and transforming credential claims across formats
lib-credential-claims-mapper-implClaims mapper implementation

Mobile Credentials (mDoc)

ModuleDescription
lib-cbor-publicCBOR encoding/decoding types
lib-mdoc-core-publicmDoc/mDL data models, device request/response, issuer-signed items
lib-mdoc-core-implmDoc core implementation: CBOR encoding, session encryption, MSO verification
lib-mdoc-datatransfer-publicEngagement manager, transfer manager, event hub interfaces
lib-mdoc-datatransfer-implData transfer orchestration implementation
lib-mdoc-readerReader/verifier utilities for mDoc presentation verification

mDoc Transports

ModuleDescription
lib-mdoc-transport-ble-publicBLE transport interfaces
lib-mdoc-transport-ble-implBluetooth Low Energy transport (central and peripheral mode)
lib-mdoc-transport-nfcNFC transport with Host Card Emulation (HCE)
lib-mdoc-transport-restapiHTTP/WebSocket transport for server-based relay
lib-mdoc-transport-oid4vpOID4VP-based mDoc transport
ModuleDescription
lib-data-link-ble-publicLow-level BLE data link interfaces
lib-data-link-nfc-publicLow-level NFC data link interfaces
lib-data-link-nfc-implNFC data link implementation

Data Storage

Key-Value Store

ModuleDescription
lib-data-store-kv-publicKvStore interface, query options, scope binding
lib-data-store-kv-implKV store service and DI wiring
lib-data-store-kv-impl-memoryIn-memory KV backend (development/testing)
lib-data-store-kv-impl-kottageKottage-backed persistent KV store

Blob Store

ModuleDescription
lib-data-store-blob-publicBlobStore and BlobService interfaces, CAS, metadata search
lib-data-store-blob-implBlob service orchestration and DI wiring
lib-data-store-blob-impl-memoryIn-memory blob backend
lib-data-store-blob-impl-fsFilesystem blob backend
lib-data-store-blob-impl-kvKV-backed blob backend
lib-data-store-blob-client-httpRemote HTTP blob client

Party Data

ModuleDescription
lib-data-store-party-publicParty, Identity, Tenant, and CorrelationIdentifier data models

Identity

ModuleDescription
lib-identity-matching-publicIdentityMatch, IdentifierType, IdentityMatchStore, ReconciliationCryptoService interfaces
lib-identity-matching-implIn-memory and Kottage-backed match store implementations
lib-identity-resolution-publicIdentityResolver interface, IdentityResolutionResult, resolution config
lib-identity-resolution-implMatching-based identity resolver implementation
lib-identity-reconciliation-publicReconciliationPlan, ReconciliationSelectorRule, session model, commands
lib-identity-reconciliation-implReconciliation orchestrator, KMS-backed crypto, session stores
lib-idv-publicIDV workflow models: use case definitions, graph nodes, method definitions, materialization rules, assurance/compliance profiles
lib-idv-oidcOIDC method driver for IDV workflows
lib-idv-walletWallet/OID4VP method driver for IDV workflows

Theme and UI

ModuleDescription
lib-conf-theme-core-publicTheme configuration interfaces (colors, typography, spacing)
lib-conf-theme-core-implTheme configuration implementation
lib-conf-theme-composeJetpack Compose theme integration
lib-conf-theme-webWeb theme integration
lib-ui-composeReusable Jetpack Compose UI components

Framework Integration

ModuleDescription
ktor-server-kotlin-injectKtor server plugin for IDK DI integration

Convenience

ModuleDescription
lib-allIncludes all IDK modules transitively. Use for quick starts or when binary size is not a concern
idk-bomBill of Materials for version alignment across selective dependencies