> For the complete documentation index, see [llms.txt](https://elysia.gitbook.io/elysia-perps/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://elysia.gitbook.io/elysia-perps/trading/order-types.md).

# Order Types

All orders go onto the same **central limit order book**, where they match by price and then time. Elysia Perps offers limit and market orders, plus fill-or-kill and reduce-only variants.

## Limit orders

A **limit order** sets the price you're willing to trade at. The portion that can fill immediately does so as a **taker**; any remainder rests on the order book as a **maker** order until it fills or you cancel it. (Limit orders are *good-till-cancel*: they stay live until filled or cancelled.)

* Buy limit: fills at your price **or better** (lower).
* Sell limit: fills at your price **or better** (higher).

### Price improvement

If your limit price is better than the best available price on the other side, you fill at the **better** price, not your limit:

* A buy limit at $96,000 against a best ask of $95,100 fills at **$95,100**, so you pay less than your limit.
* A sell limit at $94,000 against a best bid of $94,900 fills at **$94,900**, so you receive more than your limit.

## Market orders

A **market order** fills immediately against the best available prices and **cancels any unfilled remainder**. It never rests on the book. (Market orders are *immediate-or-cancel*.)

* A market order is always a **taker**.
* The price you set acts as a **slippage limit**: the worst price you'll accept. The order fills through the book up to that limit and cancels the rest, so a thin book can leave a market order partially filled.

## Fill-or-Kill (FOK)

A **fill-or-kill** order fills **completely and immediately, or is rejected entirely**, with no partial fills. Use it when you want all-or-nothing execution.

## Reduce-Only

A **reduce-only** order can only **shrink or close an existing position**. It can never open or increase one. It's the safe way to take profit or cut a position without accidentally flipping to the other side.

A reduce-only order is accepted only if:

1. you already have a position in that market,
2. the order is on the **opposite** side of that position, and
3. its size is **not larger** than the position.

Because it only reduces risk, a reduce-only order locks **no additional margin**. It is also **exempt from the $1 minimum-notional floor** that normal orders must meet. It only has to clear the market's minimum order size (0.00001 BTC on BTC-PERP-EL). This lets you close out a small remaining position even when its notional is under $1. See [Order size and price limits](/elysia-perps/trading/markets.md#order-size-and-price-limits).

## Maker vs. taker

|      | Taker                                                      | Maker                                  |
| ---- | ---------------------------------------------------------- | -------------------------------------- |
| What | Removes liquidity (market orders, instantly-filled limits) | Adds liquidity (a resting limit order) |
| Fee  | 0.05%                                                      | 0.02%                                  |

Fees are covered in **Mechanics → Fees**.

## Self-trade prevention

If your own order would match against another of *your* resting orders, the protocol cancels **both sides** of the overlap instead of trading. No trade, no fee, and no position change results from a self-match. It simply prevents you from trading with yourself.

## Where to go next

* How leverage and margin work: [Margin & Leverage](/elysia-perps/trading/margin-and-leverage.md).
* How a position evolves as orders fill: [Positions](/elysia-perps/trading/positions.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://elysia.gitbook.io/elysia-perps/trading/order-types.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
