---
title: SDKs
nav: SDKs
order: 7
---
# SDKs and their status

The same methods and events on every platform: `configure`, `openStore`, `purchase(sku)`, `handle(url)`, `onPurchaseCompleted`, `onPurchaseCanceled`, `onPurchaseFailed`, `onStoreClosed`.

| SDK | Location | Verified on 2026-10-24 (updated after the toolchain install) |
|---|---|---|
| Web / JS | `sdks/web` (`appside/web`) | **Unit tests + real-browser journey** (Orbit Quest uses it: openStore, purchase, return, 40/40 E2E) |
| Node server | `sdks/node` (`@appside/server`) | Unit tests; `getOrder` matched the signed webhook in the browser E2E |
| Python server | `sdks/python` | Unit test (ES256 signature, webhook tamper/age rejection, getOrder) |
| iOS (Swift Package) | `sdks/ios` | Core compiled with `swiftc` and smoke-tested (launch, purchase, result, replay and live rejection). **Not yet**: `swift test` / iOS UI build (needs Xcode) |
| React Native | `sdks/react-native` | JS bridge tests. Native host: source only |
| Android (Kotlin) | `sdks/android` | **Builds with Gradle (JDK 17, Android SDK 35)**, 12 JUnit tests pass, release AAR produced. Not yet: on-device integration test |
| Unity (UPM) | `sdks/unity` | **Source only, not compiled** (no Unity yet) |
| Flutter | `sdks/flutter` | **`flutter analyze` clean, 12 tests pass** (Flutter 3.47). Not yet: native host build on a device |

## Download and install

Every SDK is version 0.1.0 and works in TEST mode. The files are built from the same source as the table above on every release. Packages that are not yet verified on their platform are marked **preview**: try them, and tell us what breaks.

| SDK | Download | Install |
|---|---|---|
| Web / JS | [appside-web-0.1.0.tgz](/docs/downloads/sdks/appside-web-0.1.0.tgz) | `npm install https://appside.build/docs/downloads/sdks/appside-web-0.1.0.tgz`, then `import { Appside } from 'appside/web'` |
| Node server | [appside-node-0.1.0.tgz](/docs/downloads/sdks/appside-node-0.1.0.tgz) | `npm install https://appside.build/docs/downloads/sdks/appside-node-0.1.0.tgz`, then `import { Appside } from '@appside/server'` |
| Python server | [appside-python-0.1.0.tar.gz](/docs/downloads/sdks/appside-python-0.1.0.tar.gz) | `pip install https://appside.build/docs/downloads/sdks/appside-python-0.1.0.tar.gz`, then `from appside import Appside` |
| Android (Kotlin) | [appside-android-0.1.0.aar](/docs/downloads/sdks/appside-android-0.1.0.aar) · [source](/docs/downloads/sdks/appside-android-source-0.1.0.tar.gz) | Put the AAR in `app/libs/` and add `implementation(files("libs/appside-android-0.1.0.aar"))` and `implementation("androidx.browser:browser:1.8.0")` |
| iOS (Swift Package) · preview | [appside-ios-0.1.0.tar.gz](/docs/downloads/sdks/appside-ios-0.1.0.tar.gz) | Unpack, then in Xcode choose File › Add Package Dependencies › Add Local and pick `AppsideSDK` |
| Flutter · preview | [appside-flutter-0.1.0.tar.gz](/docs/downloads/sdks/appside-flutter-0.1.0.tar.gz) | Unpack next to your app and add `appside: {path: ../appside}` under `dependencies` in `pubspec.yaml` |
| React Native · preview | [appside-react-native-0.1.0.tgz](/docs/downloads/sdks/appside-react-native-0.1.0.tgz) | `npm install https://appside.build/docs/downloads/sdks/appside-react-native-0.1.0.tgz` |
| Unity (UPM) · preview | [appside-unity-0.1.0.tgz](/docs/downloads/sdks/appside-unity-0.1.0.tgz) | Unity › Window › Package Manager › + › Add package from tarball |

Checksums: [SHA256SUMS.txt](/docs/downloads/sdks/SHA256SUMS.txt).

`PurchaseResult` is `{ status, orderId, state, verified: false }` everywhere: a UI hint. Grant items only from the [webhook](/docs/webhooks/) or `getOrder`.

This table is updated from each SDK's own tests on every release. "Preview source" means the code is written but hasn't been compiled and tested on that platform yet.
