IDEX rose rapidly after EtherDelta’s success and became the largest decentralized exchange. What did IDEX did that surpass EtherDelta?
On IDEX, to avoid transaction failures, admins will send the transactions onto the blockchain instead of users themselves, which is different from most other decentralized exchanges. Besides, IDEX has order matching function which will match buyers and sellers automatically after inputting price and amount. Then users can further send their signatures to confirm the trade. Refer to the graph below:
When user places a sell order lower than the market price, he may be matched with different counterparties and has to sign the transaction to proceed. However, in my opinion, IDEX’s smart contract can be further improve as it does not support one to many matching, so users have to sign several times when matching with different orders. In the example above, the order will require four different prices to match its order, which means at least four transactions need to be signed. Moreover, the process of signing takes time, if any order is cancelled or matched by others during this period, the transaction will be interrupted.
I once encountered an awkward moment. When I tried to buy a token, a trading bot kept placing and cancelling orders with the lowest price quickly and repeatedly. As a result, every time I tried to sign a transaction, it popped up “Order does not exist” error and terminated the trade. And I was not able to buy other orders with higher prices.
Because IDEX broadcast the transactions on behalf of users, it will charge Takers extra Gas Fees for every transaction. IDEX collects 170,000 Gas for every transaction and 100,000 for withdrawal. You have to multiply that amount by the Gas Price set by IDEX to get the actual Gas Fee. Assuming the Gas Price is 20 Gwei, making a transaction will cost you 0.0034 ETH of Gas Fee. In our example, four transactions need to be conducted, so the total Gas Fee is 0.0136 ETH.
Users are not notified about this information during the trade, so you may find out being charged expensive Gas Fees later. One time I placed an order which worth only 2 ETH. But there were two orders with small amounts on the order book, so I had to execute three transactions in total. After completing these transactions, I found out the Gas Price on IDEX was 60 Gwei which costed me 0.0408 ETH for Gas Fee. At then, the Gas Price of the blockchain network was 27 Gwei which is nearly half of IDEX’s.
There are many other exchanges broadcasting transactions for their users and charging Gas Fee, but IDEX tend to set a higher Gas Price. For instance, the Gas Price set on JOYSO, Bithub and IDEX are respectively 8, 9 and 22 Gwei when I am writing this article.
Since Takers will be charged Gas Fee for every transaction, they do not want to match orders with only small amount. To avoid this problem, IDEX set a limit on trading amount. The minimum trading amount for Maker is 0.15 ETH and 0.05 ETH for Taker. Partially matched orders with small residual amount will also be forced to cancel. In addition, the minimum withdraw amount is 0.04 ETH. These restrictions are unfriendly to users possessing small amount of assets, because they can neither trade nor withdraw.
There is another thing worth mentioning in IDEX’s smart contract. IDEX has the right to decide how much trading fees they are going to charge, and they are not definitely equal to the rate when users are placing orders. Although there is a maximum amount of 10%, this kind of measure raises the doubt about centralization.
Though IDEX provides order matching function, extra Gas Fees resulted by small amount orders become a concern for users. More problems are raised even it solve the failure of transaction issues. Overall, I think IDEX is not friendlier than EtherDelta.
- No one to many matching. Need to sign several transactions and cost extra Gas Fees.
- Any change of order will interrupt the transaction, leaving users unable to trade
- Users can not skip orders with small amount
- High trading cost due to expensive Gas Fee
- Minimum amount limitation on trading and withdrawal
- Admins have right to charge trading fees up to 10%, which may compromise users’ right
- Deals guaranteed. Do not need to wait for the confirmation on blockchain
*This article is written based on my experience in July and August, 2018. IDEX may release future updates to solve the issues mentioned.
Article by Yi-Cyuan Chen, Chief Architect of JOYSO