What is a limit order?

In traditional finance, a limit order is an order to buy or sell a security at a specified price. When you are buying, you instruct your broker not to go higher than the specified price. And when you are selling you instruct broker not to sell below your specified price.

At KyberSwap, a limit order is an order to swap tokens at a specified rate. For example : A user wants to swap WBTC token to DAI token only if rate reaches 15,000 (assume current rate is 11,000). KyberSwap will execute the swap order only if rate >= (15,000 + 1% of 15,000).

The advantage of placing a limit order is that you can place buy/sell order at your desired rate. However, there is a chance that your order may not get filled as your desired rate may never be reached.

How is a limit order different from a normal token swap?

A normal swap is an order to swap tokens at market rate. The rate is not specified at the time of placing the order.

A limit order is an order to swap tokens at a rate that is guaranteed to be higher or equal to a specified rate.

The advantage of the normal swap is that the order will definitely be executed at the prevailing market rate, however, the trader might end up paying slightly more or selling at a slightly lower price. (i.e slippage)

How do I create a limit order at KyberSwap?

It’s very simple!

Step 1: Go to the Limit Order tab and connect your wallet.

Step 2: Choose a token pair you want to swap.

Step 3: Enter the desired rate at which you want to swap and press submit.

How is a limit order at KyberSwap different from a limit order at centralized (CEX) or other decentralized exchanges (DEX)?

In a typical CEX, the user has to deposit funds and these funds are fully held by the CEX as a custodian. After the trade is made, the user still has to withdraw their funds. In such a process, the user lacks full control of their funds, and has additional costs for depositing and withdrawing funds.

For some typical DEXs, a user must also deposit funds to create a limit order.

At KyberSwap we eliminated this step, allowing a user to create a non-custodial limit order by just connecting their wallet, without depositing funds. Not only does this keep user funds secure, but also saves on gas costs, since there is no need for deposits or withdrawals.

Additionally, the user pays as little as 0.1% in fees for successful limit orders, compared to around 0.2% fees on other exchanges.

I understand that KyberSwap’s limit order doesn’t require funds to be deposited. How does it work?

Yes, it's true that a user can create a limit order without depositing funds. At a technical level, a user signs the transaction, allowing the KyberSwap smart contract to swap the token on users’ behalf, at the specified rate and quantity. With the signed data, once limit order conditions are met, KyberSwap will broadcast the transaction to the ethereum network.

KyberSwap smart contract is fully audited by multiple entities and it is available on GitHub.

Is there any limit on the trading amount?

Yes, each limit order must abide by the range [0.1 ETH - 10 ETH] for the transaction amount limit.

Can I submit multiple limit orders for the same token pair?

Yes, you can create multiple limit orders for the same token pair. Let us explain with the help of an example:

Nakamoto has 3 WBTC (Current rate: 11,000 DAI) in his wallet and he wants to swap WBTC → DAI.

- Nakamoto creates his 1st limit order “Swap 1 WBTC → DAI @ 11,500”.

- He then creates his 2nd limit order “Swap 1 WBTC → DAI @ 12,000”.

This situation is acceptable and Nakamoto’s limit orders will be executed in FIFO (First in First Out) sequence.

- Nakamoto submits his 3rd order “Swap 1 WBTC → DAI @ 11,700”.

Now, this is a tricky situation. You might think that Nakamoto’s 3rd order will be executed before his 2nd (as the rate of DAI @ 11,700 will hit before 12,000).

However, to reduce complexity, his 3rd order will not be accepted by KyberSwap and the user will be prompted to cancel the 2nd order before submitting “Swap 1 WBTC → DAI @ 11,700”.

In short, users can submit multiple limit orders for the same token pair, as long as the rates follow a FIFO sequence.

If I have 1 WBTC in my wallet, can I submit 2 limit orders, each worth of 1 WBTC?

No, you are unable to do that. Let us explain with the help of an example:

Vitalik has 1 WBTC (Current rate: 11,000 DAI) in his wallet.

- Vitalik creates his 1st limit order “Swap 1 WBTC → DAI @ 11,500”.

- He then creates 2nd limit order “Swap 0.5 WBTC → KNC @ 50,000”.

At the time of second order, KyberSwap will make a check if 0.5 WBTC > ( Available balance - previously submitted orders).

In this case, the check will return 1 WBTC worth of previous order. Vitalik’s second order will not be accepted as: 0.5 WBTC > ( 1 WBTC available balance - 1 WBTC of previous order) will not hold true.

What are the limit order trading fees? Do I need to pay gas fees for token swaps?

User pays 0.5% of the transaction amount as Limit Order trading fees If the transaction amount is less than 2.25 ETH. Otherwise, the user pays 0.1% of the transaction amount.

No, users don’t need to pay for gas. The trading fee already includes gas fees.

* Note: For basic token swaps (not Limit Orders), KyberSwap does not charge any fees.
I have KNC in my wallet, do I get any discount on limit order trading fees?

Yes, everyone who holds KNC (min. 2000 KNC) in the wallet at the time of order creation will get a discount on trading fees. The discounted amount is calculated with the following formula:

Discount = 0.5 *x / (x+3000)
* Discount → percentage of the fee will be discounted
* x → number of KNC held

* Wallet has to hold x >= 2000

Here is a sample reference table for you:

KNC in your walletDiscountFees if trading amount < 2.25 ETHFees if trading amount >= 2.25 ETH
Less than 2,0000%0.5%0.1%
For other amount, refer to above formula to calculate discount

