Uniswap Has Lost The Plot

Horse Dominating Unicorn

TL;DR

  • Uniswap interface censors many users.
  • I deployed a legal uncensored clone of the UI.
  • Uniswap Lab's lawyers have pressured mirrors to censor the uncensored UI.
  • The UI is still available via uncensorable platforms.
  • A new forked and rebranded version of the Uniswap UI is available without fees (Ethereum transaction fees and spread fees still apply) at ipns://1.horswap.eth or https://1.horswap.eth.limo.
  • Uniswap Labs won't talk to either me or eth.limo about this, they just ignore our requests to talk.

TL;DR: How You Can Help

  1. Stop using the censored and tracked https://app.uniswap.org and start using the uncensored and privacy preserving ipns://1.horswap.eth or https://1.horswap.eth.limo.
  2. Encourage everyone you know to do the same.

TL;DR: Timeline

  • 14 takedown requests over a year, all but the last were essentially identical to each other and basically just spam.
  • It appears the uncensored forks were not the only forks that were harrassed.
  • eth.limo tried to engage productively and provided detailed answers while the reporter never engaged, just made demands.
  • The final takedown that was accompanied by legal threats was backed by Uniswap Labs, not just their hired guns.
  • eth.limo did an excellent job standing up against censorship as long as they could, but the billion dollar company with a legal team won.
  • dweb.link also appears to have suffered similar fate, it is unknown if they tried to defend or not though.

Philosophy

I was a huge fan of Uniswap. For a time I provided free customer support in their Discord server so their developers could focus on building great products. I frequently used Uniswap as a canonical example of how censorship resistant tools should be built. They did everything right in the beginning by making their contracts immutable and publishing their web interface on IPFS. They didn't have a bunch of third party dependencies, the site "just worked" and I did everything I could to help them succeed from the sidelines.

Over time, the ethos of the team building Uniswap seemed to change. When they released Uniswap v2 which had a fee switch I wasn't strongly against it as I do think developers should get paid for their work. When they launched their UNI token I grumbled about it but didn't raise too much of a fuss. When they added censorship directly to their UI I attempted to convince them to remove it by engaging with their developers. When Hayden blocked me on Twitter because I kept correcting him on how censorship resistant Uniswap was, I frowned and moved on. It is when they sent their lawyers after my uncensored fork of their UI that I finally gave up on thinking they were the same company/people that I originally fell in love with.

When the incident described below occurred, both eth.limo and I did our best to reach out to Uniswap Labs and resolve the matter with them amicably. We both hoped that this was just a problem with some abandoned bureaucracy gone awry and not a strong divergence from the ethos they claim to have. Unfortunately, neither of us were able to get any response from them. They effectively ignored us, even when we attempted to reach them through our social networks rather than through formal processes.

As a community, I think it is time we recognise that Uniswap Labs is now in the phase of their lifecycle where they are coasting on the good will they developed in their formative years. We have seen the same thing with many big companies like Google, where they start out ethos aligned with their users saying things like "don't be evil", but eventually they turn into censorious tech giants funding the military industrial complex and lobbying governments to expand their moats through regulatory capture.

Incident Background

Censoring Unicorn

Back in the summer of 2022 (or possibly earlier), Uniswap Labs (the developers behind Uniswap) added censorship to their UI. In an effort to make the ecosystem a better place, rather than just complaining I submitted a change proposal that removed the censorship from the UI in two places:

  • 1. It removed the blacklist feature in the UI.
  • 2. It changed from a censoring JSON-RPC provider (Infura) to a non-censoring one (my own).

Along with these changes I suggested that the Uniswap Labs dev team could integrate the changes into their GitHub repository, while running a censored forked version of the UI on their servers if they felt they must engage in censorship of their users for legal reasons. This would allow anyone to easily access the uncensored UI by either serving it themselves, or accessing it via IPFS. Unfortunately, after sitting open for a month the PR was closed without any changes being made.

