3.2 KiB
Third-party licenses
Morphit itself is licensed AGPL-3.0-only (see LICENSE). It is
built on open-source dependencies obtained via npm, each under its own license;
Morphit does not relicense them. This file discloses the licensing of those
dependencies, with particular attention to anything that is not a standard
permissive license.
Summary
With the one exception noted below, the dependency tree is entirely permissive and compatible with AGPL-3.0:
- The overwhelming majority are MIT, ISC, Apache-2.0, or BSD-2/3-Clause (plus a handful of Unlicense / 0BSD / MIT-0 / CC0-1.0 / BlueOak-1.0.0 / Python-2.0) — all permissive and AGPL-compatible.
- MPL-2.0 dependencies are compatible with AGPL-3.0 via MPL-2.0's secondary-license provision.
- A few dual-licensed packages (
json-schema: AFL-2.1 OR BSD-3-Clause; and a MIT OR WTFPL package) are used under their permissive branch. caniuse-lite(CC-BY-4.0) is build-time browser-compatibility data and is not distributed as part of the runtime application.
To regenerate the full picture from an installed tree:
npx license-checker --summary # high-level counts
npm ls --all # full dependency graph
Notable: @beblurt/dblurt — BSD-3-Clause-No-Military-License
Morphit's Blurt blockchain client, @beblurt/dblurt, is licensed
BSD-3-Clause-No-Military-License — a standard 3-clause BSD license plus
a "no military use" field-of-use restriction. It is a runtime dependency
of three shipping components — the indexer, the relay, and the web
app — where it provides the Blurt JSON-RPC client, key/crypto primitives, and
transaction types.
What this means:
- It is not a standard "free / open-source" license. A field-of-use restriction (here, prohibiting military use) is generally considered non-free — it fails the Open Source Definition's criterion of "no discrimination against fields of endeavor."
- It interacts with Morphit's AGPL-3.0 license. The AGPL guarantees the
freedom to run the software for any purpose; the no-military clause on this
dependency removes that freedom for the combined, deployed system. Morphit
uses
@beblurt/dblurtunder its own terms (npm fetches it; it is not copied into Morphit's source), but anyone who deploys or redistributes Morphit together with this dependency is bound by the no-military restriction. - Downstream packaging. Distributions that require strictly free software
in their main archives (e.g. Debian
main, Fedora) would treat a dependency carrying this clause as non-free.
If the no-military restriction is unacceptable for your use, the dependency can
in principle be replaced. Morphit already ships its own @noble-based Blurt
signing path (apps/web/src/lib/blurt/nobleSigner.ts) and thin RPC-client
wrappers (apps/{indexer,relay,web}/src/.../blurt/client.ts), and the remaining
uses of @beblurt/dblurt — the JSON-RPC client, the key primitives, and the
transaction types — have permissively licensed equivalents. A migration off
@beblurt/dblurt is tracked as a possible future change. For now the
dependency is disclosed here so operators and redistributors can make an
informed decision.