Skip to main content

How Do You Execute a Limit Order?

Limit orders are the default, foundational order type on Grvt's Central Limit Order Book (CLOB). This guide walks through placing one via the Grvt web/app interface and via the Grvt Trading API for programmatic traders.

Option 1: Placing a Limit Order on the Web/App

Step 1: Select your instrument Go to the trading page and pick the perpetual, future, or option contract you want to trade (e.g. SPYUSDT _Perp).

Step 2: Choose "Limit" as your order type In the order entry panel, select Limit from the order type dropdown (as opposed to Market, or advanced types like Scale).+Step 3: Set your price and size

  • Limit Price: the price at or better than which you want to trade.

  • Size: how much you want to buy or sell, in the base asset or notional, depending on your interface settings.

Step 4: Configure order behavior (optional but important)

  • Time in Force: choose GTT (rests on the book), IOC (fills immediately or cancels), or FOK (fills completely and immediately, or cancels entirely).

  • Post-Only: toggle this on if you want to guarantee your order only adds liquidity (maker). If your price would match immediately, the order is rejected rather than filled as a taker.

  • Reduce-Only: toggle this on if the order should only be allowed to reduce an existing position, never open a new or opposite one.

Step 5: Review and confirm If you have order confirmations enabled in your trading settings, a confirmation window will summarize price, size, and order flags before you submit. Click Buy or Sell to place the order.

Step 6: Monitor and manage

  • Resting limit orders appear under Open Orders.

  • You can cancel an unfilled or partially filled order at any time from this panel.

  • Filled and cancelled orders move to Order History.‘

Because Grvt settles trades on-chain via a ZKsync validium while matching happens off-chain, placing and cancelling limit orders is gas-free and near-instant. You don't pay network fees for normal order activity.

Option 2: Placing a Limit Order via the Grvt API

For programmatic traders, Grvt's Trading API exposes a create_order endpoint. A limit order is simply an order where is_market is false and a limit_price is supplied.

Example request:

curl --location 'https://trades.grvt.io/full/v1/create_order' \
--header "Cookie: $GRVT_COOKIE" \
--header "X-Grvt-Account-Id: $GRVT_ACCOUNT_ID" \
--data '{
"order": {
"sub_account_id": "'$GRVT_SUB_ACCOUNT_ID'",
"is_market": false,
"time_in_force": "GOOD_TILL_TIME",
"post_only": false,
"reduce_only": false,
"legs": [{
"instrument": "BTC_USDT_Perp",
"size": "10.5",
"limit_price": "65038.01",
"is_buying_asset": true
}],
"signature": {
"signer": "0x...",
"r": "0x...",
"s": "0x...",
"v": 28,
"expiration": "1697788800000000000",
"nonce": 1234567890
}
}
}'

Key fields to get right:

Field

Purpose

is_market

Must be false for a limit order

limit_price

Required for limit orders — the exchange rejects a limit order submitted without one

time_in_force

GOOD_TILL_TIME (GTT), IMMEDIATE_OR_CANCEL (IOC), or FILL_OR_KILL (FOK) — the exchange (as opposed to RFQ venues) supports these three

post_only

Set true to force maker-only execution

reduce_only

Set true to restrict the order to closing/reducing an existing position

signature

Because Grvt is self-custodial, every order must be signed with your account's key before submission — this is what lets Grvt settle trustlessly on-chain

Because all orders are signed and trustlessly enforced on Grvt's Hyperchain, the API requires the same signature payload structure as the underlying smart-contract order object. This is different from most centralized exchanges, so make sure your integration handles signing correctly (Grvt's SDKs and the Grvt connector in CCXT handle this for you if you don't want to implement signing yourself).

Common rejection reasons to watch for:

Code

Meaning

2020

Market order was submitted with a limit price

2021

Limit order was submitted without a limit price

2062

Order size is smaller than the minimum size

2064

Limit price doesn't align to the instrument's tick size

2066

Order value is below the minimum notional

Tips

  • If you want your order to always earn maker fees (or a rebate), use Post-Only.

  • If you're closing part of a position and don't want to risk accidentally flipping it, use Reduce-Only.

  • Check time_in_force support per venue. Grvt's main exchange order book only supports GTT, IOC, and FOK; AON is reserved for RFQ flows.

  • For high order-throughput strategies, be aware of Grvt's tiered rate limits on order creation, cancellation, and status queries.

Did this answer your question?