Skip to main content
DerivaDEX mainnet is open to a limited number of qualified users. This release uses DDX-based trading tiers together with IP-based gateway limits on the public APIs and WebSocket endpoints.

At a glance

ItemValueNotes
Mainnet accessLimited number of qualified usersMainnet onboarding is not fully open.
Trading tiersBased on DDX deposited on DerivaDEXTiers use the trader’s exchange-side DDX balance, not an external wallet snapshot.
Collateral capAlso based on deposited DDXThe same DDX balance determines the current collateral cap.
Public API limitsBased on public IPThe tables below describe the public, non-whitelisted limits only.

Trading request tiers

These limits apply to authenticated trading requests submitted to POST /v2/request.
TierDeposited DDX balancePer-trader request limitPer-trader burstCollateral cap
Tier 0< 1,000900/hour110,000 USDC
Tier 1>= 1,000 and < 1,000,0001,800/hour510,000 USDC
Tier 2>= 1,000,000180,000/hour5010,000,000 USDC
Deposits are capped at the strategy level. DDX withdrawals are checked against the trader’s total margin across strategies, so a withdrawal that would move the trader into a lower DDX band is rejected if the trader’s aggregate margin would exceed the new cap.

Trading requests

Applies toLimitBurstNotes
Shared public IP pool3000r/m50Applied before the trader-level bucket.
Per public IP30r/m5Main public-IP gate for trading requests.
Trader addressSee trading tier table aboveSee trading tier table aboveEnforced after the gateway checks. Exceeding the trader bucket returns 429 RateLimit.
Public trading requests must clear both the IP-based gateway limit and the trader-address bucket.

Trading request examples

SituationOutcome
A trader with < 1,000 DDX sends one request after sitting idleAccepted. Tier 0 allows a single-request burst.
The same trader immediately sends a second requestThe trader bucket is rate-limited. Tier 0 has burst 1, so requests have to be paced.
A trader with >= 1,000 and < 1,000,000 DDX sends five requests in a short burstAccepted. Tier 1 allows burst 5.
The same Tier 1 trader immediately sends a sixth request without waitingThe trader bucket is rate-limited until capacity refills.
A trader with >= 1,000,000 DDX sends a short burst of 20 trading requestsAccepted by the trader bucket. Tier 2 allows much higher steady-state throughput and a burst up to 50.
Many traders share one public IP and that IP crosses 30r/m on POST /v2/requestFurther requests from that IP are gated at the public-IP layer even if some individual traders are still within their own trader tiers.

Public REST endpoints

Endpoint classLimitBurstNotes
Public Stats REST API (/stats/api/v1/*)10r/s per public IP, plus shared frontend pool 100r/s5 per IP, 30 sharedCovers trader and strategy lookups, aggregations, market snapshots, and system/status endpoints published in /api-docs. These limits are enforced at the webserver layer.

Realtime connections

Applies toLimitBurstNotes
Upgrade requests per public IP20r/mdefault (0 extra burst)Applies to connection attempts at the webserver layer.
Shared frontend pool100r/s30Shared with other frontend traffic.
Open sockets per public IP10n/aEnforced with limit_conn at the webserver layer.
WebSocket messages on wss://testnet.derivadex.io/realtime-apiNo active app-layer capn/aNo application-level WebSocket message rate limit is currently enforced on this endpoint.

Realtime examples

SituationOutcome
One public IP opens a few websocket connections to wss://testnet.derivadex.io/realtime-apiAccepted, as long as the IP stays within the connection-attempt and open-socket limits.
One public IP tries to open more than 10 concurrent realtime socketsAdditional connections are refused by the concurrent-socket limit.
One public IP repeatedly reconnects and exceeds 20 upgrade attempts per minuteFurther connection attempts are rate-limited at the websocket-upgrade layer.

When a limit is hit

ConditionPublic outcome
Trader exceeds the trading request bucket429 RateLimit
Public IP exceeds a gateway request limit on trading, stats, or realtime upgrade paths503
Public IP exceeds the concurrent realtime socket limit503
Trader is denied access by policy422 SafetyFailure with AccessDenied
DDX withdrawal would leave too much collateral for the new tranche422 SafetyFailure with TooMuchCollateralToWithdrawDDX
Mainnet currently uses the collateral caps shown above.
Last modified on May 5, 2026