- (clob)
BalanceAllowanceResponse.allowance: Stringreplaced withallowances: HashMap<String, String>to match upstream API change (#1) - (clob) Several fields on
Marketchanged toOption<T>:question_id,minimum_order_size,minimum_tick_size,description,question(#1) - (clob) Several fields on
SpreadResponsechanged toOption<T>:token_id,bid,ask(#1) - (clob) Several fields on
LastTradePriceResponsechanged toOption<T>:token_id,last_trade_price,timestamp; new optional fieldsprice,side(#1)
- (core) Add concurrency limiter to
HttpClientfor Cloudflare connection limits (#3) - (core) Set default concurrency limits in all API client builders (#3)
- (relay) Hold concurrency permit across full request lifetime (#3)
- (data) Hold concurrency permit across full request lifetime (#3)
- (py) Scaffold
polyoxide-pycrate with PyO3 + maturin (#2) - (py) Add Gamma, Data, and CLOB domain type wrappers via
py_type!macro (#2) - (py) Add Gamma, Data, and CLOB clients with sync + async variants (#2)
- (py) Add
.pyitype stubs andpy.typedmarker (#4) - (py) Export all type classes from polyoxide package (#4)
- (clob) Update
BalanceAllowanceResponsefor upstream API field change fromallowancetoallowances(#1) - (clob) Make optional fields on
Market,SpreadResponse, andLastTradePriceResponseto match upstream API (#1)
- (core) Add concurrency limiter integration and default verification tests (#3)
- (py) Add live API tests and expand unit tests (#2)
- Add upstream Polymarket API specs for CLOB, Gamma, Data, and Relay
- Add design and implementation plans for PyPI publishing (#4)
- Add Python bindings test job (#2)
- Add PyPI wheel build and publish to release workflow (#4)
- Filter release artifacts to exclude Python wheels (#4)
- Add
*.soand.claude-squaddirectory to.gitignore
- (clob) Add RFQ namespace for request-for-quote trading
- (clob) Add rewards namespace for liquidity reward tracking
- (clob) Add auth namespace for API key management
- (clob) Add batch order operations and single order lookup
- (clob) Add batch pricing endpoints for books, prices, midpoints, spreads, and last trades
- (clob) Add single pricing, live activity, calculate price, and server time endpoints
- (clob) Add heartbeat, notifications, order scoring, and ban status endpoints
- (clob) Add simplified/sampling market lists and builder trades endpoint
- (clob) Add
ListClobTradesrequest builder with filter methods - (gamma) Add missing endpoints and query params across all namespaces
- (gamma) Add public search endpoint for profiles, events, and tags
- (gamma) Complete
UserResponsewith profile, bio, and badge fields - (data) Add trader leaderboard endpoint and move
TimePeriodto types
- (clob) Fix 5 critical deserialization crashes against live API
- (clob) Add missing fields to
OpenOrder,OrderResponse, andTradetypes - (clob) Add missing fields to
OrderBooktype - (gamma) Correct 6 serde renames and expand
SeriesInfoto match live API - (gamma) Align SDK types with real Polymarket API responses
- (data) Add missing
verifiedfield toHoldertype - (core) Replace silent epoch fallback with explicit panic in
current_timestamp - (cli) Use
floor_char_boundaryfor safe UTF-8 string truncation
- (clob) Make gamma dependency optional behind
gammafeature flag - (clob) Extract WebSocket subscription validation helper
- (clob) Deduplicate EIP-712 order conversion and digest computation
- (core) Simplify rate limiter config with
endpoint_limithelper - (relay) Extract retry helper, named constants, and module-level types
- (clob) Add 73 new tests: WebSocket message types, utils, error, mock API (retry, errors, order creation), rejection and edge cases
- (gamma) Add mock tests for open() inversion, volume serde renames, and events namespace
- (data) Add 12 mock HTTP tests bootstrapping polyoxide-data coverage
- (core) Fix retry mock strictness and add 401/403/408 error tests
- (cli) Add multibyte and emoji edge case tests for truncate
- Add mockito HTTP mock tests for core, gamma, and clob
- Add docstrings across workspace, complete relay crate coverage
- Fix incorrect API examples and update project documentation
- Add mockito workspace dev-dependency for HTTP mock tests
- Move futures-util from workspace deps to per-crate
- Specify per-crate tokio features instead of workspace-wide
- Apply rustfmt to gamma and data
- (clob)
WebSocketBuilder::market_url()anduser_url()now returnResult<Self, WebSocketError>to enforcewss://scheme validation - (core) MSRV raised from 1.75 to 1.91 (required by
str::floor_char_boundary) - (core) HTTP client now disables redirect following to prevent open redirect attacks
- (relay) Strip
0xprefix fromPROXY_INIT_CODE_HASHto preventhex::decodepanic at runtime - (core) Truncate response bodies in error logs to 512 chars to prevent sensitive data leakage
- (clob) Truncate response bodies in error logs to 512 chars
- (relay) Truncate response bodies in error logs to 512 chars
- (core) Add 10-second connect timeout to HTTP client
- (clob) Enforce
wss://scheme on WebSocket builder URLs to prevent plaintext connections
- (clob) Redact
private_keyinAccountConfigDebugimpl to prevent secret leakage in logs - (relay) Redact signer key in
BuilderAccountDebugimpl, showing only address - Harden
.gitignoreto cover.env.*,*.pem,*.key, andaccount.json
- (core) Add tests for prefix collisions, concurrency, and retry edge cases
- (core) Add unit tests for
truncate_for_logincluding multibyte boundary handling - (clob) Add tests for WebSocket URL scheme validation
- (clob) Add test for
AccountConfigDebug redaction - (relay) Add test for
BuilderAccountDebug redaction
- Remove sccache and add lightweight ci profile
- Consolidate publish steps into retry loop
- Use cargo-nextest for parallel test execution
- Merge lint/test jobs and remove redundant release build
- Apply cargo fmt across workspace
- (core) Parse
Retry-Afterheader for server-guided backoff delays - (core) Expose
RetryConfigthrough all high-level client builders (Clob,Gamma,DataApi,RelayClient)
- (core) Add segment-boundary-aware endpoint matching to prevent
/pricefrom matching/prices-history - (core) Replace
SystemTimenanos withfastrandfor uniform backoff jitter - (clob) Generate fresh L1 auth timestamp on each retry to avoid staleness
- (relay) Add retry loops with 429 handling to all relay endpoints
- Prune unused deps, tokio/alloy features, and fix TLS duplication
- Apply rustfmt formatting across workspace
- Add testing conventions and module organization to CLAUDE.md
- Replace rust-cache with sccache for shared compilation caching
- (core) Add per-endpoint rate limiting with configurable quotas, retry-on-429 backoff with jitter, and governor-based throttling
- (core) Fix rate limit quota precision, backoff jitter range, and add missing endpoint quota
- (core) Carry message context in RateLimit error variant and downgrade retry log level
- (core) Redact secrets from Debug impls to prevent log leakage
- (clob) Use BUY/SELL strings for price endpoint side parameter
- (clob) Use typed request for
get_fee_ratewith correct field and token_id - (clob) Fix tautological assertion in salt test
- (clob) Reject NaN and infinity in order parameter validation
- (clob) Classify service errors as Api instead of Validation
- (clob) Return None on insufficient liquidity and increase salt entropy
- (data) Route all HTTP calls through Request for rate limiting and 429 retries
- (data) Align Display impls with serde SCREAMING_SNAKE_CASE for sort enums
- (relay) Replace unwraps with error propagation and compile-time address validation
- (cli) Replace
process::exitwith Result-based error handling in WS credentials and completions - (cli) Reject invalid activity types with error instead of silently dropping
- (core) Make
Signer::newinfallible
- (core) Add unit tests for Request query builder and typed request
- (clob) Add unit tests for EIP-712 signing, WS types, and auth credentials
- (clob) Add live integration tests for CLOB public endpoints
- (data) Add unit tests for enum serialization, builders, and type serde
- (data) Add live integration tests for data API public endpoints
- (gamma) Add unit tests for type deserialization and client builder
- (relay) Add unit tests for types serde, address derivation, signature packing, hex constants, contract config, and builder defaults
- (cli) Add unit tests for argument parsing across all subcommands
- Add live integration tests for all API endpoints
- (core) Remove verbose request/response body logging from HTTP clients
- (clob) Remove verbose request/response body logging from HTTP clients
- (relay) Remove verbose request/response body logging and leftover
eprintln!debug statements
- Migrate price and size fields from String to Decimal with
serde(with = "rust_decimal::serde::str")for accurate serialization
- (clob) Add
canceled_order_idandmessagefields toCancelResponseand marksuccessas default.
- (relay) Update builder to default to Polygon Mainnet (137) and relay V2 (
https://relayer-v2.polymarket.com/) - (relay) Update
RelayClientBuilderto implementDefault
- (core) Add unified authentication module with HMAC signing and timestamp generation
- (core) Add
Signerstruct supporting multiple base64 formats (URL-safe and standard) - (core) Add
current_timestamp()function for safe Unix timestamp generation - (core) Add
Base64Formatenum to support both URL-safe and standard base64 encoding - (core) Add
impl_api_error_conversions!macro to reduce error conversion boilerplate
- (core) Consolidate HMAC signing logic from CLOB and Relay into shared
Signerimplementation - (core) Consolidate timestamp generation into single safe implementation
- (clob) Refactor
Signerto usepolyoxide_core::Signeras thin wrapper with CLOB-specific error handling - (clob) Extract market metadata fetching into
get_market_metadata()helper method - (clob) Extract fee rate fetching into
get_fee_rate()helper method - (clob) Extract maker address resolution into
resolve_maker_address()helper method - (clob) Extract order building into
build_order()helper method - (clob) Simplify
create_order()andcreate_market_order()by using extracted helpers (~140 lines removed) - (relay) Update to use
polyoxide_core::Signerandcurrent_timestamp()for authentication - (gamma) Use
impl_api_error_conversions!macro to reduce error conversion boilerplate - (data) Use
impl_api_error_conversions!macro to reduce error conversion boilerplate
- (relay) Add gas estimation for redemption transactions with safety buffer and relayer overhead
- (relay) Add
estimate_redemption_gasmethod to estimate gas costs using RPC provider simulation - (relay) Add
submit_gasless_redemption_with_gas_estimationmethod for redemptions with optional gas estimation - (relay) Add default RPC URLs to contract configuration for Polygon mainnet and Amoy testnet
- (repo) Rename project from
polytetopolyoxide
- (clob) Add health API namespace with ping method
- (relay) Introduce
polyte-relaycrate for interacting with relayer services - (relay) Add gasless redemption functionality via relayer v2 API
- (relay) Introduce
BuilderAccountfor centralized signer and config management - (clob) Introduce
MarketOrderArgsand market order calculation utilities - (clob) Enhance order creation logic with maker address determination and optional funder parameter
- (clob) Integrate polyte-gamma client into Clob and ClobBuilder
- (clob) Add
neg_riskandtick_sizemethods to markets search - (clob) Add
neg_risksupport for orders - (clob) Implement funder and signature type support
- (clob) Add
get_by_token_idsmethod to retrieve markets by token IDs - (clob) Add
prices_historymethod for historical token prices - (clob) Add Display impl for OrderKind and SignatureType
- (clob) Introduce PartialCreateOrderOptions for enhanced order creation flexibility
- (gamma) Introduce Gamma User API
- (gamma) Add
volume_1yrfield to match Gamma API naming conventions - (data) Add USDC balance endpoint to account API
- (data) Update
BalanceAllowanceResponseto use HashMap for allowances - (polyte) Add DataApi to unified Polymarket client
- (types) Add
is_proxymethod toSignatureTypeenum - (error) Add service error creation method to ClobError
- (clob) Use precise decimal arithmetic and explicit TickSize parsing
- (clob) Update order amount calculations to support 6 decimal places
- (clob) Update owner field in order payload to use account address
- (clob) Add custom deserialization for minimum_tick_size to handle both string and number formats
- (gamma) Correct typos in Market and Event field names
- (error) Enhance API error logging by capturing raw response body
- (tests) Update salt generation test to check for non-empty output
- (clob) Serialize OrderSide enum variants as 'BUY' and 'SELL' strings
- (clob) Update ClobBuilder to use optional account and introduce with_account method
- (clob) Restructure EIP-712 domain and order definitions into protocol module
- (clob) Implement custom serialization and deserialization for
SignatureTypeenum - (gamma) Rename
activefilter toopenfor market and series listing - (gamma) Rename user proxy field to
proxyWalletin API response - (gamma) Rename
wallet_addressquery parameter toaddressin public profile API - (core) Add shared HTTP client infrastructure
- Remove Result type aliases in favor of explicit types
- Refactor amount calculations to use f64 arithmetic
- Add CLAUDE.md with project guidance and architecture overview
- Update
thiserrordependency to version 2.0.17 - Add
spectasupport in multiple modules - Add
dotenvydependency
- (clob) Correct the type of the OrderBook timestamp
- Add changelog and publish it on Github Releases page
- (cli) Use limit flag instead of hardcorded value
- (gamma) Typo
- (cli) Move duplicates into
commonmodule - Use clap
value_parserfor comma-separated arguments
- Format
- Remove unnecessary doc
- (cli) Improve credential error messages for
ws usercommand
- (clob) Add websocket support
- (cli) Add support for Clob websockets
- Consolidate auth into account module
- Update Clob documentation
- Remove clob examples
- Change
comment_counttype from u32 to i64 to prevent sentinel value issues
- Extract common Request builder to
polyte-core
- Update CLI README
- Update
polyteREADME
- Remove gamma examples
- Update Event type in Gamma
- Add support for Builders API
- Fix typo
- Add support for Data API
- Remove deprecated code
- Reuse
SortOrderenum
- (gamma) Change
order_min_price_tick_sizeandorder_min_sizetof64
- (cli) Chain builder methods for request construction
- Bump versions
- Release cli-v0.1.4
- Clean-up types and make them more exhaustive
- Typo
- (cli) Set default values to flags
- Enable retrieving a market by its slug
- Add cli commands presets and more flags
- Deserialize API responses into correct structs
- Run
cargo fmt
- (cli) Add command to display CLI version
- Add more unit tests for utils
- Enable generating shell completions
- Add cli
- Add links to crates documentation
- Say it's wip in README
- Make Polymarket client clonable
- Bump deps
- Bump
alloyto latest and move it clob crate - Add install script and workflow to release binaries on Github Releases
- Fix release workflow