Skip to main content
Pick the integration path that fits your stack. SDKs wrap the REST and WebSocket API behind a typed client so you don’t hand-build EIP-712 signatures or envelopes; the raw APIs work from any language.

Choose your integration path

Python SDK

Typed client for reads, signed writes, and streams. pip install upside-python-sdk.

REST API

Call POST /exchange and POST /info directly from any language.

WebSocket API

Realtime order book, trades, candles, and per-address account streams.
More language SDKs are on the way.

What every SDK handles

  • EIP-712 signing, no API keys. Writes are authorized by a wallet signature over a fixed domain; the SDK picks the Agent or Typed path and manages nonces. See Authentication.
  • Raw integer prices and sizes. The wire protocol is integer-only — convert display values with each contract’s priceScale / qtyScale from configs; never hardcode a scale.
  • Receipts you choose. Orders and cancels answer 202 accepted by default and report the outcome on the orderUpdates channel; request a synchronous receipt to get the per-order result (resting id, fill, or rejection) in the HTTP response.
  • Safe retries. Reads are retried on transient failures. A write is resent only when it provably never left your machine; when its outcome is unknown the SDK raises an error instead of resending, so an order is never placed twice.
The SDK targets Mainnet (https://upsidemax.xyz) by default; pass the Devnet base URL (https://dev.upsidemax.xyz) to use Devnet.