Example 1 : If you have 3000 KNC in the wallet you use to create your limit order of 3 ETH.

Your base fee will be 0.1% (because 3 ETH is higher than 2.25 ETH), your discount = 0.5 * 3000 / (3000 + 3000) = 0.25.

Your real fee will be 0.1 * (1 - 0.25) = 0.075%.

Example 2 : If you have 1000 KNC in the wallet you use to create your limit order of 1 ETH.

Your base fee will be 0.5% (because 1 ETH is lower than 2.25 ETH), you don’t get any discount because you need to have at least 2000 KNC to get discounts.

Your real fee will be 0.5%.

* Note: This formula can be changed over time.
I submitted the limit order but it was not triggered even though my desired price was hit?

There is a very slim chance that this situation may occur. However, it is possible in some black swan events.

Let us explain one such event with an example: “Suppose 1000 users submitted WETH → DAI limit order when WETH price = 300 DAI.”

When WETH reached 300+ DAI (KyberSwap waits for rate to be 1-3% higher than actual rate), KyberSwap uses an algorithm to broadcast some of the transactions instead of all 1000 transactions at once. This is required to avoid slippage and liquidity issues which may be lead to transaction failures and costs us gas fees.

In some rare instances, it's possible the WETH rate slips to below 300 before all the 1000 transactions are broadcasted, so a few limit orders won’t be triggered even though WETH price hits 300.

Why do I need WETH instead of ETH?

Due to technical requirements, only tokens that adhere to ERC20 standards can be used for limit orders.

ETH doesn’t implement ERC20 but WETH does. If you don’t have enough WETH when you create the orders, KyberSwap will help you to convert them on the fly. You can also swap ETH to WETH (1 to 1) easily on our Swap feature anytime you want.

Can I use Kyber Trading API to set limit orders?

No, currently this feature is not supported via limit orders. Follow us on twitter @KyberSwap to stay updated on upcoming features on limit order.

What are the different status types for a limit order?

There are five status for a limit order as follows:

- Open: Your order has been created successfully and it is waiting for the rate to hit.

- In Progress:The rate has been hit and Kyber’s system is processing to make a transaction.
Please be noted that when the market fluctuates too fast and the rate is unstable for processing. “In Progress” order might be returned back to “Open”.

- Filled:Your order has been executed successfully, your token has been swapped with the selected (or better) rate.

- Cancelled:A limit order can be cancelled anytime before it is broadcasted (as long as it’s status is “Open”). Simply go to “Manage Your Orders” and click “Cancel”.

- Invalidated:For some reason, the order will never be processed, and its status will be changed to “Invalidated”.

For example: You manually cancelled your order via our Smart Contract, our system will mark that order as “Invalidated”.

Is there any limit on the number of orders I can create?

No, there is no limit on the number of orders one user can create.

How frequently does KyberSwap check for rates?

KyberSwap checks for rates at every block (~15 seconds).

Do I need to pay limit order trading fees in ETH just like gas fees?

No, we have made it simple for you. Trading fees are payable in source token and will be deducted only if your order executes.

For example: User Shane submits 1000 KNC → DAI limit order, He will pay 1 KNC as fees and 999 KNC will be swapped to DAI.

How does the limit order impact my daily trading limit?

A non-KYC user can trade up to 50,000 USD worth of volume every day. This includes executed limit order trading volume. Let’s explain with an example:

On day 1, User submits (not filled yet) 2000 USD worth of limit orders, he can still trade 50,000 USD on day 1.

On day 2, User’s 2000 USD order is filled, he can trade 48,000 USD on day 2.

Please note that if user trades 50,000 before the order is filled. It will not be executed.

PS: KYC’ed user enjoys unlimited trading limit.

Which wallets can be used to submit limit orders?

You can use Metamask, Ledger, Trezor, Private key, Keystore to submit limit orders.

However, please note the following issue:

When you connect trezor and ledger in metamask (using “import hardware” in metamask); You won’t be able to place a limit order by importing metamask wallet (in this case, you are using trezor and ledger wallet imported in metamask). It works without any issue if you import trezor and ledger directly to submit limit order.

Which tokens are available for the limit order feature?

At the moment, we support following 30 tokens for limit orders:


Please note that KyberSwap will continue to support 70+ Ethereum-based tokens under the basic swap feature, however not all of them are available for limit orders. More tokens will added under limit order feature soon!

Can I use multiple wallets under one user id?

Yes, You can do that. In order to use limit order, one must be registered with KyberSwap. Please note that you can register with KyberSwap without KYC. Various options such as facebook, telegram, twitter, gmail, and email are available for registration.

A registered user can use any number of wallets to create limit orders. However same wallet can not be used under multiple user ids.

PS: Normal Swap functionality can still be used without registration.
Why received amount is higher than estimated amount?

At KyberSwap, a limit order is an order to swap tokens at a specified rate. For example : An user wants to swap 1 WBTC token to DAI token only if rate reaches 15,000 (assume current rate is 11,000). To avoid transaction failure, KyberSwap will execute the swap order only if rate >= (15,000 + 1% of 15,000).

KyberSwap will broadcast the order when WBTC/DAI (for 1 WBTC) hits 15,150, so there are high chances that user will receive an amount that is higher than 15,000 (estimated amount).

How do I buy ETH with fiat?

Buying ETH with fiat at KyberSwap is offered in partnership with Coindirect. Check the latest FAQ here.