Files

15 KiB

Rate limits

Overview

  • Nado uses a weight-based rate-limiting system across queries and executes. We limit based on IP address, Wallet address, and a global max # of orders per subaccount per market.
  • These limits equally apply to both http requests and Websocket messages.
  • Limits are applied on a 1 minute and 10 seconds basis.

Limits

  • IP addresses have a max weight limit of 2400 per minute or 400 every 10 seconds applied only to queries.
  • Wallet addresses have a max weight limit of 600 per minute or 100 every 10 seconds applied only to executes.
  • Users can have up to 500 open orders per subaccount per market.
  • Orders have the following additional limits:
    • Place orders (with spot leverage): up to 600 per minute or 100 every 10 seconds across all markets.
    • Place orders (without spot leverage): up to 30 per minute or 5 every 10 seconds across all markets. Note: orders without spot leverage are 20x more expensive to place due to additional health checks needed.
    • Order cancellations: up to 600 per minute or 100 every 10 seconds.

Query Weights

Queries are rate-limited based on IP. The following weights are applied per query:

Archive (indexer) Weights

  • Archive (indexer) queries are rate-limited based on IP.
  • IP addresses have a max weight limit of 2400 per minute or 400 every 10 seconds.

The following weights are applied per query:

Execute Weights

Executes are rate-limited based on Wallet address. The following weights are applied per execute:

  • Place order:
    • With spot leverage: Wallet weight = 1
    • Without spot leverage: Wallet weight = 20
  • Place orders:
    • With spot leverage: Wallet weight = 1 per order
    • Without spot leverage: Wallet weight = 20 per order
    • Note: 50ms processing penalty per request
  • Cancel orders:
    • When no digests are provided: Wallet weight = 1
    • When digests are provided: Wallet weight = total digests
  • Cancel Product Orders:
    • When no productIds are provided: Wallet weight = 50
    • When productIds are provided: Wallet weight = 5 * total productIds
  • Cancel And Place:
  • Withdraw Collateral:
    • With spot leverage: Wallet weight = 10
    • Without spot leverage: Wallet weight = 20
  • Liquidate Subaccount: Wallet weight = 20
  • Mint NLP: Wallet weight = 10
  • Burn NLP: Wallet weight = 10
  • Link Signer: Wallet weight = 30
    • Can only perform a max of 50 link signer requests every 7 days per subaccount.
  • Transfer Quote: Wallet weight = 10
    • Can only transfer to a max of 5 new recipients within 24hrs.

Trigger Service Limits

The trigger service has additional limits specific to conditional orders:

  • Pending trigger orders: Max of 25 pending trigger orders per product per subaccount
  • TWAP orders: Must use IOC execution type and cannot be combined with isolated margin