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 theWalletSDKSwift package. - A way to test offers and requests โ Use portal2.demo.walt.id.
Add the Library
| Platform | Artifact |
|---|---|
| Android / Kotlin Multiplatform | waltid-openid4vc-wallet-mobile |
| Native iOS | WalletSDK |
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
- Receive an offer from portal2.demo.walt.id โ Receiving Credentials via OID4VCI.
- Present back to Portal2 โ Presenting Credentials via OID4VP.
- Optional: register for the Digital Credentials API and proximity sharing.
For a complete UI reference, start from the sample apps.
Next Steps
- See what belongs in the SDK vs your app โ Architecture.
- Configure persistence and signing policy โ Keys and Storage.
- Build the SDKs locally โ Mobile Wallet Development Guide.
Last updated on September 29, 2026
