Skip to main content

Errors and limits

Nord rejects an action with a value from the Error enum. This page lists the errors you are most likely to hit and the limits that cause them.

A rejected action still returns HTTP 200. The response is a Receipt whose kind is err and carries the Error value, so always decode the receipt (see Signed actions). The full enum is in the schema the exchange serves at GET /schema.proto.

Limits​

LimitValueError
Open orders per account100TOO_MANY_OPEN_ORDERS
Trading accounts per user (wallet)8TOO_MANY_USER_ACCOUNTS
Position size per market$5,000,000 notionalPOSITION_SIZE_LIMIT
Encoded action size1648 bytes, plus a 64-byte signatureENCODED_ACTION_TOO_LARGE
Action timestampWithin 2 minutes of server timeTIMESTAMP_OUT_OF_THRESHOLD
Open sessions per user200None; the oldest session is evicted
Session duration1 yearNone; a longer expiry is capped to 1 year
External withdrawal fee1 USDC—

Rate limits​

HTTP requests are rate-limited per client IP address, in two separate buckets:

BucketRequests
ActionsPOST /action
DefaultEvery other HTTP request

Each bucket has its own requests-per-second rate and burst allowance, so heavy polling of REST endpoints doesn't consume your action budget. Requests over the limit are rejected. Back off and retry, and prefer WebSocket streams over polling.

Common errors​

ErrorMeaningWhat to do
TIMESTAMP_OUT_OF_THRESHOLDThe action's currentTimestamp is more than 2 minutes from server time.Fetch GET /timestamp before signing; don't use the local clock.
TOO_MANY_OPEN_ORDERSThe account already has 100 open orders.Cancel resting orders, or spread orders across subaccounts.
POSITION_SIZE_LIMITThe order would take the position past the position size limit.Reduce the order size.
POST_ONLY_MUST_NOT_FILL_ANY_OPPOSITE_ORDERSA post-only order would have crossed the book.Reprice the order away from the opposite side.
MARKET_FROZENThe market is frozen and isn't accepting this action.Wait for the market to resume.
ENCODED_ACTION_TOO_LARGEThe encoded action exceeds 1648 bytes.Split large atomic actions into smaller ones.
TRIGGER_WOULD_FIRE_IMMEDIATELYThe trigger price is already reached at placement.Set a trigger price on the far side of the current price.
TOO_MANY_USER_ACCOUNTSThe wallet already owns 8 trading accounts.Reuse an existing account.

Next steps​

These materials are provided for informational purposes only and do not constitute financial, investment, legal, or tax advice, or an offer or solicitation to buy or sell any asset. Trading digital assets and derivatives involves substantial risk, including the possible loss of some or all capital. Products may not be available in all jurisdictions. Users are responsible for evaluating suitability and complying with applicable laws.