---
title: "One SDK, Multiple Platforms: Introducing the Auth0 SDK for Kotlin Multiplatform"
description: "Auth0 released its official Kotlin Multiplatform SDK for Android and iOS, enabling unified authentication logic in shared common code. Developers write login, logout, token management, and direct API calls once in commonMain using Kotlin suspend functions and a sealed Result type for exhaustive error handling. Native security is maintained through platform-specific implementations: Android uses Keystore-backed DataStore and Custom Tabs, iOS uses Keychain and ASWebAuthenticationSession, with Swift async/await interop via SKIE. The SDK is available on Maven Central as com.auth0.kmp:auth0:1.0.0-beta.1 as a single artifact or separate modules, requiring Kotlin 2.3.21, Android minSdk 24, and iOS 14.0+. It includes a Credentials Manager for token storage and automatic renewal, and supports advanced features including WebAuthn passkeys, DPoP token binding, custom storage, and configurable retry with fixed or exponential backoff."
---

# One SDK, Multiple Platforms: Introducing the Auth0 SDK for Kotlin Multiplatform

[Auth0](https://yomu.fyi/company/auth0) · Prince Mathew · Oct 14, 2026

**Type:** Announcement

## Summary

Auth0 released its official Kotlin Multiplatform SDK for Android and iOS, enabling unified authentication logic in shared common code. Developers write login, logout, token management, and direct API calls once in commonMain using Kotlin suspend functions and a sealed Result type for exhaustive error handling. Native security is maintained through platform-specific implementations: Android uses Keystore-backed DataStore and Custom Tabs, iOS uses Keychain and ASWebAuthenticationSession, with Swift async/await interop via SKIE. The SDK is available on Maven Central as com.auth0.kmp:auth0:1.0.0-beta.1 as a single artifact or separate modules, requiring Kotlin 2.3.21, Android minSdk 24, and iOS 14.0+. It includes a Credentials Manager for token storage and automatic renewal, and supports advanced features including WebAuthn passkeys, DPoP token binding, custom storage, and configurable retry with fixed or exponential backoff.

## Context

Kotlin Multiplatform developers previously had to create and maintain custom authentication wrappers for each platform, causing extra overhead. Auth0 now offers an official SDK that eliminates this duplication by providing shared authentication code in commonMain while using native APIs for security and browser interactions.

## Approach / What changed

The SDK provides a unified Kotlin API in the commonMain source set for authentication operations such as login, logout, token management, and direct API calls. It uses platform-specific native implementations for secure credential storage (Keystore on Android, Keychain on iOS) and browser-based login (Custom Tabs on Android, ASWebAuthenticationSession on iOS). The API returns sealed Result types for exhaustive error handling and is interoperable with Swift via SKIE to provide async/await and exhaustive switch in iOS code. Installation is via Maven Central dependency, with optional modular use of individual feature artifacts.

## Takeaways

- Write authentication logic once in commonMain using Kotlin suspend functions and sealed Result types, sharing login, logout, token management, and direct API calls across Android and iOS without per-platform wrappers.
- Native security is maintained: Android uses Keystore-backed DataStore and Custom Tabs for login, iOS uses Keychain and ASWebAuthenticationSession, ensuring tokens are stored securely and browser interactions are native.
- The SDK supports advanced features including WebAuthn passkeys, DPoP sender-constrained tokens, custom credential stores, and configurable retry with fixed or exponential backoff for API requests.

## FAQ

### What are the minimum requirements for the Auth0 KMP SDK?

You need Kotlin 2.3.21, Android minSdk 24 or higher, and iOS 14.0 or higher to use the SDK.

### How do I install the SDK?

Add the dependency com.auth0.kmp:auth0:1.0.0-beta.1 in your shared module's commonMain dependencies in build.gradle.kts. Alternatively, you can depend on individual feature modules such as auth0-webauth or auth0-credentials.

### How does the SDK handle secure token storage?

On Android it uses a Keystore-backed encrypted DataStore, and on iOS it uses the Keychain. The Credentials Manager automatically renews expired tokens using the refresh token when getCredentials() is called.

**Tags:** [Android](https://yomu.fyi/topic/android), [Auth0](https://yomu.fyi/topic/auth0), [Authentication](https://yomu.fyi/topic/authentication), [iOS](https://yomu.fyi/topic/ios), [Kotlin Multiplatform](https://yomu.fyi/topic/kotlin-multiplatform)

- Source: [Auth0](https://auth0.com/blog/introducing-the-auth0-sdk-for-kotlin-multiplatform)
- Source URL: https://auth0.com/blog/introducing-the-auth0-sdk-for-kotlin-multiplatform
- Ingested by Yomu: 2026-10-14T15:00:11.260Z

[Read original post](https://auth0.com/blog/introducing-the-auth0-sdk-for-kotlin-multiplatform)