In response to this, I created a copy (aka: fork) of the interface which is well within the rights allowed by the open source (GPL) license they were using. This fork of the UI removed not only the censorship, but also all of the tracking/analytics that Uniswap was doing. I published this version of the interface to IPFS, which allows anyone to serve a copy of it to anyone else via the IPFS peer to peer network. This is still available on IPFS to this day.

Along with publishing the code for my fork to the IPFS peer to peer network, I also linked to it via the censorship resistant Ethereum Name Service (ENS) that is deployed to Ethereum Mainnet under the uniswap-uncensored.eth name at 1-104-1.uniswap-uncensored.eth. This makes it so people can use a more easy-to-remember and read name address in their browser address bar rather than the nonsense looking IPFS content hash.

Since not everyone in the world runs a local IPFS/Ethereum client, there are a number of services that make IPFS served content available via ENS names to users. One popular such service is https://eth.limo which allows you to just add .limo to the end of any ENS name and if that ENS name points at an IPFS website it will serve it to you just like any other website on the internet. This meant that you could access the censorship resistant version of Uniswap that I published the code for by just going to https://1-104-1.uniswap-uncensored.eth.limo in any web browser.

Earlier this year, I converted 1-104-1.uniswap-uncensored.eth into an immutable ENS name, which means that neither I, nor anyone else, can change what it points to for 30 years. Users can now safely use this name without having to worry about me or someone else redirecting it to point at a scam website in the future.

Legal Harassment

A lawyer conspiring with a unicorn to issue a takedown notice.

You can see a full timeline below, but essentially Uniswap Labs spammed eth.limo with takedown requests, to which eth.limo kept trying to engage and provided detailed responses. Eventually, Uniswap Labs escalated to thinly veiled legal threats demanding that the site be taken down at which point eth.limo capitulated.

The thing that makes me particularly frustrated with this is that Uniswap and their founder Hayden frequently talk about how much they care about open source and how people can build forks of the UI, but then when you do they send their lawyers after you. For example, in this tweet Hayden claims:

I see [the purpose of blockchains] as a way to add highly desirable properties (no one can shut it off, verifiable history etc) to what would otherwise be a server / database

And in this tweet he says:

I have deep respect for any efforts I see to build better or more decentralized versions of flashbots, Uniswap, etc

Less patience for random twitter criticism

But then his company censors access to their blockchain based tool and proceeds to send their lawyers at anyone who attempts to make a censorship resistant version of their tool available to users who need it the most (e.g., innocent civilians in North Korea, Venezuela, Iran, Russia, etc. who are cut off from the global financial system). Their company's behavior is in direct conflict with the claims made by their leadership. Claims that they are just "legally protecting themselves" fall flat because they are going out of their way to block uncensored UI forks from being easily accessible.

Perhaps the issue is that Hayden and other ethos aligned executives at Uniswap Labs have simply lost control of the company. This problem is incredibly common and a big reason why I have actively chosen not to build/run a large company, because I do not know how to avoid this problem. You can see some evidence of that in this tweet where Hayden appologizes for Uniswap Labs' legal team going after a GitHub fork that was just submitting a pull request:

A horse working for the press.

Agree the takedown was unnecessary considering its just a github PR and not in production

Was not aware until I saw this tweet, but quickly dug in and we will be withdrawing the takedown / agree it was a mistake

Sorry about that

While a public apology and correction like this is good, it feels empty when it keeps happening and the only way to resolve it is for a social media influencer to publicly bash Uniswap in order to get seen/heard. eth.limo and I both tried to contact Uniswap to resolve this issue amicably, but there is no path to resolution that we could find (other than perhaps public bashing, which Hayden says he doesn't like, and we'll find out if it works soon enough).

To Hayden if you read this: If this sort of behavior isn't what you want Uniswap to be known for, then you need to either take the reigns as CEO/Founder/President and get your bureaucracy under control, or you need to hire someone ethos aligned who is capable of doing so.

Fighting Back

A horse punching a Unicorn.

