This is an INITIAL DRAFT of an MVP for Kin Stellar SDK. It is an ongoing process and is constantly updated.

As many of you know our initial product launch (IPLv2) at Kik was built on the Ethereum network. We faced many issues, such as latency in transactions, high costs and more. We already talked about needing a faster, cheaper, and more robust blockchain than what is available today, and our thoughts regarding the Stellar network.

Please see the following initial Kin SDK that will be built on Stellar network. You can check our work here: https://github.com/kinfoundation

Client SDK — iOS and Android

Purpose

To build a Kin SDK that can create and manage a KIN account on the Stellar network.

The client SDK should provide the following functionality:

Manage keypair (address and seed): create keypair, sign transaction, store securely on device , delete account (clear keypair) Connect to Horizon endpoint that will be provided by Kin infrastructure Support account creation on Stellar network — actual implementation TBD. Onboarding funnel (create account, add trustline, send KIN) Get balance Send transaction (KIN) Error handling and logging callbacks/handlers Documentation for the API Create sample application — with implementation of the onboarding flow Unit tests Integration tests with Stellar testnet Performance and memory tests CI — continuous integration on Travis/CircleCI Cocoapods/AAR Code coverage Security audit Static code analysis

Acceptance criteria

The library contains all Stellar account related functionality needed Kin clients can pull the library by dependency The library is well documented, contains sample application and test suite Sample app fully QA tested

Server SDK (Python)

Purpose

Create SDK that encapsulate server side communication with blockchain for KIN usage.

The Python SDK should provide the following functionality:

Init with seed Connect to Horizon endpoint Get account address Get account balance (XLM and KIN) Send transactions (XLM and KIN): recipient account exists, trustline of asset exists Support several ‘Channel accounts’ (for the onboarding flow) Verify content of signed transaction (for the onboarding flow) Verify/monitor transactions status with callback Get transaction data Unit tests Integration tests Code coverage Performance and memory tests Security audit Static code analysis Usage examples Documentation

Acceptance Criteria

Running tests on Stellar network Code coverage Target latency Target throughput

Stellar Stress Tests

Three iterations of stress tests, checking the performance of 10 operations per second, 50 operations per second and 1,000 operations per second (Stellar’s claimed max).

Infrastructure Deliverables

Deploy Horizon + Core nodes Monitoring Alerting

As a short summary to this post — we wanted to share our thought process when defining the criteria for both client and server SDK that will be built on the Stellar network.

Therefore, all feedback is not only welcomed, but encouraged!