Introduction to Uniswap10x: https://uniswap10x.exchange
Problem
Uniswap is by far the coolest project on Ethereum at the moment. It is fully decentralized and trustless and enables anyone without permission to create liquidity for any ERC20 token. Liquidity providers (LPs) are incentivized with 30bps fee income to post ETH-ERC20 liquidity to enable others to trade with minimal friction. The only problem is that this 30bps fee is not sufficient to make many low volume, high volatility token pairs profitable for LPs. We can see this by tracking the ROIs of LPs of the top 70 traded token pairs on Uniswap v1 – turns out roughly half of these pairs have lost money for LPs (see table at bottom). In other words, all these LPs would have been better off holding their original ETH and ERC20 rather than “putting them to work” in Uniswap over the last 3 months (source: https://zumzoom.github.io/analytics/uniswap/roi/).
Solution
We forked Uniswap v2 on mainnet and increased the LP fee 10x to 3%. This means that LPs should be able to earn enough fees to compensate them for losses from volatility. People who want to create liquidity for the long-tail tokens will be more likely to do so on uniswap10x.exchange than on the original. Thus we would expect LPs to gradually move their liquidity over to 10x, rather than risk continued losses. These contracts are deployed to the Ethereum main net, are permanent, and can never be changed or shut down (there are no admin keys). If you don't trust the UI, you can interact with the contracts directly using Metamask and Etherscan.
Try it out!
Go over to https://uniswap10x.exchange and try it out. There is an initial small ETH/DONUT pool to test. You can swap, add liquidity to this pool or create your own pool. Make sure you have Metamask (or similar) installed. Before swapping the first time, click on “Show advanced” and enter under “Set slippage tolerance” 3%, so that the swap goes through (you only need to do this the first time, as it should be remembered the next time you visit the site).
Technical details
For those of you interested in the actual main net contracts here’s some info for you: The Uniswap10x factory contract clone has been deployed here: https://etherscan.io/address/0x56b8e9907b4c09b944a5b127788350ab137a6b46#code
Comparing it to the original uniswap v2 factory contract here: https://etherscan.io/address/0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f#code
You find only the following differences:
Line 2: instead of 2020-05-04, now 2020-06-08 :: Uniswap10x contract verified 1m later
Lines 375-6: instead of 3, now 30 :: means 30/1000 3% instead of 3/1000 0.3% (30 bps)
Lines 407-8: instead of original:
constructor(address _feeToSetter) public {
feeToSetter = _feeToSetter;
you find:
constructor() public {
feeToSetter = address(0);
This means that instead of the uniswap team address 0xc0a4272bb5df52134178df25d77561cfb17ce407 being able to add a Liquidity Provider tax in the future, now nobody can add a tax in the future to Uniswap10x. We respect the uniswap team greatly, but because the point of Uniswap10x is to guarantee LPs ability to make positive returns on their liqduidity, we removed the tax from the Uniswap10x fork of v2.
Also, the Uniswap10x router contract clone has been deployed here: https://etherscan.io/address/0xadb090336899b1f0306a1b1d392884aa87201aba#code
Comparing it to the original uniswap v2 router contract here: https://etherscan.io/address/0xf164fc0ec4e93095b804a4795bbe1e041497b92a#code
You find only the following differences:
Line 2: instead of 2020-05-12, now 2020-06-08 :: Uniswap10x contract verified 1m later
Line 153: instead of
hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' // init code hash
you now find:
hex'34f693d82b192d3abdcb0d6fa2b99aed4ff14a195379b060e6cd8637be29c5fe' // init code hash
This enables the Uniswap10x router to interact with the new Uniswap10x pair contracts
Lines 175 & 186: instead of 997, now 970 :: this just adjusts to the 3% fee instead of 0.3%
That’s it! No other changes to the original uniswap v2 contracts.
Btw: a good tool for comparing contract codes https://text-compare.com/
Table of unprofitable uniswap pairs over last 3 months
If you’re an LP of any of these or similar pairs, you might want to consider migrating the liquidity over to https://uniswap10x.exchange
If you have any questions or comments you can add them here (and yes, I now this is a BCH platform not ETH, but it's way cooler than Medium!):
Why u changed -> '96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' to -> '34f693d82b192d3abdcb0d6fa2b99aed4ff14a195379b060e6cd8637be29c5fe'
can you explain and decode more about that ?