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

# Market-maker fast path

> Build requests with no network call, send in one step and track later.

`trade.marketOpen` reads prices, capacity and approvals before it sends. A quoting loop already knows those, so the fast path skips them.

```ts theme={null}
await zeus.build.warm()

const built = zeus.build.marketOpen({
  market: 'ETH/USD',
  side: 'short',
  collateral: 200,
  payToken: 'USDC',
  size: 2000,
  referencePrice: myMidPrice,
  slippage: 0.2
})

const { hash, requestKey } = await zeus.send(built)
const receipt = await zeus.track(requestKey)
```

* `warm()` caches the market list, the execution fee and the wallet's next request indexes. After it, `build.*` makes no network call at all.
* `built` is `{ to, data, value, requestKey, kind }`, ready for any signer. The request key is known before sending.
* `referencePrice` is the price the slippage limit is taken from, usually your own feed.
* The fast path pays in the collateral token: the market's token or ETH for a Long, USDC for a Short. Use `trade.marketOpen` when a swap is needed.
* Each build advances the predicted request index, and a failed `send` gives it back. If you build a request and never send it, or send out of order, call `warm()` again; `track` asks for it by itself when a receipt shows another key.
* `track` follows a request sent with `send`, or any request when you pass `{ submitTx }`.

`build.marketClose` works the same way for closes.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.