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:
- The SDK itself — the
InterstellarSdkpublic 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. - The documentation — a complete public API reference (every public member documented) plus per-platform pinpad/VCA integration guides.
- 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 part | Where |
| SDK overview, architecture and scope | Interstellar SDK — Overview |
| Android — integration overview & entry point | Android SDK — Overview & Integration |
| Android — full public API reference | Android SDK — API Reference |
| Android — VCA pinpad integration | Android — VCA Pinpad Integration |
| iOS — integration overview & entry point | iOS SDK — Overview & Integration |
| iOS — full public API reference | iOS SDK — API Reference |
| iOS — VCA pinpad integration | iOS — 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 SDK | iOS 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
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
- iOS Port — the iOS wallet app and the iOS SDK.
- App Distribution — Android & iOS — how to install the app.
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.