Package-level declarations

Types

Link copied to clipboard

Android framework boundary for official holder CREATE_CREDENTIAL request and response handling.

Verified Android Credential Manager create input after caller and protocol extraction.

Link copied to clipboard
data class AndroidDigitalCredentialCreateRequest(val protocol: String, val offerJson: String, val verifiedOrigin: String)

Android CREATE_CREDENTIAL OpenID4VCI request after Credential Manager extraction.

Link copied to clipboard
data class AndroidDigitalCredentialCreateResponse(val protocol: String = MobileWalletDigitalCredentialProtocols.OPENID4VCI_V1, val dataJson: String = "{}")

Android CREATE_CREDENTIAL acknowledgement returned to Credential Manager after OpenID4VCI completes.

Link copied to clipboard

Android framework boundary for official holder Activity request and response handling.

Link copied to clipboard

Verified Android Credential Manager input after caller and selected-entry extraction.

Link copied to clipboard

Android Credential Manager metadata registry adapter.

Link copied to clipboard
@Serializable
data class IosIdentityDocumentProjectionRecord(val documentIdentifier: String, val documentType: String)

One mdoc credential projected into Apple's IdentityDocumentServices registration model.

Link copied to clipboard

Outcome of reading the shared projection, with "absent" and "unreadable" kept apart.

Link copied to clipboard
@Serializable
data class IosIdentityDocumentProjectionState(val walletId: String, val registrations: List<IosIdentityDocumentProjectionRecord>)

Desired IdentityDocumentServices registration state of the one wallet that owns this App Group.

Link copied to clipboard

Runtime authorization state of Apple's IdentityDocumentServices provider registration.

Link copied to clipboard
class IosIdentityDocumentRegistry(appGroupIdentifier: String?, walletId: String) : MobileWalletCredentialRegistry

App-to-extension desired-state bridge for Apple's IdentityDocumentServices registration store.

Link copied to clipboard

Android and iOS facade for the walt.id wallet SDK.

Link copied to clipboard
data class MobileWalletAnnexCDocumentRequest(val docType: String, val namespaces: Map<String, List<String>>)

Requested mdoc document and namespace elements.

Link copied to clipboard

Parsed request shape Apple exposes before the user grants access to the raw Annex C request.

Link copied to clipboard
data class MobileWalletAnnexCPreview(val requestId: String, val verifiedOrigin: String, val parsedRequest: MobileWalletAnnexCParsedRequest, val credentialOptions: List<MobileWalletPresentationCredentialOption>, val readerTrust: MobileWalletReaderTrust)

Consent preview for an ISO 18013-7 Annex C presentation.

Link copied to clipboard
data class MobileWalletAnnexCRequest(val parsedRequest: MobileWalletAnnexCParsedRequest, val verifiedOrigin: String, val selectedRegistryEntryIds: List<String> = emptyList(), val deviceRequestBase64Url: String? = null, val encryptionInfoBase64Url: String? = null)

Two-phase Annex C input. Android supplies raw fields immediately; Apple may defer them.

Link copied to clipboard
data class MobileWalletAnnexCSubmission(val requestId: String, val verifiedOrigin: String, val deviceRequestBase64Url: String, val encryptionInfoBase64Url: String, val selectedCredentialOptions: List<MobileWalletPresentationCredentialSelection>)

Raw post-consent Annex C data required to sign and encrypt a response.

Link copied to clipboard
data class MobileWalletBootstrapResult(val keyId: String, val did: String)

Result returned after a mobile wallet has been initialized with signing material and a DID.

Link copied to clipboard

Client identifier scheme established while authenticating an OpenID4VP request.

Link copied to clipboard
data class MobileWalletConfig(val walletId: String = "default", val defaultKeyType: MobileWalletKeyType = MobileWalletKeyType.secp256r1, val attestationConfig: WalletAttestationConfig? = null, val persistence: MobileWalletPersistence = MobileWalletPersistence(), val onEvent: suspend (MobileWalletEvent) -> Unit = {}, val preferredLocales: List<String> = emptyList(), val transactionDataProfiles: List<MobileWalletTransactionDataProfile> = emptyList(), val credentialIssuerMetadataTrustResolver: CredentialIssuerMetadataTrustResolver? = null, val credentialRegistry: MobileWalletCredentialRegistry = UnavailableMobileWalletCredentialRegistry, val readerTrustEvaluator: MobileWalletReaderTrustEvaluator = UnconfiguredMobileWalletReaderTrustEvaluator, val crossProcessAccess: MobileWalletCrossProcessAccess? = null, val onDigitalCredentialRegistryChanged: suspend () -> Unit = {}, val defaultKeyUseAuthorizationPolicy: KeyUseAuthorizationPolicy = KeyUseAuthorizationPolicy.BiometricCurrentSet, val keyUseAuthorizationPrompt: KeyUseAuthorizationPrompt = KeyUseAuthorizationPrompt())