When I first published the uncensored version of the Uniswap UI I didn't actively advertise it. I would link people to it when it seemed appropriate but I didn't actively try to compete against Uniswap. However, their attempts to remove the uncensored version of the UI from the internet have caused me to feel a need to retaliate much more strongly. I want to make it clear to both Uniswap Labs and other developers/companies in this space that if you are actively hostile to censorship resistant software, there are people with the means and drive to harm your bottom line. Just being "meh" on censorship resistance makes me sad, but actively trying to prevent it makes me mad.

Working with my team at https://dark.florist (most of the work is not done by me, but I personally audited every change), we have created a fork of the Uniswap UI that has all rent, censorship, tracking, and third party dependencies removed. It also removes all Uniswap trademark, branding, and most external links to Uniswap products. We call this product Horswap (pronounced whore-swap) because if Uniswap is short for "Unicorn Swap", and you call a dehorned (less dangerous) Unicorn a Horse, then the obvious name for this product is Horswap. You can access it via IPFS/ENS at ipns://1.horswap.eth, or via eth.limo from any browser at https://1.horswap.eth.limo.

While I don't have millions of dollars to waste on legal fees like they do, I believe that this fork of the UI is essentially immune to any non-frivolous claims that Uniswap may make against it and if they do want to challenge this claim in court I would be happy to take that challenge as I believe what I'm doing is completely within legal rights of Uniswap's jurisdiction (US).

You Can Help

For those of you out there that want to help, the best thing you can do is to stop using https://app.uniswap.org and start using ipns://1.horswap.eth (https://1.horswap.eth.limo). If you want to go above and beyond, you can signal boost Horswap with your friends, family, and extended social network. Let people know that Uniswap is no longer ethos aligned and the best way we can signal to them that the rest of us actually do care about censorship resistance is by no longer using their hosted UI (and on longer paying their UI fee). If you want to become a superhero, you could also install IPFS Desktop (if you don't have it already) and pin horswap to help ensure it will always be available for users in the future.

Horswap is unlikely to receive updates outside of perhaps critical bug fixes, and will work indefinitely into the future regardless of what Uniswap Labs does because it only interacts with the immutable contracts. We recommend loading it from IPFS and connecting with a browser wallet of your choice so that even if our servers all go offline and they somehow manage to censor eth.limo again, you'll still be able to use the site exactly how it is today.

Timeline

A smart horse holding a timeline scroll.

What some of you may notice right away is that the https://1-104-1.uniswap-uncensored.eth.limo link doesn't actually work! This is because the developers/operators of eth.limo were pressured by Uniswap's legal hitmen to censor the uncensored version of the site. Luckily, the site is still available on the IPFS network and the ENS name is immutable and no amount of lawyers can change that, but it is now harder for users to access. It is worth noting that the dweb.link version of the same sites are also being censored, though I do not have insight into what happened there (I assume it was the same as what happened to eth.limo).

2022-11-12

Uniswap Labs' legal hitmen (Bolster, Inc.) sent the following to AWS requesting a takedown of uniswap-uncensored.eth:

hxxps://1-104-0[.]uniswap-uncensored[.]eth[.]limo/#/swap?chain=mainnet is hosting Uniswap phish.

Please take down the page as soon as possible.

Uniswap does have a big phishing problem, and it is entirely reasonable that the uncensored version of the website might get caught by an automated script or a an employee who has to deal with many such websites every day. At this point, I don't think anyone has done anything wrong and I don't think eth.limo believes so either, so they responded to AWS with the following polite response:

Our service, eth.limo is a gateway proxy for accessing user-generated content from the Ethereum Name Service. We do not directly host or sponsor any of the content that can be retrieved via our gateway.

We have reviewed the site (ENS domain) in question and determined that it does not qualify as phishing. To our knowledge this user created site is a simple fork of Uniswap, as evidenced by this tweet: https://twitter.com/MicahZoltu/status/1560653264554958848

2022-11-13

The next day they sent the exact same takedown request to AWS.

