***UPDATE: 1inch v2 Limit Orders now support Permit 712 - signed token approvals! Now you can create completely gas-less orders, with these tokens.
***UPDATE: With 1inch v2 Limit Orders you can now have native tokens returned to your wallet. However, the order still must be placed with an ERC-20 token.
In this article we will cover:
What is a 1inch limit order?
A 1inch limit order is an order placed into a centralized 1inch database through the 1inch UI. While creating a limit order, you may set a specific price target and terms of the trade. These types of orders are not sent to any one specific user; they can be filled by anyone, including the 1inch Aggregation Protocol.
Obtaining access to the database externally is possible via the 1inch Limit Order API.
You can find the swagger here, for all of the following chains:
When the market price matches the price set in the limit order, a taker can fill it, covering the gas cost in addition to the trade's value. It is important to note that the 1inch Limit Order Protocol does not charge any on top fees. This lack of additional fees makes this Protocol more gas efficient than the Legacy 0x Limit Orders.
The 1inch Limit Order Protocol supports a broad range of token standards such as ERC20/BEP20, ERC721, and ERC1155. Other token standards could be supported via external extension.
***Please note: A 1inch limit order does not reserve funds when placed, therefore, no tokens will be returned upon order cancellation or expiration. If the funds are moved after the order is placed, the order will not fill (you will see an error notification in on the page also).
How to place a limit order:
To place a limit order on 1inch, perform the following steps:
Go to https://app.1inch.io/ and switch to the tab to ‘Limit’;
Connect your wallet, using this guide;
In the section ‘You pay’, select the asset you want to sell and enter the amount.
***Placing a limit order with an insufficient balance has become possible on the 1inch Limit Order Protocol! The limit order will remain valid for the set period of time. It will fill partially, depending on the amount of funds held in the wallet at the time market conditions are favorable.
***Limit orders will always fill at the price specified be careful when entering the token in the 'You receive' field.
***Also remember: You can always set the maximum amount of a specific asset available in your wallet.
In the ‘You receive’ field, type or select the asset you would like to buy from the drop-down menu, and enter the amount desired. (The grey number directly above the amount corresponds to approximate value in US dollars.)
In the 'Price' field, enter the price at which you want your order to be executed. Then set the validity period in the ‘Expires in’ field;
Selling DAI for WETH
‘You pay’ = 1 DAI
Price: 1 DAI = 0.0003 WETH
‘You Receive’ = 0.0003
Expires in: 7 days
In this case it will look like this:
Certainly, by placing a limit order you aim to get more WETH for your DAI than the current market can offer you. Keeping this in mind, you'll have to adjust the price of the 'You Pay' asset, specifically, increase it. For this example, you could increase the price to 0.0004 WETH per 1DAI. Please, note that the amount of WETH will increase in accordance with the rate 1 WETH = 2500 DAI.
Your limit order will look like this:
‘You pay’ = 1 DAI
Price: 1 DAI = 0.0004 WETH
‘You Receive’ = 0.0004 (When 'You Pay' amount is entered, the 'You Receive' amount is calculated automatically.)
Expires in: 7 days
Once you've set the target price for your DAI, you are good to go.
***Please note: Below the "Rate" field, there is "Inverse Rate" which adds convenience when calculating asset conversion rates.
Click on 'Give permission to use XXX' and confirm the transaction in your wallet (this is only an approval, and requires a small gas fee);
***Note: if using a permit 712 token, no gas fee is required to approve. You can simply sign the approval and swap all in one step, for free!
Click on ‘Review Limit Order’, verify the order, and sign it in your wallet;
The order will now appear on the UI in the ‘Active Orders’ section.
If you no longer want to keep this order, use the cancel option in the right-hand part of your order (red x symbol). The option ‘Cancel All Orders’ will allow you to cancel all active orders in one go.
*** Please note: Manually cancelling a limit order does incur a gas fee when the transaction is signed.
If you happened to have active limit orders placed before the 1inch Limit Order Protocol was released, you can keep track of them under the tab "Legacy Active Orders" (0x limit orders).
***Please note: If you create a limit order and then move the funds out of the wallet before it is filled, you will see an "insufficient funds" notification. This means that the order will not fill, due to the to funds not being present in the wallet.
What if my limit order never gets filled?
There are several factors that can cause a limit order to not be filled.
Here are a few:
The exact limit order price target might not have been reached. The charts displayed on the 1inch UI aggregate price data from multiple sources. At times, there can be a difference between the displayed chart price and the on-chain execution price.
The order might not have been profitable for a taker. Takers must consider the order's size, gas fees, and personal profit margin before deciding to fill your order. Also, takers may only fill part of the order, then seek out other orders with more profitability.
It is a rare token which has low trading volume. There may currently not be a taker on the other side to fill the order.
There are insufficient funds in the wallet to fulfill the order. If a limit order is placed and the funds are moved, it will remain active, but unfilled.
Why can't I view my limit order?
The transactions might not have been signed before placing ;
The order was already executed (this can be checked in your 1inch order history);
The page needs to be refreshed.