Configuration for creating a MobileWallet.

Link copied to clipboard
data class MobileWalletCredential(val id: String, val format: String, val issuer: String?, val subject: String?, val label: String?, val addedAt: String?, val credentialDataJson: String, val metadataJson: String? = null)

Credential entry suitable for mobile UI lists and detail display.

Link copied to clipboard

Credential offer input for MobileWalletIssuanceRequest.

Link copied to clipboard
data class MobileWalletCredentialRegistrationResult(val available: Boolean, val registeredEntryCount: Int, val reason: String? = null)

Outcome of synchronizing the platform registry with the current wallet credential metadata.

Link copied to clipboard

Platform adapter for metadata-only registration. Android framework types never cross this boundary.

Link copied to clipboard
data class MobileWalletCredentialRegistryField(val path: List<String>, val valueJson: String, val selectivelyDisclosable: Boolean)

One matcher-visible field. Values are individual decoded claims, never the raw credential payload.

Link copied to clipboard
data class MobileWalletCredentialRegistryRecord(val registryEntryId: String, val credentialId: String, val format: MobileWalletDigitalCredentialFormat, val type: String, val fields: List<MobileWalletCredentialRegistryField>, val displayName: String)

Matcher-visible credential metadata supplied to a platform credential registry.

Link copied to clipboard
data class MobileWalletCrossProcessAccess(val appGroupIdentifier: String, val keychainAccessGroup: String)

Cross-process wallet access required by native document-provider extensions.

Link copied to clipboard
sealed interface MobileWalletDatabaseKey

Selects who owns the encrypted wallet database key.

data class MobileWalletDigitalCredentialCapabilities(val platform: String, val platformAvailable: Boolean, val minimumOsVersion: String, val registrationAvailable: Boolean, val capabilities: List<MobileWalletDigitalCredentialCapability>)

Truthful platform capability snapshot, including runtime and registration availability.

Link copied to clipboard
data class MobileWalletDigitalCredentialCapability(val protocol: String, val credentialFormats: List<MobileWalletDigitalCredentialFormat>, val requestProtection: List<MobileWalletDigitalCredentialRequestProtection>, val responseProtection: List<MobileWalletDigitalCredentialResponseProtection>, val supported: Boolean, val unsupportedReason: String? = null)

Runtime support for one protocol/format/protection combination.

Link copied to clipboard

Credential formats exposed through the platform Digital Credentials integration.

Link copied to clipboard
data class MobileWalletDigitalCredentialPreview(val requestId: String, val protocol: String, val verifiedOrigin: String, val request: MobileWalletDigitalCredentialRequestInfo, val credentialOptions: List<MobileWalletPresentationCredentialOption>, val credentialRequirements: List<MobileWalletPresentationCredentialRequirement>, val readerTrust: MobileWalletReaderTrust)

Consent preview retained by the SDK until MobileWallet.submitDigitalCredentialPresentation.

Link copied to clipboard

Protocol identifiers understood by platform Digital Credentials APIs.

Link copied to clipboard
data class MobileWalletDigitalCredentialRequest(val protocol: String, val dataJson: String, val verifiedOrigin: String, val selectedRegistryEntryIds: List<String> = emptyList())

Platform-neutral request passed by Android Credential Manager or an Apple provider extension.

Link copied to clipboard
data class MobileWalletDigitalCredentialRequestInfo(val clientId: String?, val verifierMetadata: MobileWalletVerifierMetadata?, val nonce: String, val responseMode: String?, val transactionData: List<MobileWalletTransactionDataItem> = emptyList())

Verifier and transaction metadata extracted from an OpenID4VP request received through a Digital Credentials API.

Authentication applied to a Digital Credentials request.

Link copied to clipboard
data class MobileWalletDigitalCredentialResponse(val protocol: String, val dataJson: String)

OS-mediated response. dataJson is returned to the platform and is never direct-posted over HTTP.

Protection applied to the response returned to the requesting platform.

Link copied to clipboard

Observable mobile wallet session event.

Link copied to clipboard

High-level protocol flow that emitted a MobileWalletEvent.

Link copied to clipboard
Link copied to clipboard
actual class MobileWalletFactory

Android MobileWallet factory backed by Android KeyStore and an app-private SQLDelight database.

expect class MobileWalletFactory

Platform factory that wires MobileWallet to Android or iOS storage and key infrastructure.

actual class MobileWalletFactory

iOS MobileWallet factory backed by Keychain/Secure Enclave managed keys, the Crypto2 software-key fallback, and a native SQLDelight database.

Link copied to clipboard
data class MobileWalletIssuanceRequest(val offer: MobileWalletCredentialOffer, val clientId: String = "eudiw-abca", val redirectUri: String = "openid://", val keyId: String? = null, val did: String? = null)

App-facing input for starting an OpenID4VCI issuance session.

