> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gtfo.vc/llms.txt
> Use this file to discover all available pages before exploring further.

# Place orders

> Post limit orders (MAKE) through the Controller.execute batching API.

All trading actions are batched via `Controller.execute`. For each item in `actionList` you provide an **ABI‑encoded** params struct in `paramsDataList`.

## MAKE (post a limit)

The MAKE action allows you to post a limit order on the book at a specific tick (price level).

### MakeOrderParams struct

```
MakeOrderParams(
  id: uint192,
  tick: int24,
  quoteAmount: uint256,
  referrer: address
)
```

### Example

```ts theme={null}
const makeTypes = [
  { name: 'id', type: 'uint192' },
  { name: 'tick', type: 'int24' },
  { name: 'quoteAmount', type: 'uint256' },
  { name: 'referrer', type: 'address' },
] as const;

const makeData = encodeAbiParameters(makeTypes, [
  bookId,
  tick,
  quoteAmount,
  '0x0000000000000000000000000000000000000000', // referrer (use address(0) if none)
]);

await writeExecute([Action.MAKE], [makeData]);
```

### Parameters

* **id**: The book ID (uint192)
* **tick**: The tick (price level) where you want to place the order
* **quoteAmount**: The amount of quote tokens to place
* **referrer**: Optional referrer address for fee sharing (use `address(0)` if you don't have a referrer)
