Releases: pmxt-dev/pmxt
Releases · pmxt-dev/pmxt
v2.22.1
Fixed
- Consistent OrderBook Error Handling: Kalshi, Limitless, and Baozi now throw
NotFounderrors for non-existing orderbooks instead of silently returning empty data. All exchanges now behave consistently with Polymarket.
Installation
npm:
npm install pmxtjs@2.22.1PyPI:
pip install pmxt==2.22.1Links
What's Changed
Full Changelog: v2.22.0f...v2.22.1f
v2.22.0
Added
- Opinion Exchange Integration: Full support for Opinion prediction market -- markets, events, OHLCV, order book, positions, orders, execution price, and WebSocket streaming. Includes
fetchMyTrades,fetchClosedOrders,fetchAllOrders, andcancelOrder. Does not yet supportfetchTradesorfetchBalance.
Installation
npm:
npm install pmxtjs@2.22.0PyPI:
pip install pmxt==2.22.0Links
Full Changelog: v2.21.2f...v2.22.0f
v2.21.2
Added
- Zenodo DOI Integration: Zenodo now automatically creates a DOI for each release, enabling reliable academic citation.
Installation
npm:
npm install pmxtjs@2.21.2PyPI:
pip install pmxt==2.21.2Links
What's Changed
- fix: keep Polymarket per-market image in UnifiedMarket mapping by @saschabuehrle in #63
New Contributors
- @saschabuehrle made their first contribution in #63
Full Changelog: v2.21.1f...v2.21.2f
v2.21.1
Added
- Zenodo DOI Integration: Zenodo now automatically creates a DOI for each release, enabling reliable academic citation.
Installation
npm:
npm install pmxtjs@2.21.1PyPI:
pip install pmxt==2.21.1Links
Full Changelog: v2.21.0f...v2.21.1f
v2.21.0
Added
- Typed Error Classes (Python SDK): 14 error classes (
BadRequest,AuthenticationError,RateLimitExceeded,NotFoundError, etc.) mirroringcore/src/errors.ts. Server error responses are automatically parsed into typed exceptions viafrom_server_error(). All catch blocks in the client now raise specificPmxtErrorsubclasses instead of genericException. - Typed Error Classes (TypeScript SDK): Matching error hierarchy with
fromServerError()factory.handleResponse()and all HTTP error paths now throw typedPmxtErrorsubclasses. All error classes exported from the package.
Fixed
- Credential Logging (Security): Removed plaintext logging of API credentials in Polymarket auth flow.
- Hardcoded Price Fallbacks: Replaced
0.5fallback prices with0in Kalshi, Baozi, and Myriad normalizers. Missing price data now correctly indicates "no price" instead of silently fabricating a 50-cent midpoint.
Installation
npm:
npm install pmxtjs@2.21.0PyPI:
pip install pmxt==2.21.0Links
Full Changelog: v2.20.3f...v2.21.0f
v2.20.3
Fixed
- Kalshi API v2 Compatibility: Handle renamed trade fields (
yes_price→yes_price_dollars,count→count_fp). Normalizer now parses both old (cents int) and new (dollar string) formats, fixingNaNprices andundefinedamounts infetchTrades/fetchMyTrades.
Changed
- Compliance Test Hardening:
fetchOHLCVtries multiple resolutions (1d,6h,1h) coarsest-first across top markets by volume instead of giving up early.watchTradesfilters for markets traded within the last 5 minutes and applies a 10-minute recency gate before attempting WebSocket watches. - Broader Skip Conditions:
isSkippableErrornow handlesAuthenticationError,PermissionDenied, missing credentials, and ESM import failures. Individual tests (createOrder,fetchPositions) cover additional expected rejection messages. - KalshiDemoExchange Excluded: Removed from compliance test matrix (redundant, no separate demo credentials).
- SDK Integration Tests: Added server-availability guard so tests skip gracefully when the PMXT server is not running.
Installation
npm:
npm install pmxtjs@2.20.3PyPI:
pip install pmxt==2.20.3Links
Full Changelog: v2.20.2f...v2.20.3f
v2.20.2
Fixed
- Probable Events API: Handle raw array response instead of expected
{ events: [] }wrapper. - Test Import: Remove vitest import from client-args test (project uses Jest).
Changed
- 3-Layer Architecture: Introduced fetcher/normalizer/SDK layer separation across all exchanges (Myriad, Polymarket, Kalshi, Limitless, Baozi, Probable).
- Stale File Cleanup: Removed superseded
fetchX.tsfiles from all exchanges, rewired websocket modules to use the new fetcher layer.
Installation
npm:
npm install pmxtjs@2.20.2PyPI:
pip install pmxt==2.20.2Links
Full Changelog: v2.20.1f...v2.20.2f
v2.20.1
Fixed
- Error Mapper: SDK Error Extraction (#56): Third-party SDK errors (e.g.
@polymarket/clob-client) that attach HTTP metadata (.status,.statusCode,.response) toErrorinstances are now properly mapped to specific error classes (InsufficientFunds,AuthenticationError,InvalidOrder, etc.) instead of falling through to a genericBadRequest. The error mapper also extracts the real API error message from.response.datainstead of using the SDK's generic.message.
Changed
- Error Mapper: Deduplicated Status Code Mapping: Extracted shared
mapByStatusCode()method to eliminate duplicated switch logic across axios, plain-object, and SDK error handling paths.
Installation
npm:
npm install pmxtjs@2.20.1PyPI:
pip install pmxt==2.20.1Links
Full Changelog: v2.20.0f...v2.20.1f
v2.20.0
Added
- Address Watcher & Subscriber System: Introduced
watchAddress()andunwatchAddress()methods onBaseExchange, along with a new subscriber infrastructure (core/src/subscriber/) for monitoring on-chain address activity. Supports optional address parameter for flexible subscription management. - GoldSky Integration: Added GoldSky GraphQL subscription implementation (
core/src/subscriber/external/goldsky.ts) for real-time on-chain event streaming. Integrated into the Limitless exchange for live data feeds. - Whale Tracker Examples: Added Python and TypeScript example scripts (
core/examples/social/) demonstrating how to track large-position holders using the SDK. - SDK:
buildOrder/submitOrderSupport: Both the Python and TypeScript SDKs now exposebuildOrder()andsubmitOrder()methods, along with theBuiltOrdertype, enabling the two-step order workflow introduced in v2.19.0. - Trade
outcomeIdField: AddedoutcomeId(asset ID) to theTradetype for clearer asset-level trade identification.
Fixed
- Kalshi Orderbook: Switched from the removed legacy
orderbookfield toorderbook_fp, fixing broken orderbook fetches on the Kalshi exchange. - Limitless
baseUrlParameter: Fixed incorrect base URL handling in the Limitless exchange configuration. - Exchange Imports: Fixed missing or incorrect
index.tsimports across exchange modules. - Test Infrastructure: Replaced vitest imports with Jest globals in price tests to match the project's test runner.
- Whale Tracker Examples & SDK Bugs: Fixed issues in example scripts and resolved minor SDK client bugs.
- TypeScript SDK Merge Conflicts: Resolved merge conflicts in the TypeScript SDK client.
Changed
- Polymarket WebSocket: Enriched the Polymarket websocket implementation with improved event handling and user position tracking.
- Limitless WebSocket & GoldSky Integration: Refactored the Limitless exchange to integrate GoldSky watcher and subscriber, with improved websocket configuration.
- Exchange Interfaces: Refactored
BaseExchangeinterfaces, updated type names, and standardized exchange interface implementations across Polymarket, Limitless, Myriad, and others. - Price Helpers: Centralized exchange price helpers and standardized argument building across exchanges.
- Watcher Dispatch Optimization: Updated the watcher to dispatch events only when there is an actual change, reducing unnecessary notifications.
- OpenAPI & API Reference: Auto-regenerated
openapi.yamlandAPI_REFERENCE.mdto reflect all new endpoints and types. - SDK Models & Documentation: Updated Python and TypeScript SDK models, API reference docs, and added client example code.
Installation
npm:
npm install pmxtjs@2.20.0PyPI:
pip install pmxt==2.20.0Links
What's Changed
- feat(ts-sdk): add buildOrder method and BuiltOrder type by @Aboudjem in #57
- feat: add 'watchAddress' and 'unwatchAddress' for a real-time address watching system by @psyberck in #55
- feat: raw mode preserve original formats by @alexandretrotel in #49
New Contributors
- @Aboudjem made their first contribution in #57
- @psyberck made their first contribution in #55
- @alexandretrotel made their first contribution in #49
Full Changelog: v2.19.6f...v2.20.0f
v2.19.6
Added
- TypeScript SDK Auto-Generation: Upgraded
sdks/typescript/scripts/generate-client-methods.jsto derive return types and patterns directly from theBaseExchange.tsAST, mirroring the Python generator. The manualMETHOD_RETURN_CONFIGhas been eliminated, permanently removing the risk of documentation and signature drift.
Fixed
- CI/CD: SDK Drift Guards: Removed the
pathsfilter frompython-client-check.ymlandtypescript-client-check.yml. These drift guards now run on every pull request. Previously, manual edits toclient.pyorclient.tswould bypass the check if the PR didn't also touchBaseExchange.tsor the generator scripts.
Installation
npm:
npm install pmxtjs@2.19.6PyPI:
pip install pmxt==2.19.6Links
Full Changelog: v2.19.5f...v2.19.6f