Kin Stellar SDK — Initial Draft

Tanya Rofman
2 min readJan 18, 2018

--

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:

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

Acceptance criteria

  1. The library contains all Stellar account related functionality needed
  2. Kin clients can pull the library by dependency
  3. The library is well documented, contains sample application and test suite
  4. 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:

  1. Init with seed
  2. Connect to Horizon endpoint
  3. Get account address
  4. Get account balance (XLM and KIN)
  5. Send transactions (XLM and KIN): recipient account exists, trustline of asset exists
  6. Support several ‘Channel accounts’ (for the onboarding flow)
  7. Verify content of signed transaction (for the onboarding flow)
  8. Verify/monitor transactions status with callback
  9. Get transaction data
  10. Unit tests
  11. Integration tests
  12. Code coverage
  13. Performance and memory tests
  14. Security audit
  15. Static code analysis
  16. Usage examples
  17. Documentation

Acceptance Criteria

  1. Running tests on Stellar network
  2. Code coverage
  3. Target latency
  4. 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

  1. Deploy Horizon + Core nodes
  2. Monitoring
  3. 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!

--

--

Tanya Rofman

Live and breathe Product & UX | Product @ Guidde | Ex PM @ Travelier Group | Ex PM @ OpenWeb | Practice yoga and wine 🧘🏻‍♀️ Learner of things 🤓