Kotlin SDK
At launchThe Kotlin SDK brings the same embedded ceremony to Android: enroll a phone, receive challenges, and sign approvals with keys held in the hardware-backed Keystore (StrongBox where the device has it), over the same mutual-TLS gRPC. It is published at launch, with the Android app; this page then mirrors the Swift guide call for call. Free under Apache 2.0.
Who this is for: the Android engineer embedding Ydentifi. The design is settled and the wire protocol is shared with iOS; what remains is the Android build itself. Until then, this page records what to expect and where Android differs from Swift.
The Android authenticator and the Kotlin SDK are published at launch. This page shows the shape of the Android side now; it becomes the full guide, mirroring Swift, when the package is published. Nothing below is a commitment to an API name — the concepts are settled, the exact symbols land with the code.
What this page will cover#
The Android guide will follow the Swift one step for step — the same four calls, the same order.
Add the SDK from Maven Central with one Gradle coordinate; it supports Android 9 (API level 28) and later.
Describe the onboarding + gateway endpoints and the trust roots, then build the device handle — the Kotlin analogue of YdentifiTransportConfig.
Decode the enrollment QR, run begin/complete enrollment, and promote the issued certificate into the mTLS identity.
Fetch a challenge by ID, require a BiometricPrompt before the signature, and submit the signed outcome.
Open the challenge stream over the direct gRPC connection — no Firebase Cloud Messaging in the path, the Android mirror of the iOS no-APNs design.
One typed error surface, matching the Swift error model case for case.
Same protocol, Android primitives#
The two SDKs speak the identical wire protocol and compute byte-identical signed payloads. What changes is the platform hardware each one binds to:
| On iOS (shipped) | On Android (planned) |
|---|---|
| Secure Enclave | Keystore + StrongBox |
| App Attest | Play Integrity API |
| Face ID / Touch ID (LAContext) | BiometricPrompt |
| Swift Package Manager | Maven Central / Gradle |
| DocC reference | KDoc (Dokka) |
Both SDKs enroll, sign, and stream against the same device-facing gateway with the same canonical byte formats — a server cannot tell an iOS client from an Android one except by the platform attestation it presents. See Device-facing gRPC for the surface underneath both.
Full reference#
When the package ships, its complete per-symbol reference — generated from source with Dokka — will live at Kotlin SDK API referenceAt launch, the Android counterpart to the Swift DocC reference.