
Modular toolkit for digital identity wallets and verifiers, offering core utilities and an OpenID Verifiable Presentations over BLE transport implementation, plus sample wallet and verifier apps.
The Kapun SDK is a Kotlin Multiplatform toolkit for building digital-identity wallets and verifiers on Android and iOS. It includes credential formats, DCQL, issuance, presentation, wallet, cryptography, trust, proximity, and visualization modules.
The repository also contains sample Android wallet and verifier applications and an iOS sample. The samples are demonstrations and may require application-specific wallet or backend configuration.
The implementations follow the relevant OpenID4VCI, OpenID4VP, ISO/IEC 18013-5, SD-JWT VC, DCQL, and Open Badges specifications.
The project is actively evolving. Check the releases for published versions; APIs and implementation details may change between releases.
This project evolved from the former Heidi SDK and is now maintained as the Kapun SDK under the KapunSDK organization. Older documentation and package references may still use the Heidi name.
./gradlew :examples:android-wallet:assembleDebug
./gradlew :examples:android-wallet:installDebug
./gradlew :examples:android-verifier:assembleDebug
./gradlew :examples:android-verifier:installDebugOpen sample-ios-kapun.xcodeproj in Xcode, select a simulator or device, and run the sample-ios-kapun target. Device builds require your own provisioning profile. The sample requires iOS 16 or newer.
If the build needs Android SDK information, set ANDROID_HOME and create a root local.properties file containing:
sdk.dir=/path/to/your/android/sdkThe sample sources are available in examples/android-wallet, examples/android-verifier, and sample-ios-kapun.xcodeproj.
Released artifacts are available from Maven Central. Add mavenCentral() to your repositories and depend on the module you need, for example:
dependencies {
implementation("org.kapunsdk:kapun-wallet:1.0.0")
}Replace 1.0.0 with the release you want.
To publish JVM artifacts to your local Maven repository:
./gradlew publishJvmPublicationToMavenLocal -PARTIFACT_VERSION=1.0.0-LOCALThe resulting JVM coordinates use the org.kapunsdk group, for example org.kapunsdk:kapun-trust-jvm:1.0.0-LOCAL. Publishing all targets requires the corresponding Rust toolchains. Release signing is disabled by default.
Bug reports and feature requests are welcome in the issue tracker. See CONTRIBUTING.md before opening a pull request. Pull requests should include tests or a short explanation when tests are not applicable.
Please report security vulnerabilities privately according to the security policy. By participating in this project, you agree to follow the Code of Conduct.
This project is licensed under the Apache License 2.0. See LICENSE.
The Kapun SDK is a Kotlin Multiplatform toolkit for building digital-identity wallets and verifiers on Android and iOS. It includes credential formats, DCQL, issuance, presentation, wallet, cryptography, trust, proximity, and visualization modules.
The repository also contains sample Android wallet and verifier applications and an iOS sample. The samples are demonstrations and may require application-specific wallet or backend configuration.
The implementations follow the relevant OpenID4VCI, OpenID4VP, ISO/IEC 18013-5, SD-JWT VC, DCQL, and Open Badges specifications.
The project is actively evolving. Check the releases for published versions; APIs and implementation details may change between releases.
This project evolved from the former Heidi SDK and is now maintained as the Kapun SDK under the KapunSDK organization. Older documentation and package references may still use the Heidi name.
./gradlew :examples:android-wallet:assembleDebug
./gradlew :examples:android-wallet:installDebug
./gradlew :examples:android-verifier:assembleDebug
./gradlew :examples:android-verifier:installDebugOpen sample-ios-kapun.xcodeproj in Xcode, select a simulator or device, and run the sample-ios-kapun target. Device builds require your own provisioning profile. The sample requires iOS 16 or newer.
If the build needs Android SDK information, set ANDROID_HOME and create a root local.properties file containing:
sdk.dir=/path/to/your/android/sdkThe sample sources are available in examples/android-wallet, examples/android-verifier, and sample-ios-kapun.xcodeproj.
Released artifacts are available from Maven Central. Add mavenCentral() to your repositories and depend on the module you need, for example:
dependencies {
implementation("org.kapunsdk:kapun-wallet:1.0.0")
}Replace 1.0.0 with the release you want.
To publish JVM artifacts to your local Maven repository:
./gradlew publishJvmPublicationToMavenLocal -PARTIFACT_VERSION=1.0.0-LOCALThe resulting JVM coordinates use the org.kapunsdk group, for example org.kapunsdk:kapun-trust-jvm:1.0.0-LOCAL. Publishing all targets requires the corresponding Rust toolchains. Release signing is disabled by default.
Bug reports and feature requests are welcome in the issue tracker. See CONTRIBUTING.md before opening a pull request. Pull requests should include tests or a short explanation when tests are not applicable.
Please report security vulnerabilities privately according to the security policy. By participating in this project, you agree to follow the Code of Conduct.
This project is licensed under the Apache License 2.0. See LICENSE.