Kin Stellar SDK — Initial Draft
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!