Reduce-Only

A reduce-only order is a constraint that can be applied to any order type (market, limit, or conditional) to ensure the order can only decrease or close an existing position — never increase it or open a new one.

How It Works

When a reduce-only order is submitted, the matching engine validates that filling the order would reduce your current position size. If the order would result in increasing your position or flipping your position direction (e.g., going from long to short), the order is rejected or the fill quantity is capped to the current position size.

For example, if you hold a long position of 5 ETH:

  • A reduce-only sell order for 3 ETH would be accepted, reducing your position to 2 ETH long.

  • A reduce-only sell order for 5 ETH would be accepted, closing your position entirely.

  • A reduce-only sell order for 7 ETH would be capped at 5 ETH, closing your position but not opening a 2 ETH short.

When to Use Reduce-Only Orders

Reduce-only orders are essential for safe position management in several scenarios:

  • Stop-loss and take-profit orders — When placing conditional orders to manage an existing position, marking them as reduce-only prevents accidental position increases if the position has already been partially or fully closed by another order before the conditional triggers.

  • Avoiding unintended positions — In fast-moving markets where multiple orders may be in flight simultaneously, reduce-only acts as a safety mechanism to ensure you do not accidentally flip your position direction.

  • Closing positions below minimum size — Positions that fall below a market's minimum position size can be closed at any time using a market or limit order with the market's taker order minimum quantity and the reduce-only flag set to true.