Skip to main content
The zkTLS SDK is in preview. Partner access, credentials and the test configuration are by request through pesapay.xyz.
The SDK is one Rust core, shipped as a Swift package for iOS and a Kotlin library for Android. It runs the login, the capture, the proof and the claim check on the phone.

Six verbs

The facade is ZktlsClient, with the same six verbs on both platforms:

Support

There is no Expo module, React Native bridge or Flutter plugin. On a cross-platform framework, bind the SDK through your framework’s native-module mechanism: six functions and three opaque objects.

What you need from us

  • Your app credential.
  • The profile and policy IDs for what you want to prove.
  • The front door URL (baseUrl).
  • The trust bundle URL and the operator key to pin.
  • The policy bundle URL and the digest to pin.

Two rules

  1. The witness never leaves the SDK. capture returns an opaque handle and prove consumes it. No API gives you the bytes, and a handle proves once.
  2. The SDK never retries a failed capture. If a capture fails before the reply is frozen, that session is over. Call capture again in a new session. Resuming would reuse a secret.

Integration checklist

1

Decide

Your minimum OS, how you hash your user ID into userIdHash (never the raw ID), and how you make a new idempotencyKey for every session.
2

Integrate

One ZktlsClient per session, one session at a time, and a lifecycle object begun after login returns. Map every error to a message, with no automatic retry.
3

Verify on your backend

Send claim.encoded to your backend and verify it there. See Backend verification.
4

Test

A real iPhone at your minimum iOS, and a mid-range and a low-end Android phone. Decline the disclosure, close the login page, background the app, switch Wi-Fi to cellular, and cancel mid-proof. Each must end cleanly.
5

Submit to the stores

Add the SDK’s privacy answers, your export-compliance answer, App Review notes with a demo account, and the SDK’s open-source notices. Confirm you may access the account on the user’s behalf under the provider’s terms (Apple guideline 5.2.2).

iOS

Swift Package Manager, CocoaPods, a full session.

Android

Maven Central, a full session, the foreground service.