Native iOS & Android overview

Who this section is for

This section is for apps written directly in Kotlin or Swift, with no React Native layer. If your app is built with React Native, you want the React Native section instead: it ships the same embedded wallet as an npm package with TypeScript types, and pairs with the wavelength-react hooks.

What the native SDK is

The native SDK lives in the wavelength-mobile repository. It provides idiomatic wrappers over the same gomobile-compiled wallet daemon that powers the React Native package:

  • android/walletkit: a Kotlin library exposing suspend functions, a Flow for wallet activity, and typed models.
  • ios/WalletKit: a Swift library built as an actor with async functions, an AsyncThrowingStream for activity, and Codable models.

Both wrap the Wavewalletdk bindings (Wavewalletdk.aar on Android, Wavewalletdk.xcframework on iOS) that the wavelength repo builds and publishes with each release. The whole wallet daemon runs inside your app’s process: no separate daemon, no open network port, and your users keep sole custody of their keys. See Architecture for how that works.

The repo also contains a sample app per platform (Jetpack Compose on Android, SwiftUI on iOS) that drives the wrappers end to end.

Native or React Native?

Choose the native SDK when:

  • You have an existing Kotlin or Swift app and do not want to introduce a React Native dependency.
  • You want platform-native concurrency idioms: Kotlin coroutines and Flow, Swift async/await and AsyncThrowingStream.

Choose React Native when:

  • You share a TypeScript codebase across platforms, or your team lives in the React ecosystem.
  • You want the wavelength-react hooks and the shared WalletEngine state layer.

Both paths embed the same daemon and speak the same wallet API, so the concepts, guides, and API documentation on this site apply to either.

What lives where

This site owns the stable material: this overview, the architecture of the embedded daemon, and a quickstart that gets a wallet created and synced. Everything that moves with upstream releases stays canonical in the wavelength-mobile repo:

  • API guide: every wallet operation with Kotlin and Swift side by side.
  • Android workflow: toolchain setup, building the bindings, running the sample app.
  • Signet setup: endpoints and network notes for running against signet.
  • Full method list: the complete gomobile facade surface, documented in the wavelength repo.