v2.4.0-pre.1 · Pre-release · by request

Official TOKEN PAY ID SDKs

Fully native authentication widgets for every platform. No WebView, no browser redirect. OAuth 2.0 + PKCE S256, TLS certificate pinning, Keychain / EncryptedSharedPreferences, Device Flow for TV/watch/IoT.

Pre-release — the SDKs are distributed as source releases under NDA for vetted partners. Maven Central / SwiftPM registry publication is planned for GA. Request access at [email protected] and include your organisation, intended use, and expected volume.

Available SDKs

Platform matrix

PlatformSDKMin OSNative UIStatus
Android (phone/tablet)KotlinAndroid 7.0 (API 24)Jetpack ComposeAvailable
Android TVKotlin (Device Flow)Android 7.0 (API 24)Jetpack Compose LeanbackAvailable
Wear OSKotlin (Device Flow)Wear OS 3 (API 30)Compose for WearAvailable
iOS / iPadOSSwiftiOS 15SwiftUIAvailable
macOSSwiftmacOS 12SwiftUIAvailable
tvOSSwift (Device Flow)tvOS 15SwiftUIAvailable
watchOSSwift (Device Flow)watchOS 8SwiftUIAvailable
visionOSSwiftvisionOS 1SwiftUIAvailable
Windows 10/11.NET 8 (WinUI 3)Windows 10 1809WinUI 3Q2 2026
Linux DesktopC++ (Qt 6)Qt 6.4Qt QMLQ2 2026
FlutterDart package wrapping nativeFlutter 3.16Hosted native viewQ2 2026
React NativeTS wrapperRN 0.73Native fabric componentQ2 2026
Tizen / webOS / HarmonyOSDevice Flow (raw HTTP)-Partner-providedDevice Flow only
Xbox / PlayStation / SwitchDevice Flow (raw HTTP)-Partner-providedDevice Flow only

Install — Android (Kotlin)

Unpack the source release into your project and include it as a Gradle module:

# Download the source release
curl -L -O https://tokenpay.space/sdk/android/tokenpay-id-android-2.4.0-pre.1.tar.gz

# Verify checksum
sha256sum -c tokenpay-id-android-2.4.0-pre.1.tar.gz.sha256

# Unpack inside your project root
tar -xzf tokenpay-id-android-2.4.0-pre.1.tar.gz

# Reference in settings.gradle.kts
include(":tokenpay-id-sdk")
project(":tokenpay-id-sdk").projectDir = file("sdk/android/tokenpay-id-sdk")

# In app/build.gradle.kts
dependencies {
    implementation(project(":tokenpay-id-sdk"))
}

Use in Compose:

import space.tokenpay.id.TpidAuth
import space.tokenpay.id.TpidConfig
import space.tokenpay.id.TpidLoginButton

// In Application.onCreate():
TpidAuth.initialize(
    context = applicationContext,
    config = TpidConfig(
        clientId = "tpid_pk_YOUR_KEY",
        redirectUri = "com.cupol.vpn:/auth/callback",
    )
)

// In Compose:
TpidLoginButton { result -> handle(result) }

Install — Swift (iOS/macOS/tvOS/watchOS/visionOS)

Local Swift Package Manager:

# Download the source release
curl -L -O https://tokenpay.space/sdk/swift/tokenpay-id-swift-2.4.0-pre.1.tar.gz
shasum -a 256 -c tokenpay-id-swift-2.4.0-pre.1.tar.gz.sha256
tar -xzf tokenpay-id-swift-2.4.0-pre.1.tar.gz

# In Xcode: File → Add Package Dependencies… → Add Local…
# select the unpacked directory and add the TokenPayID product to your target.

Use with SwiftUI:

import SwiftUI
import TokenPayID

@main
struct MyApp: App {
    init() {
        TpidAuth.shared.initialize(config: .init(
            clientId: "tpid_pk_YOUR_KEY",
            redirectURI: URL(string: "com.cupol.vpn:/auth/callback")!
        ))
    }
    var body: some Scene { WindowGroup { ContentView() } }
}

struct ContentView: View {
    var body: some View {
        TpidLoginButton { result in handle(result) }
    }
}

Signed commits & checksums

Every tarball ships with a .sha256 file alongside it. Current release checksums:

FileSizeSHA-256
Loading…

What's in each SDK

Security

Full threat model: tokenpay.space/docs#native-widget-security.

Support

Partner support: [email protected]
Security reports: [email protected]
Status: status.tokenpay.space