Skip to main content

Overview

CLOB markets use a venue system where each market is associated with specific contract addresses. Before placing orders, you must fetch venue data for the market.

How it works

1

Fetch market data

GET /markets/:slug returns venue information for the market.
2

Use venue.exchange

This address is the verifyingContract for EIP-712 order signing.
3

Cache the venue

Venue data is static per market — fetch once and reuse.

Venue response

Required token approvals

Before trading, set up token approvals based on your order type:
For NegRisk SELL orders, you must approve to both the exchange and the adapter addresses.

New trading venues

A market is on a new trading venue when venue.feeModuleType is "COLLATERAL". The venue then also includes a feeModule address. Legacy venues omit both fields and work as before. Moving existing code over? Follow the migration guide, which has the checklist, fee module addresses, minimum SDK versions and common errors.
To trade on a new venue:
  1. Approve USDC to venue.feeModule from the wallet that signs orders. A max approval is recommended. Approve once per fee module address. Simple CLOB and NegRisk markets use different fee modules, so always read the address from the market and never hardcode it. The approval is required for every order that is not postOnly, both BUY and SELL. Without it, the API rejects the order with Insufficient collateral allowance for the order fee.
  2. Keep your existing approvals. The USDC and Conditional Token approvals to venue.exchange and venue.adapter remain valid, and the EIP-712 domain (verifyingContract = venue.exchange) is unchanged.
  3. Sign feeRateBps as 0. Any other value is rejected with FEE_RATE_MISMATCH. Orders on legacy venues keep the current fee rate rules.
  4. Keep a little extra USDC. Buy orders need the order amount plus a fee reserve of 5% of it at the standard rate. Sells need no USDC. See how the fee is calculated.
Wallets that Limitless provisions and manages (server wallets and API-key managed wallets) get these approvals automatically. The updated TypeScript, Python, Go, and Rust SDKs handle venue detection and the fee rate for you.