Awesome Open Source
Awesome Open Source

Reactive Crypto

Kotlin CircleCI codecov jitpack ktlint

A Kotlin library for cryptocurrency trading.

Supported Exchanges

Websocket

Support public market feature (tickData, orderBook)

logo name ExchangeVendor ver doc
binance Binance BINANCE * ws
upbit Upbit UPBIT v1.0.3 ws
huobi_global Huobi Global HUOBI_GLOBAL * ws
huobi korea Huobi Korea HUOBI_KOREA * ws
huobi_japan Huobi Japan HUOBI_JAPAN * ws
okex Okex OKEX v3 ws
okex_korea Okex Korea OKEX_KOREA v3 ws
unicornx UnicornX UNICORNX v3 ws
hubi Hubi HUBI * ws
bitmex Bitmex BITMEX * ws
kraken Kraken KRAKEN 0.1.1 ws
bitmax Bitmax BITMAX v1.2 ws
coineal Coineal COINEAL ⚠️ ⚠️
poloniex Poloniex POLONIEX * ws
bitstamp Bitstamp BITSTAMP v2 ws
korbotex Korbot EX KOTBOTEX v3 ws
coinall Coinall COINALL v3 ws
bhex Bhex BHEX v1 ws
bitz Bit-Z BITZ * ws
idax Idax IDAX closed ws
bithumb Bithumb BITHUMB deprecated ⚠️

⚠️ : Uses endpoints that are used by the official web. This is not an official api and should be used with care.

Api

Exchange ver doc

Install

Maven

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

Step 1. Add jitpack repository

<dependency>
    <groupId>com.github.namjug-kim.reactive-crypto</groupId>
    <artifactId>reactive-crypto-{exchange-name}</artifactId>
    <version>LATEST</version>
</dependency>

Step 2. Add the dependency

Gradle

repositories {
	...
	maven { url 'https://jitpack.io' }
}

Step 1. Add jitpack repository

dependencies {
    implementation 'com.github.namjug-kim.reactive-crypto:reactive-crypto-{exchange-name}:LATEST'
}

Step 2. Add the dependency

Usage

Kotlin

fun websocketTickDataExample() {
    // create websocketClient for each crypto currency exchange
    val websocketClient = ExchangeClientFactory.websocket(ExchangeVendor.BINANCE)
    
    websocketClient.createTradeWebsocket(listOf(CurrencyPair(BTC, USDT)))
                   .doOnNext { log.info { "new tick data $it" } }
                   .subscribe()
}

fun httpLimitOrderExample() {
    val orderPlaceResult = ExchangeClientFactory.http(ExchangeVendor.BINANCE)
                .privateApi("accessKey", "secretKey")
                .order()
                .limitOrder(
                    CurrencyPair(Currency.BTC, Currency.KRW),
                    TradeSideType.BUY,
                    BigDecimal.valueOf(10000000.0),
                    BigDecimal.valueOf(10.0)
                )
                .block()

    log.info { orderPlaceResult }
}

Java

class SampleClass {
    public void websocketTickDataExample() {
        // create websocketClient for each crypto currency exchange
        ExchangeWebsocketClient exchangeWebsocketClient = ExchangeClientFactory.websocket(ExchangeVendor.BINANCE);
         
        List<CurrencyPair> targetPairs = Collections.singletonList(CurrencyPair.parse("BTC", "USDT"));
        exchangeWebsocketClient.createTradeWebsocket(targetPairs)
                               .doOnNext(tickData -> log.info("new tick data {}", tickData))
                               .subscribe();
    }

    public void httpLimitOrderExample() {
        OrderPlaceResult orderPlaceResult = ExchangeClientFactory.http(ExchangeVendor.BINANCE)
                        .privateApi("accessKey", "secretKey")
                        .order()
                        .limitOrder(
                            CurrencyPair(Currency.BTC, Currency.KRW),
                            TradeSideType.BUY,
                            BigDecimal.valueOf(10000000.0),
                            BigDecimal.valueOf(10.0)
                        )
                        .block();

        log.info("{}", orderPlaceResult);
    }

}

💬 Contributing

📜 License



Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Kotlin (49,250
Websocket (14,007
Bitcoin (11,527
Cryptocurrency (7,852
Trading (5,830
Binance (1,169
Trading Bot (823
Kraken (666
Arbitrage (550
Altcoin (459
Poloniex (312
Bitstamp (207
Bitmex (110
Huobi (74
Okex (63
Upbit (27
Market Making (22
Bithumb (10
Cryptocurrency Trading (6