Skip to main content

0.1.0

  • Graduated the SDK to the stable 0.x release line, marked Perps APIs as experimental, and removed deprecated compatibility APIs.
  • Added Perps support for reduce-only orders, account stats, cancel-all, TP/SL metadata and placement, batched fill and trade frames, and stricter order request validation.
  • Added conditionId aliases to CLOB order book, open order, trade, and builder trade models while keeping market available as a deprecated alias.
  • Typed CLOB cancellation results with branded OrderId values for canceled and notCanceled keys.

0.1.0-beta.18

  • setupTradingApprovals and prepareTradingApprovals no longer request approvals for the retired CLOB v1 Neg Risk Adapter.
  • Streams drop unknown or unreadable WebSocket frames instead of closing the connection. RFQ quoter sessions no longer fail with TransportError on an unrecognized frame; a caller waiting on an unreadable acknowledgement fails through its acknowledgement timeout instead.
  • Removed RfqKnownInboundMessageSchema from @polymarket/bindings; each RFQ inbound message schema declares its own object shape directly.

0.1.0-beta.17

  • RFQ quoter sessions now keep running when the server introduces new error codes. RfqErrorCode is an open type: known codes are enumerated in RfqKnownErrorCode, and unrecognized codes flow through rejection errors as plain strings.
  • Deprecated the RfqErrorCode value alias; migrate enum member access:
  • Added ConnectionLostError carrying the WebSocket close code and reason. Losing an RFQ session connection now rejects in-flight operations and fails the session iterator with it, instead of ending the event loop silently. Closing the session still ends iteration cleanly.
  • Streamed market and user events normalize empty-string optional decimal fields (for example a trade’s feeRateBps or a price change’s bestBid and bestAsk) to null.
  • Batch price reads (fetchPrices, fetchMidpoints, fetchSpreads) return TokenId-keyed records of branded decimal strings.
  • Perps sessions handle fills and trades frames that batch multiple entries.

0.1.0-beta.16

  • Added RESOLVED_PARTIAL to ComboPositionStatus so Combo positions that resolve at a fractional payout (for example a voided leg) parse correctly instead of failing validation.

0.1.0-beta.15

  • Combo activity now parses the canonical type field returned by the Data API, instead of deriving lifecycle actions from legacy fields.

0.1.0-beta.14

  • Added SDK pagination for Combo lifecycle activity and server-cursor pagination for Combo positions.
  • Added Combo position sync request fields and exposed outcome and redeemable on Combo positions.
  • Branded Combo activity row IDs.
  • Breaking beta change: Combo activity and position fields now use wallet, amount, and payout; Combo activity rows no longer expose moduleKind.

0.1.0-beta.13

  • Added listMarketClarifications for reading market clarification text with SDK-owned pagination and market, event, state, question, and transaction filters.
  • Fixed legacy Proxy wallet gasless execution and added live Safe and Proxy wallet coverage.
  • Resolve closed markets when preparing market position redemptions.
  • Gasless transaction handles now wait for relayer transactions to reach confirmed state before resolving.

0.1.0-beta.12

  • Require GTD limit order expirations to be at least 3 minutes in the future.

0.1.0-beta.11

  • Support CLOB order tick sizes 0.005 and 0.0025.
  • Pagination request cursors now infer the branded pagination cursor type.

0.1.0-beta.10

  • Preserve already-deployed legacy UUPS Deposit Wallets when createSecureClient resolves the default wallet, while new Deposit Wallet deployments use the beacon factory path.

0.1.0-beta.9

  • Added PriceHistoryInterval and SearchSort exports, preserved groupItemTitle on normalized markets, and published expectPrivateKey from @polymarket/types.

0.1.0-beta.8

  • RFQ quoter sessions now emit typed trade events for confirmed Combos fills.
  • RFQ rejection errors now expose errorId values and parse INVALID_SIGNATURE and INTERNAL_ERROR codes.

0.1.0-beta.7

  • Added parentEventId to Event so child events can link back to their parent event.
  • Added maxPrice and minPrice protection fields to market order requests.
  • Handle legacy multi-outcome markets more safely: listMarkets skips markets that cannot be represented by the binary market model, and fetchMarket returns a typed SDK error for unsupported markets.
  • Normalize empty-string order and activity fields to SDK values: decimal amounts become "0", missing maker order fee rates become null, and missing trade or position market icons become null.
  • Parse Combo trade activity rows with an isCombo discriminated union.
  • Support new Combos RFQ websocket error codes for balance, allowance, and pre-execution reservation failures.
  • Broad user websocket subscriptions now omit market filters so all-market streams receive trade events.
  • Retry rejected JSON-RPC eth_call batches by splitting them into smaller batches.

0.1.0-beta.6

  • Point Combos RFQ endpoints at the production domains: combos-rfq-api.polymarket.com (REST) and combos-rfq-gateway-quoter.polymarket.com (quoter WebSocket).

0.1.0-beta.5

  • Added listComboMarkets for fetching the Combo market catalog with typed bindings and SDK-owned pagination. See Combos.
  • Parse RFQ quote rejections that use the SUBMISSION_WINDOW_CLOSED gateway error code.

0.1.0-beta.4

  • Added Combos support for multi-leg RFQ positions. See Combos.
  • Reject whitespace-only search queries and trim leading or trailing search input.
  • ConditionId is now deprecated in favor of CtfConditionId; existing ConditionId exports remain available as deprecated aliases.

0.1.0-beta.3

Secure client setup now defaults to the Deposit Wallet flowcreateSecureClient can now derive and use the signer’s deterministic Deposit Wallet when you omit wallet. If you already know which Polymarket wallet you want to use, keep passing wallet.
If you want to keep account selection explicit, no change is required:
setupTradingApprovals() now waits internallyYou no longer need to wait on the returned handle. Call the method once before trading; it is safe to call again if approvals are already set.
Gasless setup helpers are deprecatedYou no longer need to call isGaslessReady() or setupGaslessWallet() in the normal setup path. Create the secure client, then set up trading approvals.

0.1.0-beta.2

First beta release of the unified TypeScript SDK. Install the beta package with your package manager: