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.
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)
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.
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.
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.
Yes, each limit order must abide by the range [0.5 ETH - 10 ETH] for the transaction amount limit.
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.
- 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.
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.
- 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.
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.
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:
* Wallet has to hold x >= 2000
Here is a sample reference table for you:
|KNC in your wallet||Discount||Fees if trading amount < 2.25 ETH||Fees if trading amount >= 2.25 ETH|
|Less than 2,000||0%||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.
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.
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.
No, currently this feature is not supported via limit orders. Follow us on twitter @KyberSwap to stay updated on upcoming features on 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.
- 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”.
No, there is no limit on the number of orders one user can create.
KyberSwap checks for rates at every block (~15 seconds).
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.
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.
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.
At the moment, we support following 29 tokens for limit orders:
WETH, KNC, DAI, OMG, SNT, ELF, POWR, MANA, BAT, REQ, RDN, ENG, AST, LINK, ENJ, POE, PAY, BNT, TUSD, REP, ZRX, REN, MKR, INF, ABYSS, WBTC, MLN, RLC, NPXS.
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!
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.