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

> ## Agent Instructions
> Treat Solana and Robinhood Chain as separate protocol paths.
> Write for people using the KEK.PRO app.
> Treat displayed fees, limits, and availability as environment-specific unless labeled as protocol constants.

# Limit orders

> Place noncustodial, TWAP-triggered V3 orders with an enforced minimum output.

KEK.PRO limit orders are one-shot, exact-input V3 swaps. Your input stays in
your wallet until a keeper submits a valid fill.

<figure className="kek-figure kek-figure--robinhood" data-mark="ORDER" aria-labelledby="limit-order-path-title">
  <div className="kek-figure__header">
    <span id="limit-order-path-title">Limit order / authorization path</span>
    <small>Noncustodial · TWAP-triggered · one shot</small>
  </div>

  <div className="kek-figure__body">
    <div className="kek-flow kek-flow--four">
      <div className="kek-flow__node is-live"><span>01 / Approve</span><strong>Permit2 allowance</strong><small>Authorize the token separately onchain.</small></div>
      <div className="kek-flow__node"><span>02 / Sign</span><strong>Exact order terms</strong><small>Bind market, input, minimum output, nonce, and deadline.</small></div>
      <div className="kek-flow__node"><span>03 / Observe</span><strong>TWAP trigger</strong><small>The keeper evaluates the pool's onchain time-weighted price.</small></div>
      <div className="kek-flow__node"><span>04 / Fill</span><strong>Keeper execution</strong><small>A valid fill consumes the nonce and enforces minimum output.</small></div>
    </div>
  </div>

  <figcaption className="kek-figure__caption">Signing does not transfer input. Balance, allowance, price, deadline, chain, and keeper readiness can still prevent a fill.</figcaption>
</figure>

## How they work

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
Permit2 approval → signed order → TWAP trigger → keeper fill
```

The order fixes the market, direction, input, minimum output, trigger, TWAP
window, recipient, nonce, and deadline. The keeper pays execution gas but
cannot change those terms.

The trigger uses the pool's onchain TWAP, not the latest trade. A triggered
order can still fail if price moves before inclusion or the minimum output
cannot be met.

## Permissions

* **Permit2 approval:** an onchain token allowance.
* **Order signature:** a one-use authorization for the exact signed terms.

Signing does not transfer the input. A successful fill consumes the order
nonce.

## No guaranteed fill

An order can remain open or fail when:

* wallet balance or allowance is too low;
* the deadline expires;
* the nonce is cancelled;
* price moves through the minimum output;
* the keeper or chain is unavailable.

Cancelling the order invalidates its nonce. It does not revoke the separate
Permit2 token allowance.

Limit orders appear only when durable order storage and the keeper are ready.
If the surface is unavailable, use a market swap.
