
Smart account support for the Kotlin Multiplatform (KMP) Stellar SDK. The project adds passkey-based wallet creation, signer management, context rules, policy enforcement, and token transfers for OpenZeppelin smart account contracts on Stellar. It targets Android, iOS, macOS, and web using native platform APIs for WebAuthn and secure storage. The SDK also includes a multiplatform demo app and documentation covering usage, platform setup, onboarding concepts, and a full API reference.
$14.0K
Soneso maintains four production Stellar SDKs: Flutter (Dart), iOS/macOS (Swift), PHP, and Kotlin Multiplatform. The KMP Stellar SDK covers transaction building, Horizon, Soroban RPC, a high-level ContractClient, and support for multiple SEPs. It runs on JVM (Android, server), iOS, macOS, and JavaScript (browser, Node.js). The SDKs are used by third-party developers and applications in the Stellar ecosystem.
Core SDK layer and Android support:
- Core smart account primitives: signer types, typed error hierarchy, secp256r1 signature normalization (DER to compact with low-S), public key extraction from WebAuthn COSE keys, contract address derivation
- Configurable deployer keypair with default deployer
- RelayerClient and IndexerClient infrastructure clients
- OpenZeppelin smart account kit: wallet creation (passkey registration + contract deployment), wallet connection (session restore + fresh authentication), token transfers, arbitrary Soroban contract invocations, signer management
- Relayer-based and direct RPC transaction submission
- Android WebAuthn provider (Credential Manager) and secure storage (EncryptedSharedPreferences)
- In-memory storage adapter for testing
- Unit tests for core logic (signer encoding, address derivation, signature normalization, SCVal construction)
How to measure completion:
- Public source code on GitHub
- Passing unit tests
- Video demo of wallet creation, connection, and token transfer on an Android device
Apple platforms, web, and advanced features
- iOS and macOS WebAuthn provider (AuthenticationServices) and Keychain storage
- Web WebAuthn provider (navigator.credentials) and IndexedDB storage
- Non-encrypted storage adapters (UserDefaults on Apple, localStorage on web) for development and testing
- Context rule management (create, update, remove rules per operation type)
- Policy enforcement (simple threshold, weighted threshold, spending limit)
- ExternalWalletAdapter interface for delegated signers
- Multi-signer workflows
- Credential management with on-chain sync
- Event system for lifecycle tracking
How to measure completion
- Source code on GitHub
- Video demos on iOS, macOS, and web showing context rules, policies, and multi-signer flows
- Passing unit tests
Demo app, documentation, and testing
- Multiplatform demo app (Android, iOS, macOS, web) with wallet creation, connection, transfer, context rules, signer management, and policy contract reference screens
- Usage guide with configuration and code examples
- Per-platform WebAuthn setup guides (Android, iOS, macOS, web)
- Onboarding guide on smart account concepts
- Full API reference
- Cross-platform manual testing on physical devices
How to measure completion
- Demo app running on all four platforms (web accessible via URL, Android, iOS/macOS via video)
- Published documentation on GitHub
- Cross-platform testing evidence (video of creating passkey on one platform, connecting on another)
I have been a Stellar Developer since 2017, specialized on the implementation and maintenance of Stellar SDKs. Main developer and maintainer of the iOS, Flutter and PHP Stellar SDKs.

