From 7b2da6aebdd50a8f9165b8947ae803b0c5b37b0f Mon Sep 17 00:00:00 2001 From: 0xFantomMenace <93462858+0xFantomMenace@users.noreply.github.com> Date: Wed, 23 Sep 2026 02:38:34 +0000 Subject: [PATCH] Release 1.10.0 Document what a zero and a missing value mean on trade fee, closed_pnl and start_position: the API now returns recorded zeros, and omits a field only when the source did not record it. HIP-3 and HIP-4 trades now carry these fields too. 1.8.0, 1.9.0 and 1.9.1 are not on PyPI, so 1.10.0 collects every change since 1.7.0 and aligns the Python, TypeScript and Rust SDKs on one version. --- CHANGELOG.md | 21 ++++++++++++++++++--- oxarchive/__init__.py | 2 +- oxarchive/types.py | 13 +++++++++---- pyproject.toml | 2 +- 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 103cfa4..386910e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,10 @@ All notable changes to the `oxarchive` Python SDK are documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [1.10.0] - 2026-09-23 + +Versions 1.8.0, 1.9.0 and 1.9.1 are not available on PyPI. This release +includes all of their changes; upgrade from 1.7.0 straight to 1.10.0. ### Added - HIP-3 breadth above current UTC-session VWAP via @@ -18,14 +21,26 @@ this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm Hyperliquid Spot L4 remain live-only. ### Changed - -- Correct Lighter per-fill trade history to the observed global floor of January 17, 2025; exact starts vary by market. This supersedes the August floor documented in the earlier release notes below. +- Trade `fee`, `closed_pnl` and `start_position` are now returned as `"0"` + when the venue recorded a zero, instead of being omitted. A missing value + now means the source did not record it (for example fills from 2025-03-22 to + 2025-05-25), never zero. This is a server-side change and applies to every + SDK version. +- HIP-3 and HIP-4 trades now include `fee`, `fee_token`, `closed_pnl` and + `start_position`. +- Correct Lighter per-fill trade history to the observed global floor of + January 17, 2025; exact starts vary by market. This supersedes the August + floor documented in the earlier release notes below. - Lighter WebSocket channels now support bounded historical replay without live subscriptions. Current Lighter data remains available through REST; live subscription calls fail fast with guidance to REST or replay. - Projected forced-liquidation price-level endpoints refresh about every five minutes. This is a measured cadence, not an exact five-minute guarantee. +### Fixed +- Lighter symbols are encoded as a single path segment in every resource and + convenience method, sync and async. + ### Breaking - Lighter `funding_rate` is now a fractional, non-annualized rate. Consumers that compensated for the former percent units must remove that conversion; diff --git a/oxarchive/__init__.py b/oxarchive/__init__.py index 944e8dd..9e3f35b 100644 --- a/oxarchive/__init__.py +++ b/oxarchive/__init__.py @@ -124,7 +124,7 @@ OxArchiveWs = None # type: ignore WsOptions = None # type: ignore -__version__ = "1.9.1" +__version__ = "1.10.0" __all__ = [ # Client diff --git a/oxarchive/types.py b/oxarchive/types.py index cfe0602..7f94b44 100644 --- a/oxarchive/types.py +++ b/oxarchive/types.py @@ -116,19 +116,24 @@ class Trade(BaseModel): """True if taker (crossed the spread), false if maker.""" fee: Optional[str] = None - """Trading fee amount.""" + """Fee paid on this fill in ``fee_token``, including any builder fee; negative + is a rebate. ``"0"`` is a recorded zero fee. ``None`` when the source did not + record fees, for example fills from 2025-03-22 to 2025-05-25.""" fee_token: Optional[str] = None - """Fee denomination (e.g., USDC).""" + """Fee denomination (e.g., USDC). Present exactly when ``fee`` and + ``closed_pnl`` were recorded.""" closed_pnl: Optional[str] = None - """Realized PnL if closing a position.""" + """Realized PnL on this fill. ``"0"`` when the fill opened or added to a + position. ``None`` when the source did not record it (same cases as ``fee``).""" direction: Optional[str] = None """Position direction (e.g., 'Open Long', 'Close Short', 'Long > Short').""" start_position: Optional[str] = None - """Position size before this trade.""" + """Position size (spot: balance) before this fill; negative is short. ``"0"`` + means flat. ``None`` when the source did not record it.""" user_address: Optional[str] = None """User's wallet address (for fill-level data).""" diff --git a/pyproject.toml b/pyproject.toml index 92737d3..ff2fa38 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "oxarchive" -version = "1.9.1" +version = "1.10.0" description = "Python SDK for the 0xArchive market data API for Hyperliquid and Lighter" readme = "README.md" license = "MIT"