hxxps://1-104-0[.]uniswap-uncensored[.]eth[.]limo/#/swap is hosting Uniswap phish.
Please take down the page as soon as possible.

eth.limo replied with the same response as before, and AWS followed up asking for:

Thank you for following up! Could you provide a use case we can send to the reporter regarding this activity? Once we have this information, we may be able to resolve this case and resolve future cases with the same legitimate activity.

eth.limo replied with a lengthier reply, giving more details on the situation:

Uniswap has many open source repositories containing front end code as well as EVM contract code. Some power users fork these repositories and deploy custom front-ends that either add or remove features contained within the original Uniswap front end code. In the case of this abuse report, a well known crypto developer on Twitter announced his intention to develop and deploy a Uniswap compatible fork that removed some controversial data mining features:

Uniswap repos: https://github.com/Uniswap

Forked repo: https://github.com/MicahZoltu/uniswap-frontend

Announcement and explanations of the Uniswap fork: https://twitter.com/MicahZoltu/status/1560652867811561473

https://twitter.com/MicahZoltu/status/1560653264554958848

Please let us know if we can provide you with any additional information or context.

2022-11-15

3 days later eth.limo received another nearly identical report, further suggesting this is just some automated/bureaucratic process gone awry.

hxxps://1-104-0[.]uniswap-uncensored[.]eth[.]limo/#/swap is hosting Uniswap phish.
Please take down the page as soon as possible.

This is annoying given that a detailed response to the takedown request was provided, but eth.limo continued to reply politely and let AWS know that they have already responded previously to the same takedown request and provided the same details as before:

Our service, eth.limo is a gateway proxy for accessing user-generated content from the Ethereum Name Service. We do not directly host or sponsor any of the content that can be retrieved via our gateway.

We have reviewed the site (ENS domain) in question and determined that it does not qualify as phishing. To our knowledge this user created site is a simple fork of Uniswap, as evidenced by this tweet: https://twitter.com/MicahZoltu/status/1560653264554958848

We have been in constant correspondence with the AWS trust and safety team for the past several days regarding this issue. We believe this is an automated system incorrectly filing abuse reports. Please see the additional information below that might be useful in handling this in the future:

Uniswap has many open source repositories containing front end code as well as EVM contract code. Some power users fork these repositories and deploy custom front-ends that either add or remove features contained within the original Uniswap front end code. In the case of this abuse report, a well known crypto developer on Twitter announced his intention to develop and deploy a Uniswap compatible fork that removed some controversial data mining features:

Uniswap repos: https://github.com/Uniswap

Forked repo: https://github.com/MicahZoltu/uniswap-frontend

Announcement and explanations of the Uniswap fork: https://twitter.com/MicahZoltu/status/1560652867811561473

https://twitter.com/MicahZoltu/status/1560653264554958848

Please let us know if we can provide you with any additional information.

2022-11-16

Another takedown request arrived the next day. This time for a different version of the UI (forked from an earlier time point), so maybe they stopped with the previous takedowns and eth.limo just needs to do the same song & dance with this other version:

hxxps://4-11-1[.]uniswap-uncensored[.]eth[.]limo/#/swap is hosting Uniswap phish.
Please take down the page as soon as possible.

eth.limo replied to this with the same reply as they gave on 2022-11-15 (excluded from this article for brevity). AWS seems to have noticed the repetition here and requested permission to share the details with the reporter, which eth.limo agreed to and AWS said they passed the details on to the reporter.

2022-11-28

A couple weeks go by with no further takedown requests, then one comes in again for the same site as before:

hxxps://4-11-1[.]uniswap-uncensored[.]eth[.]limo/#/swap is hosting Uniswap phish.
Please take down the page as soon as possible.

eth.limo replied to this using the same reply as they gave on 2022-11-15 (excluded from this article for brevity). AWS once again asked permission to share the reply with the reporter.

2022-11-29

Another takedown the next day, this time of a slightly different version from previous takedowns.

hxxps://1-104-0[.]uniswap-uncensored[.]eth[.]limo/#/swap?chain=mainnet is hosting Uniswap phish.
Please take down the page as soon as possible.

