AuthenSeeDocs

React Native

Native mobile integration with on-device ZK proof generation.

React Native Integration

AuthenSee's primary target platform is React Native. The SDK uses a JSI bridge to a native Rust prover (via uniffi bindings) for fast on-device ZK proof generation.

Note: The native prover is under active development. This guide will be updated with complete installation and configuration steps as the native module stabilizes. The core SDK API described in the SDK documentation is stable and ready for integration planning.

Platform requirements

PlatformMinimum version
React Native0.72+ (New Architecture supported)
iOS15.0+
AndroidAPI 26+

Installation

React Native runtime packages are not a public provider integration surface yet. Use hosted flows from your provider backend today; this guide will be updated when first-party mobile runtime distribution is ready.

For iOS, install CocoaPods dependencies:

cd ios && pod install && cd ..

Planned architecture

The React Native SDK consists of these layers:

  1. TypeScript API -- The AuthenSee class and all types described in the SDK overview.
  2. JSI bridge -- Direct JavaScript-to-native communication (no legacy bridge). Provides low-latency access to the native prover.
  3. Native Rust prover -- barretenberg proving engine compiled for iOS (Swift via uniffi) and Android (Kotlin via uniffi). Generates ZK proofs on-device.
  4. Secure storage -- iOS Keychain (kSecAttrAccessibleWhenUnlockedThisDeviceOnly) and Android Keystore (hardware-backed when available) for enrollment data.

Basic usage (API preview)

The provider-facing mobile integration should launch a hosted flow and exchange the result code server-side:

// Your backend creates a hosted session with @rebellion-systems/authensee-sdk.
// Your app opens the returned hostedUrl and your backend exchanges the
// callback authResultCode.

Performance targets

MetricTarget
End-to-end auth timeP50: 5 seconds, P95: 10 seconds
SDK binary size (including circuits)< 15 MB
Integration time< 1 day for experienced RN dev

Device portability

The SDK supports transferring enrolled factors between devices:

// On old device: export identity
const bundle = await AuthenSee.exportIdentity('my-secure-passphrase');
// Transfer bundle via QR code, AirDrop, etc.
 
// On new device: import identity
await AuthenSee.importIdentity(bundle, 'my-secure-passphrase');

The passphrase encrypts the bundle locally. It is never sent to the server.

What's coming

  • Complete native prover module with uniffi bindings
  • Turbo Module support for New Architecture
  • Built-in UI components (bottom sheets, modals) with full theming
  • Multi-device sync via encrypted end-to-end sync
  • Offline proof queuing and automatic submission on reconnect

Check the SDK changelog for the latest updates.

On this page