Change Smart Contract Code Licenses (similar to Uniswap v3 License)

While I am generally a huge proponent of FOSS (free and open source software), and the transparency of open source code is critical to the security of blockchain projects, I think we should release all future smart contact code under a license similar to the Uniswap v3 License1.

Motivation

With projects like MetaVault2 creating direct forks of the GMX protocol smart contracts, and creating carbon copies of the the front end UI. I think the GMX project should be able to profit from the amazing and innovative IP created @xdev_10 and team when used outside the GMX ecosystem.

Background & Justification

Early GMX and GLP holders, and platform users (traders), have battle tested the innovative liquidity pool and perpetual futures trading contracts. These users took on a significant risk being early in a project.

Now, other projects can benefit from this extensive testing and development by forking the project and creating clones on other chains. New projects benefit immensely by not taking on the opportunity cost of novel development, and users don’t have the same level of risk of failed project economics or smart contract bugs for a novel trading platform.

With the upcoming work on the X4: Protocol Controlled Exchange3, now seems like a prudent time to evaluate updating the project’s code licensing.

Solution

I would recommend releasing all future code under a license similar to the Uniswap v3 License1. It is critical to keep code opensource, but opensource doesn’t necessarily mean free to use. The Uniswap license restricts anyone from copying the code for 2 years after publication. This is similar to the way patents give an inventor/company the right to solely benefit from the work required to create IP for a short period.


Ideas for Licensing:

There are a few ways the GMX project could benefit from a more restrictive license, beyond just outright preventing competition.

  1. Anyone who wants to use the GMX smart contract code for their own projects could pay a licensing fee to GMX. This could be:
    a. one-time,
    b. monthly,
    c. based on monthly active users,
    d. or volume-based (% of platform fees)

  2. We could reduce or wave the licensing fee for project who provide certain thresholds of GLP liquidity.

    Example: a project must hold a minimum of 10 GLP for each monthly active user of their platform, or pay 10% of gross trading fees. (I also don’t think licensees should get esGMX rewards on staked GLP.)


I would love to hear what others think. Please share other licensing ideas and ways the GMX community could benefit from the use of the porject’s code outside the GMX ecosystem.

Maybe I’m being greedy but I truly think GMX has created massive and valuable innovation in the DeFi space, the benefits of which are only barely being realized. GMX contracts provide the basic building blocks for other projects to build DeFi derivative product on top of, and GMX could be the foundation of future trillion dollar DeFi markets. I think GMX and its early supporters should be rewarded for the value that has been created.

Links

(I can only add 2 links because I’m a new user, mods please feel free to edit):

  1. github [dot] com/Uniswap/v3-core/blob/main/LICENSE
  2. metavault [dot] trade/earn
  3. medium [dot] com/@gmx.io/x4-protocol-controlled-exchange-c931cd9a1ae9
11 Likes

good idea!
The community needs people like you.

1 Like

Hmm, not sure how I think about this.

The open-source code allows people to build their lego-blocks on our code, licensing this would also make the code private thus making it harder to build on our codebase. Open-sourcing the code is afaik also needed if you want to allow bug bounties in case of attacks, which are again an overlooked part which a lot of people don’t get.

I do think it’s a good idea for blatant copies like you mentioned, but for growth open-source always has been the go-to.

2 Likes

This is a healthy discussion to be having now, in light of the X4 future. Good to start a thread about this!

1 Like

Open source and open licenses are two different things. We can still keep our code open source (ie. all code is publicly viewable on GitHub, which I believe is super important) while having a license that restricts copying/use of the code, either for commercial or any use.

You can view all the source code for Uniswap V3 on GitHub, but their license restricts anyone from copying or using the code for two years (at which point it transforms into a normal GPL 2.0 – free for commercial use license).

It can be really hard to enforce restricted licenses on opensource code (especially in crypto, where an anonymous team could copy and publish any smart contract to the blockchain). Disputes would still need to go through the traditional legal system and legal jurisdiction and enforcement can make enforcement almost impossible, but this is a separate issue.

2 Likes

Ok my bad. Messed up the two things then. Still would like to know what @xdev_10 thinks about this. But I like the proposal!

1 Like

Hi, I simply signed up for this thread as I like the project but I’m mostly not active in discussion groups.

I believe a more protective approach would definitely benefit the project and I’m definitely supporting a more restrictive licencing method for this.
It’s way to easy for copycats to launch their own platform. There’s also the risk some platform takes the market with what you created, and this would be completely ludicrous imo.
I’m definitely pro opensource but I also believe someone should be able to take some head start with their own technology against some competitor.

I really like ideas 1d and 2 from @0x2B14b5.

1 Like

Thank you for this suggestion! I think you brought up a lot of good points to consider

Will discuss with the team and update here

4 Likes

Great idea!
Guess a lot to discuss/consider since GMX is anon project in crypto world.

1 Like

This is good idea and nice discussions hope that success

1 Like

Another example of opensource code in crypto that has restrictive licensing is SushiSwap. Their BentoBox and Kashi Lending smart contracts are both released UNLICENCED. When software code is released without a license it falls under default copyright laws and all rights remain with the company (ie. no one is allowed to copy the code).

All the SushiSwap code is opensource and viewable on GitHub but to (legally) be allowed to use it a project must negotiate a license with them. The Magic Internet Money protocol (the MIM stable coin, produced by abracadabra.money) licenses the BentoBox and Kashi smart contracts from SushiSwap to power their lending cauldrons.

I, personally, like the Uniswap model better. Uniswap provided a finite duration for which they get exclusive right to use their code. To me, this is more in line with the “crypto ethos” and 2 years is a long time in crypto to have exclusive right over specific code.

2 Likes

Interesting, thank you for sharing, agree that the two years rights could be preferable

Had a brief discussion with the team, we don’t see any strong reasons not to apply licensing to the PvP and X4 contracts, we can propose a governance vote closer to when the contracts are ready to finalise the decision on it

8 Likes