eth.limo replied to this using the same reply as they gave on 2022-11-15 (excluded from this article for brevity). AWS once again asked permission to share the reply with the reporter, and eth.limo once again agreed.

2022-12-01

Another takedown 2 days later for the same version of the site.

hxxps://1-104-0[.]uniswap-uncensored[.]eth[.]limo/#/swap?chain=mainnet is hosting Uniswap phish.
Please take down the page as soon as possible.

eth.limo replied to this using the same reply as they gave on 2022-11-12 (excluded from this article for brevity). Another request from AWS to forward response to reporter, another agreement from eth.limo.

2022-12-05

Yet again 4 days later, same version as before.

hxxps://1-104-0[.]uniswap-uncensored[.]eth[.]limo/#/swap?chain=mainnet is hosting Uniswap phish.
Please take down the page as soon as possible.

eth.limo replied to this using the same reply as they gave on 2022-11-15 (excluded from this article for brevity). Another request from AWS to forward response to reporter, another agreement from eth.limo.

2022-12-06

Switched it up again, back to 4-11-1 instead of 1-104-0

hxxps://4-11-1[.]uniswap-uncensored[.]eth[.]limo/#/swap is hosting Uniswap phish.
Please take down the page as soon as possible.

Same response as from 2022-11-12, same back and forth about permission to share with reporter.

2022-12-12

Back to 1-104-0...

hxxps://1-104-0[.]uniswap-uncensored[.]eth[.]limo/#/swap is hosting Uniswap phish.
Please take down the page as soon as possible.

Same response as from 2022-11-15, but with an added note that AWS may forward the response to the submitter.

2023-01-21

Even hired guns take holidays. It seems there was a respite for over a month, but it returned to its previous degeneracy toward the end of January:

hxxps://1-104-0[.]uniswap-uncensored[.]eth[.]limo/#/swap is hosting Uniswap phish.
Please take down the page as soon as possible.

Same response as from 2022-12-12. This time it seems AWS recognized the repetition and proactively passed along the response to the reporter.

2023-06-09

Things were good for a while! It seems the situation may have actually made some progress as the reports stopped coming in, but alas, they returned:

hxxps://1-104-1[.]uniswap-uncensored[.]eth[.]limo/#/swap?chain=mainnet is hosting Uniswap phish.
Please take down the page as soon as possible.

Same response as from 2022-12-12.

2023-07-15

Another month with no annoyance, but then it returns again:

hxxps://4-11-1[.]uniswap-uncensored[.]eth[.]limo/#/swap is hosting Uniswap phish.
Please take down the page as soon as possible.

This time, eth.limo accidentally copied and pasted a response for a different Uniswap fork that was undergoing similar harassment. I don't know how many forks they are having to defend, but this gives some insight that it isn't just my uncensored UI that is suffering the same problem:

This is the third time we've been contacted about this, the previous reports were on 5/4/2023 - Report [11619783561] and 6/13/2023 - Report [14050988729]:

We believe that this report is a false positive.

Our service, eth.limo is a gateway proxy for accessing user-generated content from the Ethereum Name Service. We do not directly host or sponsor any of the content that can be retrieved via our gateway.

We have reviewed the site (ENS domain) in question and determined that it does not qualify as phishing. To our knowledge this user created site is a simple fork of Uniswap, as evidenced by the record information for this ENS domain: https://app.ens.domains/swap.pnkarmy.eth.
You will notice that this domain links to a GitHub repository, containing a Uniswap fork: https://github.com/kleros/uniswap-frontend.

Uniswap has many open source repositories containing front end code as well as EVM contract code. Some power users fork these repositories and deploy custom front-ends that either add or remove features contained within the original Uniswap front end code.

Please let us know if we can provide more information. You are free to share this reply with the submitter of the original complaint.

2023-09-11

