v4.5.76

Zackriya-Solutions/meetilyv4.5.76Aug 26, 2026by ccxt-release[bot]

AI Summary

Focuses on fixing websocket authentication issues (single-flight) and performance optimizations across multiple exchanges.

Key Highlights

  • Official CCXT MCP server release
  • Single-flight websocket token authentication fixes
  • Performance optimizations in PHP, JS, and Go

New Features

  • Official CCXT MCP server
  • Single-flight websocket authentication

Full Release Notes

## What's Changed
* fix(lbank): single-flight subscribeKey authenticate (refs #29393) by @carlotestor in https://github.com/ccxt/ccxt/pull/29993
* fix(bitstamp): single-flight websocket token authenticate (refs #29393) by @carlotestor in https://github.com/ccxt/ccxt/pull/29994
* fix(xt): single-flight listen key acquisition (refs #29393) by @carlotestor in https://github.com/ccxt/ccxt/pull/29997
* fix(kraken): single-flight websockets token authenticate (refs #29393) by @carlotestor in https://github.com/ccxt/ccxt/pull/29996
* fix(whitebit): single-flight websocket token authenticate (refs #29393) by @carlotestor in https://github.com/ccxt/ccxt/pull/30000
* fix(bitrue): single-flight listenKey authenticate (refs #29393) by @carlotestor in https://github.com/ccxt/ccxt/pull/29999
* fix(hashkey): single-flight listenKey authenticate (refs #29393) by @carlotestor in https://github.com/ccxt/ccxt/pull/29995
* fix(tokocrypto): route fetchTrades by symbol type and await the open/v1 response by @rayBastard in https://github.com/ccxt/ccxt/pull/30013
* fix(bingx): correct fetchTrades limits by @AresArtemius in https://github.com/ccxt/ccxt/pull/30011
* fix(deepcoin): single-flight listenKey authenticate (refs #29393) by @carlotestor in https://github.com/ccxt/ccxt/pull/29998
* fix(bybit): anchor fetchOpenInterestHistory window when only since is given by @carlotestor in https://github.com/ccxt/ccxt/pull/30016
* fix(bithumb): remove incorrect ALT -> ArchLoot commonCurrencies mapping by @factec-kyle in https://github.com/ccxt/ccxt/pull/30015
* fix(gate): convert since to seconds in fetchOpenInterestHistory by @carlotestor in https://github.com/ccxt/ccxt/pull/30018
* chore: fix wiki-pushback by @carlosmiei in https://github.com/ccxt/ccxt/pull/30020
* fix(bingx): reject unsupported Coin-M fetchTrades by @AresArtemius in https://github.com/ccxt/ccxt/pull/30021
* fix(bingx): correct Coin-M open interest by @AresArtemius in https://github.com/ccxt/ccxt/pull/30026
* perf: python Precise by @ttodua in https://github.com/ccxt/ccxt/pull/30024
* docs(blog): add "Front-running the S-1" Anthropic-IPO prediction-markets post by @pcriadoperez in https://github.com/ccxt/ccxt/pull/30025
* fix(upbit): do not default unknown order side to sell by @rayBastard in https://github.com/ccxt/ccxt/pull/30012
* feat(mcp): official CCXT MCP server by @pcriadoperez in https://github.com/ccxt/ccxt/pull/29277
* chore(deps): bump hono from 4.12.31 to 4.13.3 in /mcp by @dependabot[bot] in https://github.com/ccxt/ccxt/pull/30029
* build(go): trampoline async cores so Promise.all fans out like the C#/Java ports by @carlotestor in https://github.com/ccxt/ccxt/pull/29647
* fix(java): bump msgpack-core to 0.9.12 (CVE-2026-21452) by @huiboxes in https://github.com/ccxt/ccxt/pull/30040
* refactor(php): one fiber per HTTP call (3 → 1) — collapse fetch2 and fetch by @carlotestor in https://github.com/ccxt/ccxt/pull/30039
* chore(deps): bump undici and ccxt in /mcp by @dependabot[bot] in https://github.com/ccxt/ccxt/pull/30030
* fix(whitebit): parse TradFi futures as swaps by @AresArtemius in https://github.com/ccxt/ccxt/pull/30033
* chore(deps): bump @hono/node-server from 1.19.14 to 1.19.17 in /mcp by @dependabot[bot] in https://github.com/ccxt/ccxt/pull/30032
* chore(deps): bump fast-uri from 3.1.4 to 3.1.5 in /mcp by @dependabot[bot] in https://github.com/ccxt/ccxt/pull/30035
* chore(deps): bump ip-address from 10.2.0 to 10.5.0 in /mcp by @dependabot[bot] in https://github.com/ccxt/ccxt/pull/30031
* fix(bingx): parse position liquidation price by @AresArtemius in https://github.com/ccxt/ccxt/pull/30034
* fix(bingx): parse Coin-M funding rate response by @AresArtemius in https://github.com/ccxt/ccxt/pull/30023
* fix(blofin): order cost is the quote volume, not the margin by @mkzung in https://github.com/ccxt/ccxt/pull/29975
* fix(bingx): ignore account updates without positions by @AresArtemius in https://github.com/ccxt/ccxt/pull/29948
* go: type wrapper optional locals and core body locals from TypeScript by @carlotestor in https://github.com/ccxt/ccxt/pull/30041
* fix(pro): js indexed order book side builds holes from no-op deltas by @L1nkus in https://github.com/ccxt/ccxt/pull/30049
* perf(pro): js order book side shift without copyWithin -3.3x by @L1nkus in https://github.com/ccxt/ccxt/pull/30048
* feat(cs): type wrapper optional scalar locals from TypeScript by @carlotestor in https://github.com/ccxt/ccxt/pull/30053
* fix(paradex): read reduceOnly from the flags array in parseOrder by @rayBastard in https://github.com/ccxt/ccxt/pull/30065
* feat(benchmarks): cross-language performance benchmark + blog post by @pcriadoperez in https://github.com/ccxt/ccxt/pull/30028
* fix(bingx): reject unsupported Coin-M leverage tiers by @AresArtemius in https://github.com/ccxt/ccxt/pull/30076
* fix(bingx): reject unsupported Coin-M position mode by @AresArtemius in https://github.com/ccxt/ccxt/pull/30068
* fix(paradex): omit zero trigger_price in parseOrder by @rayBastard in https://github.com/ccxt/ccxt/pull/30069
* fix(typescript): remove truth coercion by @carlosmiei in https://github.com/ccxt/ccxt/pull/30080
* perf(js): getValueFromKeysInArray optimization by @ttodua in https://github.com/ccxt/ccxt/pull/29798
* perf: check string first by @ttodua in https://github.com/ccxt/ccxt/pull/29804
* perf: undefined optimization in type by @ttodua in https://github.com/ccxt/ccxt/pull/29806
* fix(bingx): restrict position close by id to linear by @AresArtemius in https://github.com/ccxt/ccxt/pull/30088
* fix(p2b): read errorCode from response root in handleErrors by @rayBastard in https://github.com/ccxt/ccxt/pull/30098
* perf(go): precise reorganization by @ttodua in https://github.com/ccxt/ccxt/pull/30043
* perf(c#): precise optimization (c) by @ttodua in https://github.com/ccxt/ccxt/pull/30089
* perf(java): precise optimization (c) by @ttodua in https://github.com/ccxt/ccxt/pull/30090
* fix(btse): derive ticker percentage instead of using the raw ratio field by @carlotestor in https://github.com/ccxt/ccxt/pull/30093
* feat(cs): type the generated C# cores (incl. createOrder -> Task<Order>) and their parameters by @carlotestor in https://github.com/ccxt/ccxt/pull/30066
* refactor(ts): require boolean conditions via strict-boolean-expressions by @carlotestor in https://github.com/ccxt/ccxt/pull/30082
* fix(krakenfutures): raise ExchangeNotAvailable on degraded fetchPositions response by @akshaykumarhudedmani in https://github.com/ccxt/ccxt/pull/30084
* fix(xt): support postOnly orders via timeInForce GTX by @rayBastard in https://github.com/ccxt/ccxt/pull/30059
* ci(js): persist emitAPI abstracts on master auto-commit by @carlotestor in https://github.com/ccxt/ccxt/pull/30111
* bitget parseUtaBalance fix by @ndubel in https://github.com/ccxt/ccxt/pull/30083
* feat(cs): fold watch* Copy into cores and drop leftover wrappers by @carlotestor in https://github.com/ccxt/ccxt/pull/30110
* docs: remove status page from docs site and sidebar by @carlotestor in https://github.com/ccxt/ccxt/pull/30112
* fix(p2b): map min_total to market limits.cost by @rayBastard in https://github.com/ccxt/ccxt/pull/30099
* fix(pacifica): resolve order symbol in parseOrder and return latest order state from fetchOrder by @rayBastard in https://github.com/ccxt/ccxt/pull/30097
* fix(alpaca): declare limits.cost.min of 10 for USD-quoted crypto markets by @rayBastard in https://github.com/ccxt/ccxt/pull/30101
* fix(paradex): expose liquidation_price in parsePosition by @rayBastard in https://github.com/ccxt/ccxt/pull/30096
* fix(bingx): normalize leverage side by @AresArtemius in https://github.com/ccxt/ccxt/pull/30070
* fix(xt): satisfy strict-boolean-expressions lint on postOnly checks by @rayBastard in https://github.com/ccxt/ccxt/pull/30115
* fix(alpaca): classify error 40310000 by message, not by code by @rayBastard in https://github.com/ccxt/ccxt/pull/30103
* fix(tokocrypto): read market margin flag from marginTradingEnable by @rayBastard in https://github.com/ccxt/ccxt/pull/30064
* fix(bingx): reject unsupported Coin-M createOrders by @AresArtemius in https://github.com/ccxt/ccxt/pull/30091
* fix(alpaca): fetchTickers without symbols defaults to all markets by @rayBastard in https://github.com/ccxt/ccxt/pull/30102
* fix(alpaca): fetchOHLCV since sent day-truncated, intraday ranges return empty by @rayBastard in https://github.com/ccxt/ccxt/pull/30100
* fix(bingx): satisfy strict-boolean-expressions lint on the inverse market check by @rayBastard in https://github.com/ccxt/ccxt/pull/30118
* feat(transpiler): basetests only transpilation by @ttodua in https://github.com/ccxt/ccxt/pull/30116
* fix(binance): drop 'stock' from default fetchMarkets types by @carlotestor in https://github.com/ccxt/ccxt/pull/30126
* fix(bybit): increase paginationCalls in fetchLeveragetiers by @carlosmiei in https://github.com/ccxt/ccxt/pull/30127

## New Contributors
* @factec-kyle made their first contribution in https://github.com/ccxt/ccxt/pull/30015
* @huiboxes made their first contribution in https://github.com/ccxt/ccxt/pull/30040
* @akshaykumarhudedmani made their first contribution in https://github.com/ccxt/ccxt/pull/30084

**Full Changelog**: https://github.com/ccxt/ccxt/compare/v4.5.75...v4.5.76