On this page
On-chain orders (tokens in a pool)Who executes the orders: the keeperHow the price is checkedWhat the keeper can't doOrders on the previous order contractTokens still on a bonding curveLimit orders: take profit and stop loss on Elysium
In the Limit tab you can set three kinds of orders by market cap:
- Take profit — sell a percentage when the market cap rises to your target.
- Stop loss — sell when the market cap falls to your target.
- Limit buy — buy when the market cap reaches your target, below or above the current one.
On-chain orders (tokens in a pool)
For tokens trading in a supported pool (Uniswap V2 / V3), orders live in the order contract and execute even with Zephyr Trade closed.

- Limit buy: the ETH is deposited in the contract when you place the order.
- Sell orders: you only give an approval. Your tokens stay in your wallet until the order fills.
- Orders expire after 10 days (the contract allows up to 30). You can cancel at any time and get your ETH back.
- When a limit buy expires unfilled, it's cancelled and the ETH is returned to your wallet.
Who executes the orders: the keeper
A server process called the keeper watches prices and calls the contract when your condition is met. It pays the gas of the fill.
How the price is checked
- The route is fixed when you place the order. The pools it will use are saved with the order and checked on-chain: only pools from allowed factories, confirmed by the factory itself. The keeper can only execute through that route.
- The price is checked on-chain in real time: when the keeper fills, the contract reads the current price of the route's pools. No averaging and no delay. The order executes only when that price reaches your target.
- Every order has a minimum output, fixed when you place it: the amount your target price gives, minus your order slippage. The fill never gives you less than that minimum; if it would, it reverts and the order stays open.
- Order slippage is 5% by default; you can change it in the Limit tab before placing the order, and it's fixed in the order. The contract never allows more than 10%.
- Minimum order size: 0.001 ETH (limit buy: the ETH you deposit; sell orders: the current value of the tokens).
The current price can be moved for a moment, so someone could try to trigger your order that way, but nobody can fill it below the minimum you accepted. A stop loss works as a stop-limit: when the price crosses your stop it sells, but never below your minimum. In a crash that gaps below that minimum, the order waits instead of selling at any price; it fills if the price comes back within your minimum before it expires.
What the keeper can't do
- It can only call fill on an open, non-expired order, through its fixed route, when the current price meets your condition, and never for less than your minimum output.
- The output always goes to your wallet. The keeper can't withdraw deposits, change your order or send funds anywhere else.
- You can cancel at any time. If your wallet can't receive ETH, the contract also lets you cancel and send the refund to another address (
cancelTo, called directly on the contract). Once an order expires, anyone can cancel it, and the ETH of a buy always goes back to you.
If the keeper is offline, your orders simply wait (and you can always cancel them yourself). The fee on a filled order is the same 1% (0.9% with a referrer), charged by the router in the fill transaction.
Orders on the previous order contract
Orders placed on the previous order contract (GiwaOrdersV2) stay listed in the terminal. You can cancel them, and the keeper keeps executing them until they expire. New orders go to GiwaOrdersV3.
Tokens still on a bonding curve
For tokens still on a launchpad curve, or in a pool the order contract doesn't support, orders are kept in your browser and execute only while the terminal is open, signed by your wallet like a normal trade.