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

# Limit Orders

> Place limit orders in the KaleidoSwap Desktop App: set a target BTC price and the app swaps automatically over Lightning when the market reaches it

A limit order swaps automatically when the market reaches a price you set. The swap itself is an atomic swap with the KaleidoSwap market maker over Lightning, the same as a manual [asset swap](/desktop-app/trading/asset-swaps).

<video autoPlay muted loop playsInline preload="metadata" poster="/assets/videos/desktop-limit-order.jpg" title="A limit order to buy BTC that fills when the price drops" aria-label="A limit order to buy BTC that fills when the price drops">
  <source src="/assets/videos/desktop-limit-order.mp4" type="video/mp4" />
</video>

## Prerequisites

1. **A USDT Lightning channel** — the order spends from, or receives into, a ready channel that holds USDT. See [Buy a Channel](/desktop-app/channels/order-new-channel).
2. **Enough balance** for the asset you pay with, in your Lightning channels.

> [!TIP]
>
> Open **Trading → Market Maker** once before creating a limit order, so the app has loaded the available trading pairs.

## Placing a Limit Order

**1. Open Limit Orders**

In the sidebar, open **Trading** and select **Limit Orders**, then click **New Limit Order**.

**2. Choose what you pay and receive**

The side follows the direction: paying with BTC is a sell, paying with USDT is a buy. Use the swap-arrows button to flip it. Enter the amount you pay; the amount you receive is estimated from your limit price.

**3. Set the limit price**

Enter the price in USDT per BTC, or click the market price to start from it. A buy fills when the market is at or below your price; a sell when it is at or above it. If the price would fill immediately, the form warns you.

**4. Pick an expiration and place the order**

Choose **1h**, **4h**, **24h**, **1w**, **30d** or **Never**, then click **Place Limit Order**.

![Limit Order trading interface](https://mintcdn.com/kaleidoswap/jZkXeFEXDE4-8PkF/assets/images/desktop-app/25_limit-order.png?fit=max\&auto=format\&n=jZkXeFEXDE4-8PkF\&q=85\&s=666b70c677299740e62717f4408963f9)

## When the Order Fills

While the app is open and your node is unlocked, it checks the maker's price for each active order about every 20 seconds. When the price crosses your limit, it requests a quote, initializes the swap, whitelists it on your node and executes it, showing each step in a toast.

A filled order moves to the **History** tab with its execution price. Expand **Execution History** on the card to see each attempt.

> [!NOTE]
>
> An execution is rejected if the quoted price is more than 3% worse than your limit. A failed attempt keeps the order active, so it is retried at the next check; orders that fail for insufficient balance are paused.

Use **Fill Now** on a card to execute at the current price without waiting for the limit, **Pause** to hold an order, and **Cancel** to end it.


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