dYdX V4 Software Licenses: TL;DR

Hi @everyone!

Cross-posting this here from my X Account (https://x.com/ImmutableLawyer/status/1702006016131661828?s=20) as some of you have reached out with questions in relation to these software licenses, whether they are open-source or otherwise etc.

Disclaimer: I am not employed with dYdX Trading Inc. this is just an explainer based on my previous experience advising clients in relation to the optimal choice of software license to apply to their codebase.

@dYdX GitHub Repositories are now public! Given the numerous questions received in relation to the current Business-Source License + the prospective GNU Affero GPL (which will make the repos fully open-source), here’s a thread explaining some key points on these license-types. The code is currently under a BSL until it is production ready (ref: https://x.com/dYdX/status/1701641675666313470?s=20). A BSL allows users the right to copy, modify, create derivative works, redistribute, and make non-production use of the licensed work.

Non-production use of the code is always free. In addition, the licensor (dYdX Trading Inc. in this case) can also make an Additional Use Grant allowing production use under specific restrictions. The BSL is not an open-source license, but rather, can be seen as a precursor to fully open-sourcing a codebase. The GNU Affero GPL, this is an interesting choice by @dYdX , it’s a license-type not commonly used within the industry, but one which (in my opinion), offer certain added benefits than the classic (usual go-to), MIT License. As opposed to the BSL, this is an open-source license. The GNU Affero GPL was created to address a specific concern related to software running on network servers, particularly web applications. This is a copyleft license, meaning that if you modify the software covered by the AGPL and distribute it to others, you are required to provide the source code for your modifications under the same AGPL terms.

The AGPL explicitly covers the distribution of modified AGPL-licensed software over a network. If you modify AGPL-licensed software and make it available as a network service, you must make the source code available to users who interact with that service over the network. This provision aims to prevent the exploitation of software as a service (SaaS) without sharing the modifications made to it. It also ensures that the open source nature of the software is preserved even when it is used in a networked environment.

Why not MIT? Well, you can incorporate MIT-licensed code into proprietary software without the requirement to make your source code available. AGPL requires you to provide the modified source code to those users when carrying out this endeavor (a benefit in my eyes). The AGPL specifically cater for network use i.e. If you modify AGPL-licensed software and make it available over a network, you must make the source code for those modifications available to users who access the software through the network. This is not the case for MIT software. The AGPL is less compatible with open-source licenses than MIT due to its added restrictions (explained above). However, it is is compatible with the standard GNU GPL.

Combining the AGPL with the MIT license can be problematic and one needs to take due care to AGPL-provisions. In summary, the MIT License is permissive and does not require you to share source code modifications when you distribute software, even if it’s used in a networked environment. On the other hand, the GNU Affero GPL is a copyleft license that focuses on network use, requiring you to share the source code of modifications if you distribute AGPL-licensed software over a network.

Feel free to reach out should you have any questions!