Link copied to clipboard

Key algorithms supported by the mobile wallet bootstrap flow.

Link copied to clipboard
data class MobileWalletMetadataDisplay(val name: String?, val locale: String?, val logoUri: String?, val logoAltText: String?, @ObjCName(name = "descriptionText") val description: String? = null, val backgroundColor: String? = null, val backgroundImageUri: String? = null, val textColor: String? = null)

Localized display metadata normalized from issuer, credential, or verifier protocol metadata.

Link copied to clipboard
data class MobileWalletPersistence(val databaseKey: MobileWalletDatabaseKey = MobileWalletDatabaseKey.Managed, val credentialStore: WalletCredentialStore? = null, val didStore: WalletDidStore? = null)

Wallet-local persistence configuration.

Link copied to clipboard
data class MobileWalletPresentationCredentialOption(val queryId: String, val credentialId: String, val multiple: Boolean = false, val format: String, val issuer: String?, val subject: String?, val label: String?, val credentialDataJson: String, val disclosures: List<MobileWalletPresentationDisclosure> = emptyList())

A wallet credential that satisfies one DCQL credential query in the presentation request.

A required presentation credential-query combination.

data class MobileWalletPresentationCredentialSelection(val queryId: String, val credentialId: String)

User-selected presentation credential option.

Link copied to clipboard
data class MobileWalletPresentationDisclosure(val path: String, val name: String?, val valueJson: String, val displayValue: String?, val selectivelyDisclosable: Boolean, val required: Boolean = !selectivelyDisclosable, val selectable: Boolean = selectivelyDisclosable && !required)

Claim or selective-disclosure value that may be shared for a matched credential.

data class MobileWalletPresentationDisclosureSelection(val queryId: String, val credentialId: String, val path: String)

User-selected selectively disclosable claim for a selected presentation credential option.

Link copied to clipboard

OAuth 2.0 and OpenID4VP 1.0 authorization error codes supported by the wallet.

Link copied to clipboard

Preview of an OpenID4VP presentation request before the wallet submits a VP token.

Link copied to clipboard

Opaque presentation preview handle. It is valid only for the wallet that created it.

Link copied to clipboard

Result of resolving and validating an OpenID4VP request for presentation preview.

Link copied to clipboard
data class MobileWalletPresentationRequestContext(val clientId: String, val verifierMetadata: MobileWalletVerifierMetadata?, val requestAuthentication: MobileWalletRequestAuthentication, val responseUri: String?, val state: String?, val nonce: String?, val responseEncryption: MobileWalletResponseEncryption)

Partial request context retained when an OpenID4VP request is invalid.

Link copied to clipboard
data class MobileWalletPresentationRequestInfo(val clientId: String, val verifierMetadata: MobileWalletVerifierMetadata?, val requestAuthentication: MobileWalletRequestAuthentication, val responseUri: String?, val state: String?, val nonce: String, val responseEncryption: MobileWalletResponseEncryption, val transactionData: List<MobileWalletTransactionDataItem> = emptyList())

Verifier and transaction metadata extracted from a presentation request.

Link copied to clipboard

Result of answering an OpenID4VP presentation request.

Link copied to clipboard
sealed interface MobileWalletReaderTrust

Reader authentication state. Only MobileWalletReaderTrust.Trusted means a reader was identified, and reaching it requires both a valid signature and an accepting application trust policy.

Link copied to clipboard

The two outcomes an application trust policy may return.

Link copied to clipboard

Application trust policy for a cryptographically verified Annex C reader certificate chain.

Link copied to clipboard

Authentication established for an OpenID4VP Authorization Request or Request Object.

Link copied to clipboard

Response-encryption state selected for an OpenID4VP presentation request.

Link copied to clipboard

Selected platform registry entry no longer maps to a current wallet credential.

Link copied to clipboard
data class MobileWalletTransactionDataItem(val type: String, val displayName: String, val credentialQueryIds: List<String>, val supportedFields: List<String>, val rawJson: String, val detailsJson: String)

Decoded transaction_data item attached to a presentation request.

Link copied to clipboard
data class MobileWalletTransactionDataProfile(val type: String, val displayName: String = type, val fields: List<String> = emptyList())

Transaction data profile accepted by the mobile wallet.

Link copied to clipboard
data class MobileWalletVerifierMetadata(val display: MobileWalletMetadataDisplay?, val clientUri: String?, val policyUri: String?, val termsOfServiceUri: String?)

Typed OpenID4VP verifier metadata needed by mobile presentation-review interfaces.

Registry used when the current platform or application has no registration integration.

Secure default: a valid signature alone does not establish that a reader is trusted.

Link copied to clipboard
data class WalletAttestationConfig(val baseUrl: String, val attesterPath: String, val bearerToken: String = "", val hostHeader: String = "")

OAuth 2.0 client-attestation configuration used during mobile issuance.