Round 9

Kotlin Stellar SDK

Interact with Stellar using idiomatic Kotlin and share code across platforms.
$
11,500
worth of XLM on the day of pay-out*
worth of XLM on the day after voting*
Website

The Multiplatform Kotlin Stellar SDK will allow Kotlin developers to interact with the Stellar network in a pleasant way. Additionally, using Kotlin Multiplatform developers will be able to use the SDK to share code between multiple targets like Android and Ios.

In operation since

May 2021

Based In

The Netherlands

Stage

Development

Products & Services

Kotlin Multiplatform allows developers to share code between mobile, desktop and browser. A popular use of Kotlin Multiplatform is to share code between Ios and Android or between the backend, Ios and Android. 

I am planning to create a multiplatform Kotlin SDK for Stellar. This will allow Stellar developers to share code between different platforms

Kotlin can run on the JVM, so developers can use the Java Stellar SDK. However, using Java libraries in Kotlin can be weird or feel out of place. Creating a Stellar SDK specifically for Kotlin will improve the development experience of Kotlin developers.

No items found.

Goal & Budget

In six months: - The SDK will be able to query all of Horizon's endpoints. - The SDK will support creating and submitting transactions. - The SDK will not be fully tested.

Currently, I am working on the project in my free time. Receiving a grant would allow me to allocate more time to the project.

Our Request

I think it is hard to create a budget for this project, but I will try to create a rough budget.  I believe that this budget is very conservative, but I'd rather apply again later if it becomes necessary than ask for a larger amount.

Horizon endpoints -> $1500
- From my experience implementing the Accounts endpoint, i don't think this will require much effort.

Implementing libraries that aren't available for Kotlin Multiplatform -> $5000
- Kotlin Multiplatform is a new technology, many libraries aren't available for it. For example, there are no libraries available that support the HAL format and also no libraries that support the cryptographic functions needed.

Creating, serializing and deserializing transactions -> $5000
- Aside from implementing the logic that allows for creating transactions, I believe most of the time will be spent figuring out the XDR format since there isn't a library for it.

Progress so far

I am currently experimenting with the design of the SDK. Currently, the SDK can only query the accounts Horizon endpoint.

PROBLEM & SOLUTION

Kotlin is a relatively new programming language that can be run on the JVM, browser, Android and Ios. Since Kotlin became Google’s preferred language for Android app development, more and more developers have started to use it. However, currently there is no Stellar SDK specifically for Kotlin. In most cases developers can use the Java Stellar SDK instead. However, using Java libraries in Kotlin is often not ergonomic.

Aside from being popular with Android developers, Kotlin is also popular with developers that have to develop apps for multiple platforms or share code between the backend and frontend. For example, if a company has an Ios and Android app, they can write their core logic in Kotlin and create a separate Ios and Android UI. However, currently it is not possible to share code involving Stellar since there is not a Multiplatform Kotlin Stellar SDK.

To solve these two problems, I am creating a Multiplatform Kotlin Stellar SDK. It will have an api that is less cumbersome to use than the api of the Java Stellar SDK. Currently I am planning to support The JVM, Javascript and Native targets.

REVENUE MODEL

The SDK will be a free open source project.

THREATS AND OPPORTUNITIES

Kotlin Multiplatform projects rely on other Multiplatform projects. For example, to query horizon the SDK relies on a Multiplatform http library. If there are no Multiplatform libraries for something the SDK needs, I will have to create my own. Most of the time this will not be a big problem, since Multiplatform libraries can be created from platform specific libraries. However, it would take development time away from the SDK.

No items found.

Links

PROBLEM & SOLUTION

Kotlin is a relatively new programming language that can be run on the JVM, browser, Android and Ios. Since Kotlin became Google’s preferred language for Android app development, more and more developers have started to use it. However, currently there is no Stellar SDK specifically for Kotlin. In most cases developers can use the Java Stellar SDK instead. However, using Java libraries in Kotlin is often not ergonomic.

Aside from being popular with Android developers, Kotlin is also popular with developers that have to develop apps for multiple platforms or share code between the backend and frontend. For example, if a company has an Ios and Android app, they can write their core logic in Kotlin and create a separate Ios and Android UI. However, currently it is not possible to share code involving Stellar since there is not a Multiplatform Kotlin Stellar SDK.

To solve these two problems, I am creating a Multiplatform Kotlin Stellar SDK. It will have an api that is less cumbersome to use than the api of the Java Stellar SDK. Currently I am planning to support The JVM, Javascript and Native targets.

REVENUE MODEL

The SDK will be a free open source project.

THREATS AND OPPORTUNITIES

Kotlin Multiplatform projects rely on other Multiplatform projects. For example, to query horizon the SDK relies on a Multiplatform http library. If there are no Multiplatform libraries for something the SDK needs, I will have to create my own. Most of the time this will not be a big problem, since Multiplatform libraries can be created from platform specific libraries. However, it would take development time away from the SDK.

No items found.

Links

About the Team

Rahim Klabér Creator of the project I am a MSc Computer Science student who is interested in Blockchain and Distributed systems. I am particularly interested in Stellar. LinkedIn

*The USD valuation of the award in XLM is calculated using the CF Stellar Lumens-Dollar Settlement Price on September 27, 2021 as administered, maintained, and reported by the cryptocurrency index provider CF Benchmarks Ltd. (using the ticker “XLMUSD_RR”) (available at https://www.cfbenchmarks.com/indices/XLMUSD_RR)
* The USD valuation of the award in XLM is calculated using the CF Stellar Lumens-Dollar Settlement Price on the date of transfer as administered, maintained, and reported by the cryptocurrency index provider CF Benchmarks Ltd. (using the ticker “XLMUSD_RR”) (available at https://www.cfbenchmarks.com/indices/XLMUSD_RR)
*The USD valuation of the award in XLM is calculated using the CF Stellar Lumens-Dollar Settlement Price on December 16, 2021 as administered, maintained, and reported by the cryptocurrency index provider CF Benchmarks Ltd. (using the ticker “XLMUSD_RR”) (available at https://www.cfbenchmarks.com/indices/XLMUSD_RR)