Integrate the SDK

This guide shows you how to add the Wallet SDK to your app, create a wallet, initialize a signing identity, and drive receive and present from your own UI.

Prerequisites

Before you begin, ensure you have:

  • An Android or iOS application โ€” Android / Kotlin Multiplatform uses waltid-openid4vc-wallet-mobile. Native iOS uses the WalletSDK Swift package.
  • A way to test offers and requests โ€” Use portal2.demo.walt.id.

Add the Library

PlatformArtifact
Android / Kotlin Multiplatformwaltid-openid4vc-wallet-mobile
Native iOSWalletSDK

Generated API docs: Android and iOS. For local XCFramework and Swift package setup, see the Mobile Wallet Development Guide.

Create a Wallet

Kotlin
Swift
val wallet = MobileWalletFactory(context).create(
    MobileWalletConfig(walletId = "consumer-wallet")
)
when (val result = wallet.signingIdentity.initialize()) {
    is SigningIdentityOperationResult.Active -> openWallet(result.identity)
    is SigningIdentityOperationResult.Pending -> showPendingSetup(result.identityId)
    is SigningIdentityOperationResult.Failed -> showFailure(result.reason)
}

Android MobileWalletFactory needs an application Context. Pass a resumed FragmentActivity provider if you use biometric signing. iOS apps import WalletSDK only โ€” keep Kotlin Multiplatform types behind that package.

๐ŸŽ‰ You've created a wallet with an active signing identity.

First Flows

  1. Receive an offer from portal2.demo.walt.id โ€” Receiving Credentials via OID4VCI.
  2. Present back to Portal2 โ€” Presenting Credentials via OID4VP.
  3. Optional: register for the Digital Credentials API and proximity sharing.

For a complete UI reference, start from the sample apps.

Next Steps

Last updated on September 29, 2026