Limit and stop orders
Set your price once. Kata fills it when the market gets there. Your tokens stay in your wallet until then.
Open the Limit or Stop tab on the Swap page. Orders are a beta.
Two kinds of order
| Order | You set | It fills when |
|---|---|---|
| Limit (take-profit) | What you sell, and the least you want to receive | The market pays at least that amount, after the Kata fee |
| Stop (stop-limit) | A stop level, and a minimum you never go below | What you would receive falls to your stop level, confirmed twice, and is still at or above your minimum |
- You get the market rate at fill time, not just your minimum: Kata passes on what the route pays, less a 0.2% safety margin for the price moving in the seconds before the fill, and never less than your minimum.
- A stop is a stop-limit. If the price falls straight through your minimum before the order fills, it does not sell. That protects you from selling at any price in a crash, and means a stop can miss.
- Choose how long the order lives: 1, 7, 30 or 90 days. After that it expires on its own.
Placing an order
- Approve the token you sell, once, if needed. Kata asks for exactly what your open orders on that token add up to, never an unlimited allowance. Selling USDC needs this approval too.
- Sign the order. Free, no gas, no transaction. Nothing leaves your wallet.
Kata checks open orders about every 10 seconds. A stop fills only after its level is seen on two checks in a row, so a one-off price spike does not trigger it. If you move the tokens out of your wallet or lower the approval, the order waits and shows why.
Fees
When an order fills, it pays the same Kata fee as a swap at your Dojo rank (0.10%, down to 0.05% at Godan), on top of the minimum you set. Kata pays the network fee for the fill. Placing and cancelling cost nothing.
Cancelling
Cancel any open order from Your orders next to the ticket: you sign a free message and Kata stops confirming the order, so it can no longer fill. For a cancel that does not rely on Kata, your wallet can also invalidate the order’s nonce on Permit2 on-chain.
How it works
- Your order is a UniswapX order: a signed message that lets its reactor contract take exactly the tokens you sell, only in exchange for at least the amounts you signed. The reactor, audited by OpenZeppelin, checks this on-chain in the same transaction as the fill.
- Every Kata order names Kata as its cosigner: it cannot fill until Kata confirms it, which is how the right moment is chosen. A confirmation can only raise what you receive, never lower it.
- Kata’s KataFiller contract fills the order by swapping through Uniswap pools on Arc (single pools, two-step routes and the official KATF/USDC pool). It holds no user funds between transactions and can call only the Uniswap Universal Router.
- Any token with a Uniswap route on Arc can be ordered. KyberSwap routes are not used for orders.
| Contract | Address |
|---|---|
| UniswapX V3 Dutch Order Reactor | 0x0000000015134054eA82AE0bb9fda66b36402C36 |
| KataFiller (source verified on Sourcify) | 0x126d7d1334699805e775b3a8948f45996671c9bd |
Risks
- An order may fill late or not at all: thin pools, fast markets, a stop that falls through its minimum, or Kata’s service being down. Nothing is guaranteed to fill.
- The price can touch your level between two checks and move away again before Kata sees it.
- Filling relies on Kata’s own service and keys. Whatever happens to them, an order can only ever fill at or above the minimum you signed.
- Smart contract risk: the UniswapX reactor, Permit2, the Universal Router, KataFiller and the pools can contain errors.