This is where things get much more interesting. No longer is it just a simple claim of phishing, but now they are saying it is a trademark violation! How trademarks apply to code released under GPL is a legal grey area in the US. The GPL includes an option to exclude trademarks, but Uniswap did not exercise that option in their implementation of the GPL. It is a further grey area since the uncensored version of the site is actually the Uniswap product just with censorship removed, so it is not at all obvious that it is a trademark violation to make it available (just like it wouldn't be a trademark violation to sell Nike shoes with the laces removed and call them "Nike shoes with the laces removed").

Unfortunately, they also claim that the site is fraudulent and targets users for crypto scams which is not at all true. This suggests that this is still them just mass reporting phishing sites and trying to leverage the trademark to apply more legal pressure, but they either ignored all of the previous coorespondance or they simply don't care and just want "competition" removed from the internet. By this time the Uniswap team almost certainly was planning for their introduction of fees into the UI, so my guess is that they escalated their takedowns of UI forks in an effort to build a moat for their upcoming rent seeking.

It has come to our attention that a site that is actively targeting Uniswap customers is hosted through your service. This site is fraudulent and abuses Uniswap name and images to appear to be a legitimate Uniswap site or affiliate site and targets Uniswap customers for crypto scams.
This site is not affiliated with Uniswap.

Malicious URLs:
hxxps://1-104-0[.]uniswap-uncensored[.]eth[.]limo/#/swap?chain=mainnet

Trademark details:
Serial No: 90553000
Reg No: 6890462

Please review this site and suspend the services of the domain as soon as Possible.

They also demanded "proof" of collaboration with Uniswap and escalated their tone when AWS (I think) pushed back on their repeated claims. You will also notice that they are indicating that their client (presumably Uniswap Labs) wants the site taken down, and this is no longer just an automated phishing removal process:

The site is not affiliated with Uniswap and our client wants the site to be down, if not necessary action will be taken. Soi we kindly request you to suspend the site. if the customer has any documents to prove that he/she was collaborated with uniswap plase we ask for evidence to proof

AWS then suggested that eth.limo get in contact directly with the reporter, to which eth.limo replied that they would be happy to engage with the reporter and also provided a response to the demand for "proof".

Please put us in contact with the submitter. We'd be happy to work with them.

In addition to requesting a direct line of communication with the submitter, you may also reply with the following:

"Our service, eth.limo is a gateway proxy for accessing user-generated content from the Ethereum Name Service. We do not directly host or sponsor any of the content that can be retrieved via our gateway.

The site in question is a user deployed ENS site, forked from the official Uniswap frontend repo: https://github.com/MicahZoltu/uniswap-frontend.

We see that he has communicated with Uniswap developers and submitted several pull requests:

https://github.com/Uniswap/interface/pulls?q=is%3Apr+author%3AMicahZoltu
https://github.com/Uniswap/interface/issues?q=is%3Aissue+author%3AMicahZoltu

Perhaps this user has a relationship with Uniswap? Due to the nature of the eth.limo service, we request that you perform additional due diligence regarding abuse complaints.

Please let us know your findings and we can go from there."

Bolster then states that they have explicitly discussed this site with their client, and confirms that their client is Uniswap, and says that Uniswap wants the site removed!

We have discussed this internally with Our client Uniswap and they don't want this Site to be using the Uniswap Interface , this is the final notice and after this will proceed with further actions.

This is the point at which eth.limo finally gives up. They are a small operation and cannot afford to engage in a legal battle with a billion dollar company either in time or money and with Bolster threatening to escalate they finally gave up the good fight against censorship on the internet.

We have disabled access to the following sites:

1-104-0.uniswap-uncensored.eth.limo
4-11-1.uniswap-uncensored.eth.limo
1-104-1.uniswap-uncensored.eth.limo

Please let the reporter know.

Sometime Later...

I eventually found out about this censorship when I made the ENS name immutable and found people were unable to access it via eth.limo. I reached out to the eth.limo team who shared the details of the situation with me, and I am now sharing those details with the world.


You'll only receive email when they publish something new.

More from Micah Zoltu
All posts