Bancor supports limit orders using KeeperDAO and 0x Protocol. Placing the order requires no gas as gas is paid by the user who eventually fulfills the order.
Here's how to set a limit order:
1. Go to the Bancor swap section and choose "Limit" instead of "Market"
2. Set your limit order: select the FROM token and TO token. As an example, say I want to buy BNT when the price reaches 3% above its current price in USDC.
You can also choose when this limit order will expire by clicking on the time and setting a custom timeframe.
3. Confirm and sign the transaction
After confirming the terms, you’ll see a transaction on your MetaMask (or whichever supported wallet you’re using) with details of the transaction. Interaction with the KeeperDAO system occurs off-chain and costs no gas for the user.
Once signed, you’ll see a new order appear in the table below the swap widget that will show the pending limit order
4. Possible next steps
- Order execution — when the order is executed fully/partially, the “filled” column will indicate the percentage of the order that was fulfilled
- Expired/fulfilled orders — when an order expires or is completely fulfilled, it will stay visible for some time before disappearing from the table.
- Canceling an order — to cancel a specific order, you can click the “X” at the end of the row and sign an on-chain transaction to remove it from the queue. (NOTE: cancelling an order costs gas)
- Canceling all transactions — to cancel all transactions click the “Cancel All” button and sign this on-chain transaction.
- ETH transactions — ETH-based transactions will include additional steps as followed:
- If the FROM token is ETH, you will need to wrap the ETH into WETH first.
- If the TO token is ETH, you will receive WETH to your wallet and will have the option to unwrap it yourself when desired
- Unwrapping WETH — by clicking the “withdraw WETH” button you will have the option to select how much of your WETH balance you wish to withdraw back to ETH.