Skip to main content

Interstellar SDK — Integration Delivered in Milestone 6

Overview​

Milestone 6 delivers the first version of the (semi) public Interstellar SDK for Android and iOS: the mobile wallet technology — secure accounts, policy-gated signing with VCA/PoHI, and secure recovery — packaged as a component that third-party wallet providers and dApps can embed in their own mobile apps.

This delivery covers three inseparable parts:

  1. The SDK itself — the InterstellarSdk public API on Android (Kotlin, gg.interstellar.wallet) and iOS (Swift, InterstellarSdk), both speaking the same uniffi FFI surface to the shared Rust core (Android via committed uniffi-Kotlin bindings; iOS via uniffi-Swift bindings). The two platforms expose the same function names, so an app ports from one to the other without renaming anything.
  2. The documentation — a complete public API reference (every public member documented) plus per-platform pinpad/VCA integration guides.
  3. The integration guide — per-platform getting-started walkthroughs that start from a fresh app in Android Studio / Xcode and end with a screen displaying the root account ID.

The wallet application shipped for this milestone is the reference integration of that SDK: every documented feature is exercised by the app on both platforms.

Documentation map​

Deliverable partWhere
SDK overview, architecture and scopeInterstellar SDK — Overview
Android — integration overview & entry pointAndroid SDK — Overview & Integration
Android — full public API referenceAndroid SDK — API Reference
Android — VCA pinpad integrationAndroid — VCA Pinpad Integration
iOS — integration overview & entry pointiOS SDK — Overview & Integration
iOS — full public API referenceiOS SDK — API Reference
iOS — VCA pinpad integrationiOS — VCA Pinpad Integration
Getting started — Android (fresh app → root account ID screen)Android — Getting Started
Getting started — iOS (fresh app → root account ID screen)iOS — Getting Started
iOS port — the wallet app & the iOS SDKiOS Port
App distribution — Android (Firebase) & iOS (ipa / TestFlight)App Distribution

What the SDK exposes​

  • One entry point per platform (InterstellarSdk.create(...)), producing a fully initialized, registered SDK — no half-initialized state possible.
  • Accounts: root account ID + per-coin client accounts (DOT/SOL/BTC/ETH) with deposit addresses and prefixed display forms.
  • Balances: per-coin and total-USD cached views, refresh APIs with server-reset detection.
  • Transactions: initialization, pending-tx inspection (VCA-required vs auto-sent), pinpad-validated transfer, broadcasted tx hash retrieval, and non-VCA message signing.
  • Recovery: NFC and VCA-token methods, threshold configuration, vouch → ~10-block delay → claim flow.
  • Airdrop campaigns: organizer (create/fund) and user (register/claim, VCA-protected) flows.
  • MoonPay URL signing for on/off-ramp integrations.

The pinpad/VCA orchestration is SDK-owned: the host app only renders the provided pad view when navigateToPinpad fires and keys its "transaction failed" UI on the SDK's explicit showTxFailed flag — the full contract is documented in the pinpad guides above.

Scope & status​

note

The SDK is delivered as a technical preview on top of the private wallet-app-internal repository, pending the final-testnet open-sourcing. It is not public at this time: reviewers/integrators get read access to that repository, and the SDK is published from it as a private artifact — a Maven package on GitHub Packages (Android, roadmap #230) and a GitHub Release asset (iOS, roadmap #231). Both publishing pipelines are implemented and CI-tested; the artifacts are published (Android gg.interstellar.wallet:shared:<version> on GitHub Packages, iOS InterstellarSdk-<version>.zip on the m6-v1 release) — new versions follow each SDK release. Public API surface may still evolve; shared testnet endpoints and test keys are provided on request. See the SDK overview for the complete scope statement.

See also​

The WalletConnect/Reown interoperability delivered in M5 remains testable through the same app and flows — see the M5 documentation and the running tutorial in Local Demo with Docker.