v4.5.65

probelabs/probev4.5.65Jul 13, 2026by github-actions[bot]

AI Summary

This release focuses on performance optimization and dependency management, replacing vendored libraries with native Node.js equivalents and adding accelerators like uvloop and orjson. It also includes various bug fixes and normalization updates for multiple cryptocurrency exchanges.

Key Highlights

  • Performance Boost: Replaced vendored libraries with native Node.js equivalents (zlib, coincurve) and added uvloop/orjson accelerators
  • Exchange Fixes: Updated Gate.io position mapping, Binance trade methods, and added reduceMargin to KuCoin
  • Dependency Updates: Removed SPL network and vendored fflate, updated integration templates
  • CLI Improvements: Fixed --no-send and --no-load-markets flags that were previously ignored

Breaking Changes

  • Removed SPL network support
  • Delisted aftermath exchange
  • Replaced vendored fflate with node:zlib

New Features

  • ccxt-cli skill addition
  • NDAX API methods
  • Native fetch and WebSocket under Bun runtime
  • Bitso currency fetching implementation
  • Hyperliquid WebData2 stream removal

Full Release Notes

## What's Changed
* test: add atom/cosmos networkcode by @ttodua in https://github.com/ccxt/ccxt/pull/29060
* chore(build): replace python setup.py with root pyproject.toml, pin python dependencies by @carlotestor in https://github.com/ccxt/ccxt/pull/29093
* refactor: remove SPL network by @ttodua in https://github.com/ccxt/ccxt/pull/29096
* feat(python): uvloop/winloop/orjson accelerators with safe defaults by @carlotestor in https://github.com/ccxt/ccxt/pull/29098
* perf(python): uvloop/winloop/orjson accelerators + precision-safe JSON handling by @carlotestor in https://github.com/ccxt/ccxt/pull/29100
* release.yml: push back exchanges.json (force-add past .gitignore) by @carlotestor in https://github.com/ccxt/ccxt/pull/29109
* fix(26168): deribit parseTransfer timestamp parsing (already in milliseconds) by @carlotestor in https://github.com/ccxt/ccxt/pull/29102
* fix(26731): mexc pro - map sendTime to lastTradeTimestamp in watchOrders by @carlotestor in https://github.com/ccxt/ccxt/pull/29103
* fix(base): safeTicker - preserve legitimate zero change (fixes #25971) by @carlotestor in https://github.com/ccxt/ccxt/pull/29105
* fix(base): reduce strictNullChecks errors in base infra, functions, and coinex by @carlotestor in https://github.com/ccxt/ccxt/pull/28960
* fix(okx): reduce strictNullChecks errors + transpiler-safe ternaries by @carlotestor in https://github.com/ccxt/ccxt/pull/28965
* fix(base): position percentage derivation in safePosition (unrealisedPnl -> unrealizedPnl typo) by @carlotestor in https://github.com/ccxt/ccxt/pull/29110
* fix(27152): gate parsePosition maps initialMargin from margin field by @carlotestor in https://github.com/ccxt/ccxt/pull/29104
* feat(bitget): auto detect UTA account by @carlosmiei in https://github.com/ccxt/ccxt/pull/29051
* feat(kucoin): update by @yzh-pelle in https://github.com/ccxt/ccxt/pull/29042
* fix(28709): bingx - omit quantity from swap order request when closePosition is true by @carlotestor in https://github.com/ccxt/ccxt/pull/29106
* fix(28622): add quant-backtest-utils to Awesome CCXT wiki by @carlotestor in https://github.com/ccxt/ccxt/pull/29113
* feat(hyperliquid): remove WebData2 stream by @sc0Vu in https://github.com/ccxt/ccxt/pull/29030
* fix(gate): static response fixture percentage misplaced by #29104/#29110 auto-merge by @carlotestor in https://github.com/ccxt/ccxt/pull/29114
* Replace ethereum and toolz static dependencies with hand-rolled ABI + EIP-712 encoder by @carlotestor in https://github.com/ccxt/ccxt/pull/29112
* fix(gate): regenerate stale Go output for parsePosition/safePosition by @carlotestor in https://github.com/ccxt/ccxt/pull/29116
* fix(exchanges): reduce strictNullChecks errors across exchanges and tests by @carlotestor in https://github.com/ccxt/ccxt/pull/28966
* fix(base): go Precise.Div must truncate toward zero like JS BigInt division by @carlotestor in https://github.com/ccxt/ccxt/pull/29118
* feat(base): replace node-fetch with native fetch (undici), HTTP/1.1 keep-alive pooling by @carlotestor in https://github.com/ccxt/ccxt/pull/29084
* chore(deps): bump undici from 7.27.2 to 7.28.0 by @dependabot[bot] in https://github.com/ccxt/ccxt/pull/29120
* base: parseJson fast path — requote numbers only when an unsafe integer is present by @carlotestor in https://github.com/ccxt/ccxt/pull/29119
* fix(mudrex): logo by @kroitor in https://github.com/ccxt/ccxt/pull/29121
* php: remove quoteJsonNumbers regex pass, use JSON_BIGINT_AS_STRING by @carlotestor in https://github.com/ccxt/ccxt/pull/29123
* refactor: guard loadMarkets calls  by @carlotestor in https://github.com/ccxt/ccxt/pull/29111
* refactor(dydx): remove bip dependencies, support hex private keys only by @carlotestor in https://github.com/ccxt/ccxt/pull/29124
* fix(aftermath)!: delist by @ttodua in https://github.com/ccxt/ccxt/pull/29125
* refactor(pro): drop vendored fflate, use node:zlib in node with fflate fallback by @carlotestor in https://github.com/ccxt/ccxt/pull/29014
* test(fetchTickers): enhance tickers change & precentage accuracy by @ttodua in https://github.com/ccxt/ccxt/pull/27763
* edit postinstall by @frosty00 in https://github.com/ccxt/ccxt/pull/29128
* refactor(static-updater) - some updates by @ttodua in https://github.com/ccxt/ccxt/pull/25268
* fix(coinex): fetchCurrencies & static tests all by @ttodua in https://github.com/ccxt/ccxt/pull/25987
* feat(ai): add ccxt-cli skill by @pcriadoperez in https://github.com/ccxt/ccxt/pull/29129
* Remove vendored ecdsa static dependency, use coincurve + cryptography by @carlotestor in https://github.com/ccxt/ccxt/pull/29131
* feat(hibachi): add methods by @sc0Vu in https://github.com/ccxt/ccxt/pull/29137
* fix(binance): fetchTradesMethod by @sc0Vu in https://github.com/ccxt/ccxt/pull/29138
* refactor(bitmex)!: fetchOHLCVOpenTimestamp > useOpenTimestamp by @ttodua in https://github.com/ccxt/ccxt/pull/29142
* docs(kraken): update @see by @sc0Vu in https://github.com/ccxt/ccxt/pull/29136
* chore(go): add unique in interface by @ttodua in https://github.com/ccxt/ccxt/pull/29126
* feat(kucoin): add reduceMargin by @sc0Vu in https://github.com/ccxt/ccxt/pull/29135
* feat(docs): add survey pop up by @carlosmiei in https://github.com/ccxt/ccxt/pull/29145
* fix(cli): --no-send and --no-load-markets were silently ignored by @pcriadoperez in https://github.com/ccxt/ccxt/pull/29141
* feat(docs): add survey pop up change location by @carlosmiei in https://github.com/ccxt/ccxt/pull/29147
* feat(docs): add blog to docs.ccxt.com by @pcriadoperez in https://github.com/ccxt/ccxt/pull/29150
* refactor(bitmex): api-expires > recvWindow by @ttodua in https://github.com/ccxt/ccxt/pull/29143
* refactor(bigone): normalize options by @ttodua in https://github.com/ccxt/ccxt/pull/29151
* refactor(apex): remove odd opt by @ttodua in https://github.com/ccxt/ccxt/pull/29146
* refactor(alpaca): normalize options by @ttodua in https://github.com/ccxt/ccxt/pull/29144
* refactor(aster): normalize options by @ttodua in https://github.com/ccxt/ccxt/pull/29148
* refactor(bitmart): normalize options by @ttodua in https://github.com/ccxt/ccxt/pull/29157
* refactor(bitopro): normalize options by @ttodua in https://github.com/ccxt/ccxt/pull/29158
* refactor(bit2c): normalize options by @ttodua in https://github.com/ccxt/ccxt/pull/29154
* refactor(bitfinex): normalize options by @ttodua in https://github.com/ccxt/ccxt/pull/29155
* refactor(bitget): normalize options by @ttodua in https://github.com/ccxt/ccxt/pull/29156
* refactor(bitrue): normalize options by @ttodua in https://github.com/ccxt/ccxt/pull/29159
* Add Dependabot configuration for Go modules by @kroitor in https://github.com/ccxt/ccxt/pull/29161
* fix(go): dependabot security fixes by @kroitor in https://github.com/ccxt/ccxt/pull/29163
* chore(deps): bump golang.org/x/crypto from 0.45.0 to 0.52.0 in /go/tests/profile by @dependabot[bot] in https://github.com/ccxt/ccxt/pull/29164
* chore(deps): go/tests/types fixes by @kroitor in https://github.com/ccxt/ccxt/pull/29165
* chore(deps): dependabot go cli fixes by @kroitor in https://github.com/ccxt/ccxt/pull/29166
* feat(okx): update docs by @sc0Vu in https://github.com/ccxt/ccxt/pull/29168
* refactor(alpaca): remove gtc by @ttodua in https://github.com/ccxt/ccxt/pull/29170
* feat(ndax): add apis by @sc0Vu in https://github.com/ccxt/ccxt/pull/29167
* feat(bitso): implement fetchCurrencies; fix fetchMarkets; normalize options by @ttodua in https://github.com/ccxt/ccxt/pull/29169
* refactor(bitteam): normalize options by @ttodua in https://github.com/ccxt/ccxt/pull/29172
* fix(java): lang specific test by @carlosmiei in https://github.com/ccxt/ccxt/pull/29173
* fix(alpaca): default gtc by @ttodua in https://github.com/ccxt/ccxt/pull/29174
* fix: #28494 use native WebSocket under Bun runtime by @carlotestor in https://github.com/ccxt/ccxt/pull/29171
* fix(tests): avoid Windows Defender false positive in test.watchOrderBookForSymbols.ts by @carlotestor in https://github.com/ccxt/ccxt/pull/29177
* refactor(binance): normalize options by @ttodua in https://github.com/ccxt/ccxt/pull/29152
* build: bump TypeScript to 7.0.2 with typescript6 alias for compiler-API consumers by @carlotestor in https://github.com/ccxt/ccxt/pull/29176
* refactor(bittrade): normalize options by @ttodua in https://github.com/ccxt/ccxt/pull/29178
* fix(go): add Precision to marketinterface struct by @carlosmiei in https://github.com/ccxt/ccxt/pull/29180
* chore(aster): skip withdraw by @ttodua in https://github.com/ccxt/ccxt/pull/29183
* refactor: normalize options by @ttodua in https://github.com/ccxt/ccxt/pull/29181
* fix(build): run gofmt after Go transpile by @pcriadoperez in https://github.com/ccxt/ccxt/pull/29184
* chore(deps): bump mistune from 3.2.1 to 3.3.0 by @dependabot[bot] in https://github.com/ccxt/ccxt/pull/29186
* fix(java): regex concurrent by @carlosmiei in https://github.com/ccxt/ccxt/pull/29189
* Go transpiler: emit gofmt-formatted output, drop formatGO step by @carlotestor in https://github.com/ccxt/ccxt/pull/29191
* fix(go): unblock Send when the websocket is not connected by @vsaraikin in https://github.com/ccxt/ccxt/pull/29187
* perf(pro): convert pure WS delegators to non-async pass-through by @carlotestor in https://github.com/ccxt/ccxt/pull/29122
* fix(backpack): normalize ticker percentage with Precise.stringMul by @Functionhx in https://github.com/ccxt/ccxt/pull/29192
* fix(go): safeFloatN default assertion by @carlosmiei in https://github.com/ccxt/ccxt/pull/29193
* perf(pro): deliver ws messages through a duplex stream instead of per-message deferred events by @carlotestor in https://github.com/ccxt/ccxt/pull/29117
* fix(docs): add java reference by @carlosmiei in https://github.com/ccxt/ccxt/pull/29194
* refactor(php): allow sync only guarding async require statements fix #29196 by @kroitor in https://github.com/ccxt/ccxt/pull/29197
* feat(binance): add binance skills by @pcriadoperez in https://github.com/ccxt/ccxt/pull/29160
* fix(bingx): takeProfit & stopLoss fix by @ttodua in https://github.com/ccxt/ccxt/pull/29185

## New Contributors
* @vsaraikin made their first contribution in https://github.com/ccxt/ccxt/pull/29187
* @Functionhx made their first contribution in https://github.com/ccxt/ccxt/pull/29192

**Full Changelog**: https://github.com/ccxt/ccxt/compare/v4.5.64...v4.5.65