ccxt 4.5.55 → 4.5.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +215 -10
- package/dist/ccxt.browser.min.js +10 -10
- package/dist/cjs/ccxt.js +6 -11
- package/dist/cjs/src/aftermath.js +10 -5
- package/dist/cjs/src/alpaca.js +2 -2
- package/dist/cjs/src/apex.js +26 -17
- package/dist/cjs/src/arkham.js +10 -7
- package/dist/cjs/src/ascendex.js +8 -5
- package/dist/cjs/src/aster.js +7 -4
- package/dist/cjs/src/backpack.js +4 -4
- package/dist/cjs/src/base/Exchange.js +72 -35
- package/dist/cjs/src/base/functions/io.js +25 -0
- package/dist/cjs/src/base/functions.js +1 -0
- package/dist/cjs/src/bigone.js +10 -7
- package/dist/cjs/src/binance.js +196 -198
- package/dist/cjs/src/bingx.js +7 -7
- package/dist/cjs/src/bitfinex.js +71 -58
- package/dist/cjs/src/bitflyer.js +2 -1
- package/dist/cjs/src/bitget.js +16 -5
- package/dist/cjs/src/bitmart.js +18 -10
- package/dist/cjs/src/bitmex.js +8 -5
- package/dist/cjs/src/bitopro.js +2 -2
- package/dist/cjs/src/bitrue.js +4 -3
- package/dist/cjs/src/bitso.js +7 -4
- package/dist/cjs/src/bitstamp.js +7 -4
- package/dist/cjs/src/bitteam.js +1 -1
- package/dist/cjs/src/bittrade.js +2 -2
- package/dist/cjs/src/bitvavo.js +457 -34
- package/dist/cjs/src/blofin.js +28 -4
- package/dist/cjs/src/bullish.js +6 -5
- package/dist/cjs/src/bybit.js +19 -17
- package/dist/cjs/src/bybiteu.js +1 -0
- package/dist/cjs/src/bydfi.js +1 -1
- package/dist/cjs/src/cex.js +3 -3
- package/dist/cjs/src/coinbase.js +75 -65
- package/dist/cjs/src/coinbaseexchange.js +4 -3
- package/dist/cjs/src/coinbaseinternational.js +17 -10
- package/dist/cjs/src/coinex.js +79 -77
- package/dist/cjs/src/coinmetro.js +1 -1
- package/dist/cjs/src/coinsph.js +5 -5
- package/dist/cjs/src/cryptocom.js +52 -54
- package/dist/cjs/src/cryptomus.js +43 -39
- package/dist/cjs/src/deepcoin.js +9 -5
- package/dist/cjs/src/delta.js +53 -53
- package/dist/cjs/src/deribit.js +35 -35
- package/dist/cjs/src/derive.js +31 -31
- package/dist/cjs/src/digifinex.js +45 -45
- package/dist/cjs/src/exmo.js +104 -122
- package/dist/cjs/src/extended.js +3497 -0
- package/dist/cjs/src/foxbit.js +72 -76
- package/dist/cjs/src/gate.js +53 -53
- package/dist/cjs/src/gemini.js +45 -45
- package/dist/cjs/src/grvt.js +17 -11
- package/dist/cjs/src/hashkey.js +56 -58
- package/dist/cjs/src/hibachi.js +1 -1
- package/dist/cjs/src/hitbtc.js +5 -14
- package/dist/cjs/src/hollaex.js +51 -54
- package/dist/cjs/src/htx.js +84 -72
- package/dist/cjs/src/hyperliquid.js +60 -55
- package/dist/cjs/src/indodax.js +4 -3
- package/dist/cjs/src/kraken.js +71 -71
- package/dist/cjs/src/krakenfutures.js +2 -1
- package/dist/cjs/src/kucoin.js +3 -2
- package/dist/cjs/src/latoken.js +30 -32
- package/dist/cjs/src/lbank.js +64 -60
- package/dist/cjs/src/lighter.js +36 -38
- package/dist/cjs/src/luno.js +36 -44
- package/dist/cjs/src/mercado.js +2 -1
- package/dist/cjs/src/mexc.js +72 -63
- package/dist/cjs/src/modetrade.js +51 -53
- package/dist/cjs/src/ndax.js +35 -37
- package/dist/cjs/src/okx.js +23 -5
- package/dist/cjs/src/onetrading.js +21 -23
- package/dist/cjs/src/p2b.js +8 -4
- package/dist/cjs/src/paradex.js +3 -2
- package/dist/cjs/src/phemex.js +47 -47
- package/dist/cjs/src/poloniex.js +19 -13
- package/dist/cjs/src/pro/alpaca.js +1 -1
- package/dist/cjs/src/pro/apex.js +11 -2
- package/dist/cjs/src/pro/arkham.js +1 -1
- package/dist/cjs/src/pro/aster.js +10 -9
- package/dist/cjs/src/pro/backpack.js +1 -1
- package/dist/cjs/src/pro/binance.js +6 -6
- package/dist/cjs/src/pro/bingx.js +7 -2
- package/dist/cjs/src/pro/bitget.js +1 -1
- package/dist/cjs/src/pro/bithumb.js +1 -1
- package/dist/cjs/src/pro/bitmart.js +10 -0
- package/dist/cjs/src/pro/bitmex.js +1 -1
- package/dist/cjs/src/pro/bitstamp.js +1 -1
- package/dist/cjs/src/pro/blockchaincom.js +1 -1
- package/dist/cjs/src/pro/bybit.js +1 -1
- package/dist/cjs/src/pro/cex.js +1 -1
- package/dist/cjs/src/pro/coinex.js +1 -1
- package/dist/cjs/src/pro/coinone.js +1 -1
- package/dist/cjs/src/pro/cryptocom.js +3 -1
- package/dist/cjs/src/pro/dydx.js +1 -1
- package/dist/cjs/src/pro/exmo.js +1 -1
- package/dist/cjs/src/pro/extended.js +865 -0
- package/dist/cjs/src/pro/gate.js +1 -1
- package/dist/cjs/src/pro/grvt.js +8 -0
- package/dist/cjs/src/pro/htx.js +4 -4
- package/dist/cjs/src/pro/independentreserve.js +1 -1
- package/dist/cjs/src/pro/krakenfutures.js +16 -4
- package/dist/cjs/src/pro/kucoin.js +1 -1
- package/dist/cjs/src/pro/luno.js +3 -3
- package/dist/cjs/src/pro/modetrade.js +3 -3
- package/dist/cjs/src/pro/okx.js +4 -4
- package/dist/cjs/src/pro/onetrading.js +1 -1
- package/dist/cjs/src/pro/toobit.js +1 -1
- package/dist/cjs/src/pro/weex.js +1 -1
- package/dist/cjs/src/pro/woo.js +4 -4
- package/dist/cjs/src/pro/woofipro.js +3 -3
- package/dist/cjs/src/pro/xt.js +1 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +7 -7
- package/dist/cjs/src/tokocrypto.js +1 -1
- package/dist/cjs/src/toobit.js +3 -3
- package/dist/cjs/src/upbit.js +3 -3
- package/dist/cjs/src/weex.js +57 -62
- package/dist/cjs/src/whitebit.js +61 -63
- package/dist/cjs/src/woo.js +66 -55
- package/dist/cjs/src/woofipro.js +54 -48
- package/dist/cjs/src/xt.js +3 -2
- package/dist/cjs/src/yobit.js +4 -2
- package/dist/cjs/src/zebpay.js +73 -75
- package/js/ccxt.d.ts +8 -14
- package/js/ccxt.js +6 -10
- package/js/src/abstract/bitvavo.d.ts +15 -7
- package/js/src/abstract/extended.d.ts +58 -0
- package/js/src/abstract/mexc.d.ts +1 -0
- package/js/src/aftermath.js +10 -5
- package/js/src/alpaca.js +2 -2
- package/js/src/apex.d.ts +1 -1
- package/js/src/apex.js +26 -17
- package/js/src/arkham.js +10 -7
- package/js/src/ascendex.js +8 -5
- package/js/src/aster.js +7 -4
- package/js/src/backpack.js +4 -4
- package/js/src/base/Exchange.d.ts +10 -6
- package/js/src/base/Exchange.js +72 -35
- package/js/src/base/functions/io.d.ts +7 -0
- package/js/src/base/functions/io.js +24 -0
- package/js/src/bigone.js +10 -7
- package/js/src/binance.d.ts +2 -0
- package/js/src/binance.js +200 -202
- package/js/src/bingx.js +7 -7
- package/js/src/bitfinex.d.ts +2 -0
- package/js/src/bitfinex.js +71 -58
- package/js/src/bitflyer.js +2 -1
- package/js/src/bitget.js +16 -5
- package/js/src/bitmart.js +18 -10
- package/js/src/bitmex.js +8 -5
- package/js/src/bitopro.js +2 -2
- package/js/src/bitrue.js +4 -3
- package/js/src/bitso.js +7 -4
- package/js/src/bitstamp.js +7 -4
- package/js/src/bitteam.js +1 -1
- package/js/src/bittrade.js +2 -2
- package/js/src/bitvavo.d.ts +114 -21
- package/js/src/bitvavo.js +457 -34
- package/js/src/blofin.d.ts +1 -0
- package/js/src/blofin.js +28 -4
- package/js/src/bullish.js +6 -5
- package/js/src/bybit.d.ts +1 -1
- package/js/src/bybit.js +19 -17
- package/js/src/bybiteu.js +1 -0
- package/js/src/bydfi.js +1 -1
- package/js/src/cex.js +3 -3
- package/js/src/coinbase.d.ts +63 -56
- package/js/src/coinbase.js +75 -65
- package/js/src/coinbaseexchange.js +4 -3
- package/js/src/coinbaseinternational.d.ts +1 -1
- package/js/src/coinbaseinternational.js +17 -10
- package/js/src/coinex.d.ts +2 -1
- package/js/src/coinex.js +79 -77
- package/js/src/coinmetro.d.ts +1 -1
- package/js/src/coinmetro.js +1 -1
- package/js/src/coinsph.js +5 -5
- package/js/src/cryptocom.d.ts +1 -0
- package/js/src/cryptocom.js +52 -54
- package/js/src/cryptomus.d.ts +2 -1
- package/js/src/cryptomus.js +43 -39
- package/js/src/deepcoin.js +9 -5
- package/js/src/delta.d.ts +1 -0
- package/js/src/delta.js +53 -53
- package/js/src/deribit.d.ts +1 -0
- package/js/src/deribit.js +35 -35
- package/js/src/derive.d.ts +1 -0
- package/js/src/derive.js +31 -31
- package/js/src/digifinex.d.ts +1 -0
- package/js/src/digifinex.js +45 -45
- package/js/src/exmo.d.ts +1 -0
- package/js/src/exmo.js +104 -122
- package/js/src/extended.d.ts +554 -0
- package/js/src/extended.js +3490 -0
- package/js/src/foxbit.d.ts +1 -0
- package/js/src/foxbit.js +72 -76
- package/js/src/gate.d.ts +1 -0
- package/js/src/gate.js +53 -53
- package/js/src/gemini.d.ts +2 -1
- package/js/src/gemini.js +45 -45
- package/js/src/grvt.d.ts +1 -1
- package/js/src/grvt.js +17 -11
- package/js/src/hashkey.d.ts +1 -0
- package/js/src/hashkey.js +56 -58
- package/js/src/hibachi.d.ts +1 -1
- package/js/src/hibachi.js +1 -1
- package/js/src/hitbtc.d.ts +0 -1
- package/js/src/hitbtc.js +5 -14
- package/js/src/hollaex.d.ts +1 -0
- package/js/src/hollaex.js +51 -54
- package/js/src/htx.d.ts +1 -0
- package/js/src/htx.js +84 -72
- package/js/src/hyperliquid.d.ts +5 -4
- package/js/src/hyperliquid.js +60 -55
- package/js/src/indodax.js +4 -3
- package/js/src/kraken.d.ts +2 -1
- package/js/src/kraken.js +71 -71
- package/js/src/krakenfutures.js +2 -1
- package/js/src/kucoin.js +3 -2
- package/js/src/latoken.d.ts +1 -0
- package/js/src/latoken.js +30 -32
- package/js/src/lbank.d.ts +1 -0
- package/js/src/lbank.js +64 -60
- package/js/src/lighter.d.ts +2 -1
- package/js/src/lighter.js +36 -38
- package/js/src/luno.d.ts +1 -0
- package/js/src/luno.js +36 -44
- package/js/src/mercado.js +2 -1
- package/js/src/mexc.d.ts +4 -3
- package/js/src/mexc.js +72 -63
- package/js/src/modetrade.d.ts +1 -0
- package/js/src/modetrade.js +51 -53
- package/js/src/ndax.d.ts +1 -0
- package/js/src/ndax.js +35 -37
- package/js/src/okx.js +23 -5
- package/js/src/onetrading.d.ts +2 -1
- package/js/src/onetrading.js +21 -23
- package/js/src/p2b.js +8 -4
- package/js/src/paradex.js +3 -2
- package/js/src/phemex.d.ts +1 -0
- package/js/src/phemex.js +47 -47
- package/js/src/poloniex.js +19 -13
- package/js/src/pro/alpaca.js +1 -1
- package/js/src/pro/apex.js +11 -2
- package/js/src/pro/arkham.js +1 -1
- package/js/src/pro/aster.js +10 -9
- package/js/src/pro/backpack.js +1 -1
- package/js/src/pro/binance.d.ts +1 -1
- package/js/src/pro/binance.js +6 -6
- package/js/src/pro/bingx.js +7 -2
- package/js/src/pro/bitget.js +1 -1
- package/js/src/pro/bithumb.js +1 -1
- package/js/src/pro/bitmart.js +10 -0
- package/js/src/pro/bitmex.js +1 -1
- package/js/src/pro/bitstamp.js +1 -1
- package/js/src/pro/blockchaincom.js +1 -1
- package/js/src/pro/bybit.js +1 -1
- package/js/src/pro/cex.js +1 -1
- package/js/src/pro/coinex.js +1 -1
- package/js/src/pro/coinone.js +1 -1
- package/js/src/pro/cryptocom.js +3 -1
- package/js/src/pro/dydx.js +1 -1
- package/js/src/pro/exmo.js +1 -1
- package/js/src/pro/extended.d.ts +126 -0
- package/js/src/pro/extended.js +858 -0
- package/js/src/pro/gate.js +1 -1
- package/js/src/pro/grvt.js +8 -0
- package/js/src/pro/htx.d.ts +4 -4
- package/js/src/pro/htx.js +4 -4
- package/js/src/pro/independentreserve.js +1 -1
- package/js/src/pro/krakenfutures.d.ts +4 -4
- package/js/src/pro/krakenfutures.js +16 -4
- package/js/src/pro/kucoin.js +1 -1
- package/js/src/pro/luno.d.ts +1 -1
- package/js/src/pro/luno.js +3 -3
- package/js/src/pro/modetrade.d.ts +3 -3
- package/js/src/pro/modetrade.js +3 -3
- package/js/src/pro/okx.d.ts +4 -4
- package/js/src/pro/okx.js +4 -4
- package/js/src/pro/onetrading.js +1 -1
- package/js/src/pro/toobit.js +1 -1
- package/js/src/pro/weex.js +1 -1
- package/js/src/pro/woo.d.ts +4 -4
- package/js/src/pro/woo.js +4 -4
- package/js/src/pro/woofipro.d.ts +3 -3
- package/js/src/pro/woofipro.js +3 -3
- package/js/src/pro/xt.js +1 -1
- package/js/src/tokocrypto.js +1 -1
- package/js/src/toobit.d.ts +1 -1
- package/js/src/toobit.js +3 -3
- package/js/src/upbit.js +3 -3
- package/js/src/weex.d.ts +1 -0
- package/js/src/weex.js +57 -62
- package/js/src/whitebit.d.ts +1 -0
- package/js/src/whitebit.js +61 -63
- package/js/src/woo.d.ts +1 -0
- package/js/src/woo.js +66 -55
- package/js/src/woofipro.d.ts +1 -0
- package/js/src/woofipro.js +54 -48
- package/js/src/xt.js +3 -2
- package/js/src/yobit.js +4 -2
- package/js/src/zebpay.d.ts +2 -1
- package/js/src/zebpay.js +73 -75
- package/package.json +25 -11
- package/dist/cjs/src/gateio.js +0 -18
- package/dist/cjs/src/oxfun.js +0 -2931
- package/dist/cjs/src/pro/gateio.js +0 -18
- package/dist/cjs/src/pro/oxfun.js +0 -1113
- package/js/src/abstract/gateio.d.ts +0 -346
- package/js/src/abstract/gateio.js +0 -5
- package/js/src/abstract/oxfun.d.ts +0 -37
- package/js/src/gateio.d.ts +0 -4
- package/js/src/gateio.js +0 -11
- package/js/src/oxfun.d.ts +0 -442
- package/js/src/oxfun.js +0 -2924
- package/js/src/pro/gateio.d.ts +0 -4
- package/js/src/pro/gateio.js +0 -11
- package/js/src/pro/oxfun.d.ts +0 -234
- package/js/src/pro/oxfun.js +0 -1106
- /package/dist/cjs/src/abstract/{oxfun.js → extended.js} +0 -0
- /package/js/src/abstract/{oxfun.js → extended.js} +0 -0
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# CCXT – CryptoCurrency eXchange Trading Library
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/ccxt) [](https://npmjs.com/package/ccxt) [](https://pypi.python.org/pypi/ccxt) [](https://www.nuget.org/packages/ccxt) [](https://godoc.org/github.com/ccxt/ccxt/go/v4) [](https://discord.gg/ccxt) [](https://www.npmjs.com/package/ccxt) [](https://npmjs.com/package/ccxt) [](https://pypi.python.org/pypi/ccxt) [](https://www.nuget.org/packages/ccxt) [](https://godoc.org/github.com/ccxt/ccxt/go/v4) [](https://mvnrepository.com/artifact/io.github.ccxt/ccxt) [](https://discord.gg/ccxt) [](https://github.com/ccxt/ccxt/wiki/Exchange-Markets) [](https://x.com/ccxt_official)
|
|
4
4
|
|
|
5
|
-
A cryptocurrency trading API with more than 100 exchanges in JavaScript / TypeScript / Python / C# / PHP / Go.
|
|
5
|
+
A cryptocurrency trading API with more than 100 exchanges in JavaScript / TypeScript / Python / C# / PHP / Go / Java.
|
|
6
6
|
|
|
7
7
|
### [Install](#install) · [Usage](#usage) · [Manual](https://github.com/ccxt/ccxt/wiki) · [FAQ](https://github.com/ccxt/ccxt/wiki/FAQ) · [Examples](https://github.com/ccxt/ccxt/tree/master/examples) · [Contributing](https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md) · [Disclaimer](#disclaimer) · [Social](#social)
|
|
8
8
|
|
|
@@ -16,7 +16,7 @@ Current feature list:
|
|
|
16
16
|
- fully implemented public and private APIs
|
|
17
17
|
- optional normalized data for cross-exchange analytics and arbitrage
|
|
18
18
|
- an out of the box unified API that is extremely easy to integrate
|
|
19
|
-
- works in Node 10.4+, Python 3, PHP 8.1+, netstandard2.0/2.1, Go 1.20+ and web browsers
|
|
19
|
+
- works in Node 10.4+, Python 3, PHP 8.1+, netstandard2.0/2.1, Go 1.20+, Java 21+ and web browsers
|
|
20
20
|
|
|
21
21
|
## See Also
|
|
22
22
|
|
|
@@ -41,7 +41,7 @@ Current feature list:
|
|
|
41
41
|
| [](https://app.hyperliquid.xyz/) | hyperliquid | [Hyperliquid](https://app.hyperliquid.xyz/) | [](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://docs.ccxt.com/ccxt.pro.manual) | |
|
|
42
42
|
| [](https://www.bitmex.com/app/register/NZTR1q) | bitmex | [BitMEX](https://www.bitmex.com/app/register/NZTR1q) | [](https://www.bitmex.com/app/apiOverview) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://docs.ccxt.com/ccxt.pro.manual) | [](https://www.bitmex.com/app/register/NZTR1q) |
|
|
43
43
|
| [](https://bingx.com/invite/OHETOM) | bingx | [BingX](https://bingx.com/invite/OHETOM) | [](https://bingx-api.github.io/docs/) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://docs.ccxt.com/ccxt.pro.manual) | |
|
|
44
|
-
| [](https://www.htx.com
|
|
44
|
+
| [](https://www.htx.com/invite/en-us/1h?invite_code=6rmm2223) | htx | [HTX](https://www.htx.com/invite/en-us/1h?invite_code=6rmm2223) | [](https://huobiapi.github.io/docs/spot/v1/en/) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://docs.ccxt.com/ccxt.pro.manual) | [](https://www.htx.com/invite/en-us/1h?invite_code=6rmm2223) |
|
|
45
45
|
| [](https://www.mexc.com/register?inviteCode=mexc-1FQ1GNu1) | mexc | [MEXC Global](https://www.mexc.com/register?inviteCode=mexc-1FQ1GNu1) | [](https://mexcdevelop.github.io/apidocs/) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://docs.ccxt.com/ccxt.pro.manual) | |
|
|
46
46
|
| [](http://www.bitmart.com/?r=rQCFLh) | bitmart | [BitMart](http://www.bitmart.com/?r=rQCFLh) | [](https://developer-pro.bitmart.com/) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://docs.ccxt.com/ccxt.pro.manual) | [](http://www.bitmart.com/?r=rQCFLh) |
|
|
47
47
|
| [](https://crypto.com/exch/kdacthrnxt) | cryptocom | [Crypto.com](https://crypto.com/exch/kdacthrnxt) | [](https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://docs.ccxt.com/ccxt.pro.manual) | [](https://crypto.com/exch/kdacthrnxt) |
|
|
@@ -95,7 +95,7 @@ Current feature list:
|
|
|
95
95
|
| [](https://www.bybit.com/invite?ref=XDK12WP) | bybiteu | [Bybit EU](https://www.bybit.com/invite?ref=XDK12WP) | [](https://bybit-exchange.github.io/docs/inverse/) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
96
96
|
| [](https://partner.bydfi.com/j/DilWutCI) | bydfi | [BYDFi](https://partner.bydfi.com/j/DilWutCI) | [](https://developers.bydfi.com/en/) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
97
97
|
| [](https://cex.io/r/0/up105393824/0/) | cex | [CEX.IO](https://cex.io/r/0/up105393824/0/) | [](https://trade.cex.io/docs/) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
98
|
-
| [](https://www.coinbase.com/join/58cbe25a355148797479dbd2) | coinbase | [Coinbase Advanced](https://www.coinbase.com/join/58cbe25a355148797479dbd2) | [](https://
|
|
98
|
+
| [](https://www.coinbase.com/join/58cbe25a355148797479dbd2) | coinbase | [Coinbase Advanced](https://www.coinbase.com/join/58cbe25a355148797479dbd2) | [](https://docs.cdp.coinbase.com/coinbase-app/introduction/welcome) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
99
99
|
| [](https://coinbase.com/) | coinbaseexchange | [Coinbase Exchange](https://coinbase.com/) | [](https://docs.cloud.coinbase.com/exchange/docs/) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
100
100
|
| [](https://international.coinbase.com) | coinbaseinternational | [Coinbase International](https://international.coinbase.com) | [](https://docs.cloud.coinbase.com/intx/docs) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
101
101
|
| [](https://coincheck.com) | coincheck | [coincheck](https://coincheck.com) | [](https://coincheck.com/documents/exchange/api) |  | | |
|
|
@@ -114,6 +114,7 @@ Current feature list:
|
|
|
114
114
|
| [](https://www.digifinex.com/en-ww/from/DhOzBg?channelCode=ljaUPp) | digifinex | [DigiFinex](https://www.digifinex.com/en-ww/from/DhOzBg?channelCode=ljaUPp) | [](https://docs.digifinex.com) |  | | |
|
|
115
115
|
| [](dydx.trade?ref=ccxt) | dydx | [dYdX](dydx.trade?ref=ccxt) | [](https://docs.dydx.xyz) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
116
116
|
| [](https://exmo.me/?ref=131685) | exmo | [EXMO](https://exmo.me/?ref=131685) | [](https://exmo.me/en/api_doc?ref=131685) |  | | |
|
|
117
|
+
| [](https://app.{hostname}) | extended | [Extended](https://app.{hostname}) | [](https://api.docs.{hostname}) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
117
118
|
| [](https://fmfw.io/referral/da948b21d6c92d69) | fmfwio | [FMFW.io](https://fmfw.io/referral/da948b21d6c92d69) | [](https://api.fmfw.io/) |  | | |
|
|
118
119
|
| [](https://app.foxbit.com.br) | foxbit | [Foxbit](https://app.foxbit.com.br) | [](https://docs.foxbit.com.br) |  | | |
|
|
119
120
|
| [](https://www.gate.com/share/CCXTGATE) | gate | [Gate](https://www.gate.com/share/CCXTGATE) | [](https://www.gate.com/docs/developers/apiv4/en) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
@@ -123,7 +124,7 @@ Current feature list:
|
|
|
123
124
|
| [](hibachi.xyz/r/ZBL2YFWIHU) | hibachi | [Hibachi](hibachi.xyz/r/ZBL2YFWIHU) | [](undefined) |  | | |
|
|
124
125
|
| [](https://hitbtc.com/?ref_id=5a5d39a65d466) | hitbtc | [HitBTC](https://hitbtc.com/?ref_id=5a5d39a65d466) | [](https://api.hitbtc.com) |  | | |
|
|
125
126
|
| [](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | hollaex | [HollaEx](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | [](https://apidocs.hollaex.com) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
126
|
-
| [](https://www.htx.com
|
|
127
|
+
| [](https://www.htx.com/invite/en-us/1h?invite_code=6rmm2223) | htx | [HTX](https://www.htx.com/invite/en-us/1h?invite_code=6rmm2223) | [](https://huobiapi.github.io/docs/spot/v1/en/) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
127
128
|
| [](https://app.hyperliquid.xyz/) | hyperliquid | [Hyperliquid](https://app.hyperliquid.xyz/) | [](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
128
129
|
| [](https://www.independentreserve.com) | independentreserve | [Independent Reserve](https://www.independentreserve.com) | [](https://www.independentreserve.com/API) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
129
130
|
| [](https://indodax.com/ref/testbitcoincoid/1) | indodax | [INDODAX](https://indodax.com/ref/testbitcoincoid/1) | [](https://github.com/btcid/indodax-official-api-docs) |  | | |
|
|
@@ -144,7 +145,6 @@ Current feature list:
|
|
|
144
145
|
| [](https://www.okx.com/join/CCXTCOM) | okx | [OKX](https://www.okx.com/join/CCXTCOM) | [](https://www.okx.com/docs-v5/en/) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
145
146
|
| [](https://www.app.okx.com/join/CCXT2023) | okxus | [OKX (US)](https://www.app.okx.com/join/CCXT2023) | [](https://app.okx.com/docs-v5/en/#overview) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
146
147
|
| [](https://onetrading.com/) | onetrading | [One Trading](https://onetrading.com/) | [](https://docs.onetrading.com) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
147
|
-
| [](https://ox.fun/register?shareAccountId=5ZUD4a7G) | oxfun | [OXFUN](https://ox.fun/register?shareAccountId=5ZUD4a7G) | [](https://docs.ox.fun/) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
148
148
|
| [](https://p2pb2b.com?referral=ee784c53) | p2b | [p2b](https://p2pb2b.com?referral=ee784c53) | [](https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
149
149
|
| [](https://app.pacifica.fi?referral=ccxt) | pacifica | [Pacifica](https://app.pacifica.fi?referral=ccxt) | [](https://docs.pacifica.fi/api-documentation/api/rest-api) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
150
150
|
| [](https://app.paradex.trade/r/ccxt24) | paradex | [Paradex](https://app.paradex.trade/r/ccxt24) | [](https://docs.api.testnet.paradex.trade/) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
@@ -177,6 +177,7 @@ The library is under [MIT license](https://github.com/ccxt/ccxt/blob/master/LICE
|
|
|
177
177
|
|logo |id |name |ver |type |certified |pro |
|
|
178
178
|
|------------------------------------------------------------------------------------------------------------------------------------------|-------------|------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
|
|
179
179
|
| [](https://www.asterdex.com/en/referral/aA1c2B) | aster | [Aster](https://www.asterdex.com/en/referral/aA1c2B) | [](https://github.com/asterdex/api-docs) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
180
|
+
| [](https://app.{hostname}) | extended | [Extended](https://app.{hostname}) | [](https://api.docs.{hostname}) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
180
181
|
| [](https://grvt.io/?ref=WBLS9D1) | grvt | [GRVT](https://grvt.io/?ref=WBLS9D1) | [](https://api-docs.grvt.io/) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
181
182
|
| [](https://app.hyperliquid.xyz/) | hyperliquid | [Hyperliquid](https://app.hyperliquid.xyz/) | [](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
182
183
|
| [](app.lighter.xyz/?referral=715955W9) | lighter | [Lighter](app.lighter.xyz/?referral=715955W9) | [](https://apidocs.lighter.xyz/) |  | | [](https://docs.ccxt.com/ccxt.pro.manual) |
|
|
@@ -198,6 +199,7 @@ The easiest way to install the CCXT library is to use a package manager:
|
|
|
198
199
|
- [ccxt in **Packagist/Composer**](https://packagist.org/packages/ccxt/ccxt) (PHP 8.1+)
|
|
199
200
|
- [ccxt in **Nuget**](https://www.nuget.org/packages/ccxt) (netstandard 2.0)
|
|
200
201
|
- [ccxt in **GO**](https://pkg.go.dev/github.com/ccxt/ccxt/go/v4)
|
|
202
|
+
- [ccxt in **Java**](https://central.sonatype.com/artifact/io.github.ccxt/ccxt) (Java 21+, Gradle)
|
|
201
203
|
|
|
202
204
|
This library is shipped as an all-in-one module implementation with minimalistic dependencies and requirements:
|
|
203
205
|
|
|
@@ -206,6 +208,7 @@ This library is shipped as an all-in-one module implementation with minimalistic
|
|
|
206
208
|
- [php/](https://github.com/ccxt/ccxt/blob/master/php/) in PHP (generated from TS)
|
|
207
209
|
- [cs/](https://github.com/ccxt/ccxt/blob/master/cs/) in C# (generated from TS)
|
|
208
210
|
- [go/](https://github.com/ccxt/ccxt/blob/master/go/) in Go (generated from TS)
|
|
211
|
+
- [java/](https://github.com/ccxt/ccxt/blob/master/java/) in Java (generated from TS)
|
|
209
212
|
|
|
210
213
|
You can also clone it into your project directory from [ccxt GitHub repository](https://github.com/ccxt/ccxt):
|
|
211
214
|
|
|
@@ -242,13 +245,13 @@ console.log(version, Object.keys(exchanges));
|
|
|
242
245
|
|
|
243
246
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
|
244
247
|
|
|
245
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.5.
|
|
246
|
-
* unpkg: https://unpkg.com/ccxt@4.5.
|
|
248
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.5.57/dist/ccxt.browser.min.js
|
|
249
|
+
* unpkg: https://unpkg.com/ccxt@4.5.57/dist/ccxt.browser.min.js
|
|
247
250
|
|
|
248
251
|
CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
|
|
249
252
|
|
|
250
253
|
```HTML
|
|
251
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.5.
|
|
254
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.5.57/dist/ccxt.browser.min.js"></script>
|
|
252
255
|
```
|
|
253
256
|
|
|
254
257
|
Creates a global `ccxt` object:
|
|
@@ -337,6 +340,65 @@ import "ccxt"
|
|
|
337
340
|
fmt.Println(ccxt.Exchanges)
|
|
338
341
|
```
|
|
339
342
|
|
|
343
|
+
### Java
|
|
344
|
+
|
|
345
|
+
Java version of CCXT requires Java 21+ and uses Gradle as its build system.
|
|
346
|
+
|
|
347
|
+
Add the CCXT library as a local dependency in your `build.gradle.kts`:
|
|
348
|
+
|
|
349
|
+
```kotlin
|
|
350
|
+
dependencies {
|
|
351
|
+
implementation("io.github.ccxt:ccxt:4.5.52")
|
|
352
|
+
}
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
Or clone and build from source:
|
|
356
|
+
|
|
357
|
+
```shell
|
|
358
|
+
git clone https://github.com/ccxt/ccxt.git --depth 1
|
|
359
|
+
cd ccxt/java
|
|
360
|
+
./gradlew :lib:build
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
```Java
|
|
364
|
+
import io.github.ccxt.exchanges.Binance;
|
|
365
|
+
import io.github.ccxt.types.Ticker;
|
|
366
|
+
|
|
367
|
+
Binance exchange = new Binance();
|
|
368
|
+
exchange.loadMarkets(false);
|
|
369
|
+
|
|
370
|
+
Ticker ticker = exchange.fetchTicker("BTC/USDT");
|
|
371
|
+
System.out.println(ticker.symbol + " " + ticker.last);
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
Each exchange has its own typed subclass with strongly-typed return values. Every typed method ships both a blocking sync and a non-blocking `CompletableFuture`-returning async overload — pick the idiom that fits your call site:
|
|
375
|
+
|
|
376
|
+
```Java
|
|
377
|
+
// Sync — blocks until the response arrives
|
|
378
|
+
Ticker ticker = exchange.fetchTicker("BTC/USDT");
|
|
379
|
+
|
|
380
|
+
// Async — returns immediately, completes when the response arrives
|
|
381
|
+
CompletableFuture<Ticker> future = exchange.fetchTickerAsync("BTC/USDT", null);
|
|
382
|
+
future.thenAccept(t -> System.out.println(t.last));
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
WebSocket support is available via the pro exchange classes, with the same sync/async symmetry — `watchTicker` blocks for one update; `watchTickerAsync` returns a `CompletableFuture<Ticker>` you can compose:
|
|
386
|
+
|
|
387
|
+
```Java
|
|
388
|
+
import io.github.ccxt.exchanges.pro.Binance;
|
|
389
|
+
|
|
390
|
+
var exchange = new Binance();
|
|
391
|
+
exchange.loadMarkets(false);
|
|
392
|
+
|
|
393
|
+
// Sync — blocks for one update
|
|
394
|
+
Ticker tick = exchange.watchTicker("BTC/USDT");
|
|
395
|
+
|
|
396
|
+
// Async — returns a typed CompletableFuture (composable with allOf, anyOf, etc.)
|
|
397
|
+
CompletableFuture<Ticker> future = exchange.watchTickerAsync("BTC/USDT", null);
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
See [java/examples/](https://github.com/ccxt/ccxt/tree/master/java/examples) for more usage examples.
|
|
401
|
+
|
|
340
402
|
### Docker
|
|
341
403
|
|
|
342
404
|
You can get CCXT installed in a container along with all the supported languages and dependencies. This may be useful if you want to contribute to CCXT (e.g. run the build scripts and tests — please see the [Contributing](https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md) document for the details on that).
|
|
@@ -645,6 +707,149 @@ Lastly, just because the signature dictates that some argument like `symbol` is
|
|
|
645
707
|
|
|
646
708
|
You can check different examples in the `examples/go` folder.
|
|
647
709
|
|
|
710
|
+
### Java
|
|
711
|
+
|
|
712
|
+
```Java
|
|
713
|
+
import io.github.ccxt.exchanges.Kraken;
|
|
714
|
+
import io.github.ccxt.exchanges.Bitfinex;
|
|
715
|
+
import io.github.ccxt.exchanges.Binance;
|
|
716
|
+
import io.github.ccxt.types.*;
|
|
717
|
+
|
|
718
|
+
import java.util.HashMap;
|
|
719
|
+
import java.util.Map;
|
|
720
|
+
|
|
721
|
+
public class Example {
|
|
722
|
+
public static void main(String[] args) {
|
|
723
|
+
// Create exchange instances
|
|
724
|
+
Kraken kraken = new Kraken();
|
|
725
|
+
Bitfinex bitfinex = new Bitfinex();
|
|
726
|
+
|
|
727
|
+
Map<String, Object> config = new HashMap<>();
|
|
728
|
+
config.put("apiKey", "YOUR_API_KEY");
|
|
729
|
+
config.put("secret", "YOUR_SECRET");
|
|
730
|
+
Binance binance = new Binance(config);
|
|
731
|
+
|
|
732
|
+
// Load markets
|
|
733
|
+
kraken.loadMarkets(false);
|
|
734
|
+
binance.loadMarkets(false);
|
|
735
|
+
|
|
736
|
+
// Public API
|
|
737
|
+
OrderBook orderBook = kraken.fetchOrderBook("BTC/USDT");
|
|
738
|
+
Ticker ticker = bitfinex.fetchTicker("BTC/USD");
|
|
739
|
+
System.out.println(ticker.symbol + " last=" + ticker.last);
|
|
740
|
+
|
|
741
|
+
// Fetch OHLCV
|
|
742
|
+
var candles = binance.fetchOHLCV("BTC/USDT", "1h", null, 10L, null);
|
|
743
|
+
System.out.println("Got " + candles.size() + " candles");
|
|
744
|
+
|
|
745
|
+
// Private API (requires API keys)
|
|
746
|
+
Balances balance = binance.fetchBalance();
|
|
747
|
+
System.out.println("BTC free: " + balance.free.get("BTC"));
|
|
748
|
+
|
|
749
|
+
// Place a limit buy order
|
|
750
|
+
Order order = binance.createLimitBuyOrder("BTC/USDT", 0.001, 50000.0);
|
|
751
|
+
System.out.println("Order id: " + order.id + " status: " + order.status);
|
|
752
|
+
|
|
753
|
+
// Cancel it
|
|
754
|
+
binance.cancelOrder(order.id, "BTC/USDT", null);
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
```
|
|
758
|
+
|
|
759
|
+
#### Async
|
|
760
|
+
|
|
761
|
+
All methods are also available as async variants returning `CompletableFuture`:
|
|
762
|
+
|
|
763
|
+
```Java
|
|
764
|
+
import java.util.concurrent.CompletableFuture;
|
|
765
|
+
|
|
766
|
+
// Fire multiple requests concurrently
|
|
767
|
+
CompletableFuture<Ticker> btc = binance.fetchTickerAsync("BTC/USDT", null);
|
|
768
|
+
CompletableFuture<Ticker> eth = binance.fetchTickerAsync("ETH/USDT", null);
|
|
769
|
+
CompletableFuture.allOf(btc, eth).join();
|
|
770
|
+
System.out.println("BTC: " + btc.get().last + " ETH: " + eth.get().last);
|
|
771
|
+
```
|
|
772
|
+
|
|
773
|
+
#### Error handling
|
|
774
|
+
|
|
775
|
+
Typed sync methods throw the underlying ccxt error directly — no `CompletionException`
|
|
776
|
+
unwrap needed. Catch exceptions in standard JDK order (most-specific first), like you
|
|
777
|
+
would with any other Java library:
|
|
778
|
+
|
|
779
|
+
```Java
|
|
780
|
+
import io.github.ccxt.errors.*;
|
|
781
|
+
import io.github.ccxt.exchanges.Binance;
|
|
782
|
+
import io.github.ccxt.types.Order;
|
|
783
|
+
|
|
784
|
+
Binance binance = new Binance(Map.of("apiKey", "...", "secret", "..."));
|
|
785
|
+
try {
|
|
786
|
+
Order order = binance.createOrder("BTC/USDT", "limit", "buy", 0.001, 50000.0);
|
|
787
|
+
} catch (InsufficientFunds e) {
|
|
788
|
+
// user error — show balance, don't retry
|
|
789
|
+
} catch (InvalidOrder e) { // covers OrderNotFound, DuplicateOrderId, …
|
|
790
|
+
// user error — fix params
|
|
791
|
+
} catch (AuthenticationError e) { // covers PermissionDenied, AccountSuspended
|
|
792
|
+
// refresh credentials
|
|
793
|
+
} catch (RateLimitExceeded | DDoSProtection e) { // multi-catch (Java 7+)
|
|
794
|
+
Thread.sleep(30_000);
|
|
795
|
+
} catch (NetworkError e) { // RequestTimeout, ExchangeNotAvailable, …
|
|
796
|
+
Thread.sleep(2_000); // transient — retry
|
|
797
|
+
} catch (ExchangeError e) { // any other exchange-side error
|
|
798
|
+
// exchange refused
|
|
799
|
+
} catch (BaseError e) { // ccxt catch-all
|
|
800
|
+
// unknown ccxt error
|
|
801
|
+
}
|
|
802
|
+
```
|
|
803
|
+
|
|
804
|
+
For async methods, `CompletableFuture` wraps thrown errors in `CompletionException`
|
|
805
|
+
(JDK behaviour). Use `Helpers.unwrap()` inside `.exceptionally(...)` to peel the wrap
|
|
806
|
+
and pattern-match the real cause:
|
|
807
|
+
|
|
808
|
+
```Java
|
|
809
|
+
import io.github.ccxt.Helpers;
|
|
810
|
+
|
|
811
|
+
binance.createOrderAsync("BTC/USDT", "limit", "buy", 0.001, 50000.0)
|
|
812
|
+
.thenAccept(order -> log.info("placed " + order.id))
|
|
813
|
+
.exceptionally(throwable -> {
|
|
814
|
+
Throwable cause = Helpers.unwrap(throwable);
|
|
815
|
+
return switch (cause) {
|
|
816
|
+
case InsufficientFunds e -> { notifyUser(e); yield null; }
|
|
817
|
+
case AuthenticationError e -> { refreshCreds(); yield null; }
|
|
818
|
+
case RateLimitExceeded e -> { scheduleRetry(); yield null; }
|
|
819
|
+
case NetworkError e -> { scheduleRetry(); yield null; }
|
|
820
|
+
case BaseError e -> { log.error("ccxt", e); yield null; }
|
|
821
|
+
default -> throw new java.util.concurrent.CompletionException(cause);
|
|
822
|
+
};
|
|
823
|
+
});
|
|
824
|
+
```
|
|
825
|
+
|
|
826
|
+
The full hierarchy lives under `io.github.ccxt.errors` — see the [Error Handling
|
|
827
|
+
section of the Manual](https://github.com/ccxt/ccxt/wiki/Manual#error-handling)
|
|
828
|
+
for the complete tree (NetworkError vs ExchangeError, retry-safe vs user-error
|
|
829
|
+
categories, etc.).
|
|
830
|
+
|
|
831
|
+
#### WebSocket
|
|
832
|
+
|
|
833
|
+
WebSocket support is available via the pro exchange classes:
|
|
834
|
+
|
|
835
|
+
```Java
|
|
836
|
+
import io.github.ccxt.Exchange;
|
|
837
|
+
import io.github.ccxt.exchanges.pro.Binance;
|
|
838
|
+
|
|
839
|
+
import java.util.concurrent.TimeUnit;
|
|
840
|
+
|
|
841
|
+
Exchange exchange = new Binance();
|
|
842
|
+
exchange.loadMarkets().join();
|
|
843
|
+
|
|
844
|
+
// Stream live ticker updates
|
|
845
|
+
for (int i = 0; i < 10; i++) {
|
|
846
|
+
Object ticker = exchange.watchTicker("BTC/USDT").get(30, TimeUnit.SECONDS);
|
|
847
|
+
System.out.println(ticker);
|
|
848
|
+
}
|
|
849
|
+
```
|
|
850
|
+
|
|
851
|
+
You can check different examples in the `java/examples` folder.
|
|
852
|
+
|
|
648
853
|
## Rate limiting
|
|
649
854
|
|
|
650
855
|
Crypto exchanges enforce rate limits to protect their infrastructure, ensure fair usage across all clients, and prevent abuse that could degrade performance or availability for other users. That means you can't make an unlimited amount of requests to the exchange, there is a rate that needs to be respected.
|