Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 18 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion oxarchive/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@
OxArchiveWs = None # type: ignore
WsOptions = None # type: ignore

__version__ = "1.9.1"
__version__ = "1.10.0"

__all__ = [
# Client
Expand Down
13 changes: 9 additions & 4 deletions oxarchive/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)."""
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
Loading