Introduction to uniswap10x.exchange

4 707
Avatar for uniswap10x
3 years ago

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!):

 

5
$ 2.47
$ 2.47 from @TheRandomRewarder
Avatar for uniswap10x
3 years ago

Comments

Why u changed -> '96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' to -> '34f693d82b192d3abdcb0d6fa2b99aed4ff14a195379b060e6cd8637be29c5fe'

can you explain and decode more about that ?

$ 0.00
3 years ago
constructor() public {
    feeToSetter = address(0);

do these lines of code mean that the contract burns the fees, i.e. sends them to 0x0000?

$ 0.00
3 years ago

No. So there two variables: FeeTo and FeeToSetter. When FeeTo is set to 0x000...0, then the fee (dev tax) is off by default. But if the FeeTo is set to an actual address (where fees would be sent) other than 0x000...0, then the dev tax is turned on and fees are paid out. The FeeToSetter is the address owner who has the right to change the FeeTo address - i.e. turn on the dev tax.

$ 0.00
3 years ago

Hello! I would love to chat with you about forking this contract for another project could you please get back to me so we can discuss a possible collaboration?

$ 0.00
3 years ago