sdk-core

The Wallet SDK: hold and verify verifiable credentials (a mobile driving licence, a national ID card, a competition licence) in your Android app. Everything you call is in com.wallet.*.

Getting started in Android Studio

  1. Unzip android/ from the SDK zip into your project as vendor/wallet-maven/.

  2. In settings.gradle.kts, add maven { url = uri("vendor/wallet-maven") } to the repositories.

  3. In your app's build.gradle.kts, add implementation("com.wallet.sdk:sdk-core:<version>"), and com.wallet.sdk:sdk-ui-compose for the ready-made screens. Click Sync Now.

  4. Create the SDK once, when your app starts:

// A verifier app: accept these issuers, and sign your requests so wallets show your name.
val sdk = Wallet.createVerifier(TrustedIssuers(signedList = issuerList), readerIdentity)

// A wallet app: where credentials come from, and which verifiers to name on the consent sheet.
val sdk = Wallet.createWallet(IssuerConfig(issuerUrl, clientId, redirectUri), TrustedVerifiers(signedList = readerList))

Step-by-step guides: /in-person/ and /wallet/.

The API by task

TaskStart with
Set up the SDKWallet, WalletSdk, TrustedIssuers, TrustedVerifiers, IssuerConfig, ReaderIdentityConfig
Verify in personVerifierClient, VerificationSession, PresentationRequest, RequestPreset, AcceptanceResult
Hold and presentWalletClient, CredentialSummary, CredentialDetail, PresentmentSession, ScannedCode
Check before sharingShareGuard, ShareGuardResult, PendingShare (the face check: module sdk-face)
Document typesDocTypes, CredentialType, CredentialAttribute
Results and errorsSdkResult, SdkError
Ready-made screensmodule sdk-ui-compose

Dependencies

  • Android 8.0 (API 26) or later; JDK 17; Kotlin 2.2; Android Gradle Plugin 8.x.

  • The library declares its own permissions (Bluetooth, camera, NFC); no manifest changes to verify in person.

  • Open-source components included in the SDK are listed, with their licences, in NOTICE in the zip.

Changelog

What changed in each version: /platform/versions/.

The Wallet SDK: hold and verify verifiable credentials (a mobile driving licence, a national ID card, a competition licence) in your Android app. Everything you call is in com.wallet.*.

Getting started in Android Studio

  1. Unzip android/ from the SDK zip into your project as vendor/wallet-maven/.

  2. In settings.gradle.kts, add maven { url = uri("vendor/wallet-maven") } to the repositories.

  3. In your app's build.gradle.kts, add implementation("com.wallet.sdk:sdk-core:<version>"), and com.wallet.sdk:sdk-ui-compose for the ready-made screens. Click Sync Now.

  4. Create the SDK once, when your app starts:

// A verifier app: accept these issuers, and sign your requests so wallets show your name.
val sdk = Wallet.createVerifier(TrustedIssuers(signedList = issuerList), readerIdentity)

// A wallet app: where credentials come from, and which verifiers to name on the consent sheet.
val sdk = Wallet.createWallet(IssuerConfig(issuerUrl, clientId, redirectUri), TrustedVerifiers(signedList = readerList))

Step-by-step guides: /in-person/ and /wallet/.

The API by task

TaskStart with
Set up the SDKWallet, WalletSdk, TrustedIssuers, TrustedVerifiers, IssuerConfig, ReaderIdentityConfig
Verify in personVerifierClient, VerificationSession, PresentationRequest, RequestPreset, AcceptanceResult
Hold and presentWalletClient, CredentialSummary, CredentialDetail, PresentmentSession, ScannedCode
Check before sharingShareGuard, ShareGuardResult, PendingShare (the face check: module sdk-face)
Document typesDocTypes, CredentialType, CredentialAttribute
Results and errorsSdkResult, SdkError
Ready-made screensmodule sdk-ui-compose

Dependencies

  • Android 8.0 (API 26) or later; JDK 17; Kotlin 2.2; Android Gradle Plugin 8.x.

  • The library declares its own permissions (Bluetooth, camera, NFC); no manifest changes to verify in person.

  • Open-source components included in the SDK are listed, with their licences, in NOTICE in the zip.

Changelog

What changed in each version: /platform/versions/.

Packages

Link copied to clipboard
common

The entry point: create one WalletSdk with Wallet.createVerifier, Wallet.createWallet or Wallet.create, and keep it for the app's lifetime.

Link copied to clipboard
common

The two roles: VerifierClient (read and verify a credential in person) and WalletClient (hold, show and present credentials).

Link copied to clipboard
common

Settings: which issuers you accept (TrustedIssuers), which verifiers a wallet names (TrustedVerifiers), where credentials come from (IssuerConfig), who you are to wallets (ReaderIdentityConfig), and a check before sharing (ShareGuard).

Link copied to clipboard
common

What goes in and comes out: requests and presets, results, credential summaries and details, document types, and SdkResult / SdkError.