Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,9 @@ jobs:
- name: Build all packages
run: pnpm -r --filter '!@bsv/ts-stack' run build

- name: Verify package license payloads
run: pnpm license:pack-check

# Resolve release mode + filter. Three shapes:
#
# 1. Tag `packages/<path>/v*` → single-package publish, filter=./packages/<path>
Expand Down
20 changes: 0 additions & 20 deletions LICENSE.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS THEREOF BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
DEALINGS IN THE SOFTWARE.
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -220,4 +220,7 @@ Keep unrelated package history and generated artifacts out of the same change wh

## License

See the individual package directories for license terms.
Every package and service in this repository is licensed under the
[Open BSV License Version 6](./LICENSE.txt). The repository copies the exact
license into every package artifact; see the
[licensing policy](./docs/reference/licensing.md) for the enforced convention.
58 changes: 58 additions & 0 deletions conformance/runner/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
Open BSV License Version 6 – granted by BSV Association, Alpenstrasse 15, 6300
Zug, Switzerland (CHE-427.008.338) ("Licensor"), to you as a user (henceforth
"You", "User" or "Licensee").

For the purposes of this license, the definitions below have the following
meanings:

"Bitcoin Protocol" means the protocol implementation, cryptographic rules,
network protocols, and consensus mechanisms in the Bitcoin White Paper as
described here https://protocol.bsvblockchain.org.

"Bitcoin White Paper" means the paper entitled 'Bitcoin: A Peer-to-Peer
Electronic Cash System' published by 'Satoshi Nakamoto' in October 2008.

"BSV Blockchain" means:

(a) the Bitcoin blockchain containing block height #556767 with the hash
"000000000000000001d956714215d96ffc00e0afda4cd0a96c96f8d802b1662b" and
that contains the longest honest persistent chain of blocks which has been
produced in a manner which is consistent with the rules set forth in the
Network Access Rules; and
(b) the test blockchains that contain the longest honest persistent chains of
blocks which has been produced in a manner which is consistent with the
rules set forth in the Network Access Rules.

"Network Access Rules" or "Rules" means the set of rules regulating the
relationship between BSV Association and the nodes on BSV based on the Bitcoin
Protocol rules and those set out in the Bitcoin White Paper, and available here
https://bsvblockchain.org/network-access-rules.

"Software" means the software the subject of this license, including any/all
intellectual property rights therein and associated documentation files.

BSV Association grants permission, free of charge and on a non-exclusive basis
to any person obtaining a copy of the Software to deal in the Software, including
without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to and conditioned upon the following
conditions:

1 - The text "© BSV Association", and this license shall be included in all
copies or substantial portions of the Software.

2 - The Software, and any software that is derived from the Software or parts
thereof, may only be used exclusively on the BSV Blockchain.

For the avoidance of doubt, this license is granted subject to and conditioned
upon your compliance with these terms only and is limited to uses on the BSV
Blockchain. Any exercise of rights not compliant with these terms including
use not for the BSV Blockchain is deemed outside the scope of the license.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES REGARDING ENTITLEMENT,
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS THEREOF BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
3 changes: 2 additions & 1 deletion conformance/runner/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,6 @@
},
"devDependencies": {
"typescript": "^6.0.3"
}
},
"license": "SEE LICENSE IN LICENSE.txt"
}
58 changes: 58 additions & 0 deletions conformance/runner/ts/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
Open BSV License Version 6 – granted by BSV Association, Alpenstrasse 15, 6300
Zug, Switzerland (CHE-427.008.338) ("Licensor"), to you as a user (henceforth
"You", "User" or "Licensee").

For the purposes of this license, the definitions below have the following
meanings:

"Bitcoin Protocol" means the protocol implementation, cryptographic rules,
network protocols, and consensus mechanisms in the Bitcoin White Paper as
described here https://protocol.bsvblockchain.org.

"Bitcoin White Paper" means the paper entitled 'Bitcoin: A Peer-to-Peer
Electronic Cash System' published by 'Satoshi Nakamoto' in October 2008.

"BSV Blockchain" means:

(a) the Bitcoin blockchain containing block height #556767 with the hash
"000000000000000001d956714215d96ffc00e0afda4cd0a96c96f8d802b1662b" and
that contains the longest honest persistent chain of blocks which has been
produced in a manner which is consistent with the rules set forth in the
Network Access Rules; and
(b) the test blockchains that contain the longest honest persistent chains of
blocks which has been produced in a manner which is consistent with the
rules set forth in the Network Access Rules.

"Network Access Rules" or "Rules" means the set of rules regulating the
relationship between BSV Association and the nodes on BSV based on the Bitcoin
Protocol rules and those set out in the Bitcoin White Paper, and available here
https://bsvblockchain.org/network-access-rules.

"Software" means the software the subject of this license, including any/all
intellectual property rights therein and associated documentation files.

BSV Association grants permission, free of charge and on a non-exclusive basis
to any person obtaining a copy of the Software to deal in the Software, including
without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to and conditioned upon the following
conditions:

1 - The text "© BSV Association", and this license shall be included in all
copies or substantial portions of the Software.

2 - The Software, and any software that is derived from the Software or parts
thereof, may only be used exclusively on the BSV Blockchain.

For the avoidance of doubt, this license is granted subject to and conditioned
upon your compliance with these terms only and is limited to uses on the BSV
Blockchain. Any exercise of rights not compliant with these terms including
use not for the BSV Blockchain is deemed outside the scope of the license.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES REGARDING ENTITLEMENT,
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS THEREOF BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
3 changes: 2 additions & 1 deletion conformance/runner/ts/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@
"jest": "^30.4.2",
"ts-jest": "^29.4.12",
"typescript": "^6.0.3"
}
},
"license": "SEE LICENSE IN LICENSE.txt"
}
58 changes: 58 additions & 0 deletions docs-site/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
Open BSV License Version 6 – granted by BSV Association, Alpenstrasse 15, 6300
Zug, Switzerland (CHE-427.008.338) ("Licensor"), to you as a user (henceforth
"You", "User" or "Licensee").

For the purposes of this license, the definitions below have the following
meanings:

"Bitcoin Protocol" means the protocol implementation, cryptographic rules,
network protocols, and consensus mechanisms in the Bitcoin White Paper as
described here https://protocol.bsvblockchain.org.

"Bitcoin White Paper" means the paper entitled 'Bitcoin: A Peer-to-Peer
Electronic Cash System' published by 'Satoshi Nakamoto' in October 2008.

"BSV Blockchain" means:

(a) the Bitcoin blockchain containing block height #556767 with the hash
"000000000000000001d956714215d96ffc00e0afda4cd0a96c96f8d802b1662b" and
that contains the longest honest persistent chain of blocks which has been
produced in a manner which is consistent with the rules set forth in the
Network Access Rules; and
(b) the test blockchains that contain the longest honest persistent chains of
blocks which has been produced in a manner which is consistent with the
rules set forth in the Network Access Rules.

"Network Access Rules" or "Rules" means the set of rules regulating the
relationship between BSV Association and the nodes on BSV based on the Bitcoin
Protocol rules and those set out in the Bitcoin White Paper, and available here
https://bsvblockchain.org/network-access-rules.

"Software" means the software the subject of this license, including any/all
intellectual property rights therein and associated documentation files.

BSV Association grants permission, free of charge and on a non-exclusive basis
to any person obtaining a copy of the Software to deal in the Software, including
without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to and conditioned upon the following
conditions:

1 - The text "© BSV Association", and this license shall be included in all
copies or substantial portions of the Software.

2 - The Software, and any software that is derived from the Software or parts
thereof, may only be used exclusively on the BSV Blockchain.

For the avoidance of doubt, this license is granted subject to and conditioned
upon your compliance with these terms only and is limited to uses on the BSV
Blockchain. Any exercise of rights not compliant with these terms including
use not for the BSV Blockchain is deemed outside the scope of the license.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES REGARDING ENTITLEMENT,
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS THEREOF BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
3 changes: 2 additions & 1 deletion docs-site/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,6 @@
"rollup": "^4.62.2",
"typescript": "^6.0.3",
"vite": "^8.1.5"
}
},
"license": "SEE LICENSE IN LICENSE.txt"
}
9 changes: 5 additions & 4 deletions docs/reference/container-supply-chain.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
id: container-supply-chain
title: "Container Supply Chain"
kind: reference
version: "1.0.0"
last_updated: "2026-07-25"
last_verified: "2026-07-25"
version: "1.1.0"
last_updated: "2026-07-26"
last_verified: "2026-07-26"
review_cadence_days: 30
status: stable
tags: [reference, infrastructure, containers, security, releases]
Expand All @@ -24,7 +24,8 @@ artifact that reaches a registry.

- the seven Docker build contexts and their `linux/amd64` platform;
- the exact digest-pinned Node base and its human-readable expected version;
- OCI title, description, license, and documentation metadata; and
- OCI title, description, uniform `LicenseRef-Open-BSV-License-6`, and
documentation metadata; and
- the GHCR or GHCR-plus-Marketplace release route for each component.

`scripts/container-supply-chain.test.mjs`, run by `pnpm health:check`, rejects
Expand Down
5 changes: 3 additions & 2 deletions docs/reference/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ id: reference-overview
title: "Reference"
kind: meta
version: "n/a"
last_updated: "2026-07-24"
last_verified: "2026-07-24"
last_updated: "2026-07-26"
last_verified: "2026-07-26"
review_cadence_days: 30
status: stable
tags: [reference, api, index]
Expand All @@ -19,6 +19,7 @@ Quick reference material for API details and protocol indices.
- **[BRC Standards Index](./brc-index.md)** — All BRC standards with links to implementations
- **[Container supply chain](./container-supply-chain.md)** — Immutable images, scanning, SBOMs, signatures, attestations, verification, and rollback
- **[Dependency and release policy](./dependency-policy.md)** — Runtime baseline, supply-chain controls, advisory handling, and release rules
- **[Licensing policy](./licensing.md)** — Uniform Open BSV License Version 6 declarations, package files, and drift controls
- **[July 2026 modernization release](./release-2026-07-25.md)** — Package versions, compatibility notes, and verification scope
- **TypeDoc API docs** — Per-package generated reference (see links below)

Expand Down
82 changes: 82 additions & 0 deletions docs/reference/licensing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
---
id: licensing-policy
title: "Licensing Policy"
kind: reference
version: "1.0.0"
last_updated: "2026-07-26"
last_verified: "2026-07-26"
review_cadence_days: 90
status: stable
tags: [reference, licensing, packages, releases]
---

# Licensing Policy

The entire TypeScript stack uses the Open BSV License Version 6. This applies
uniformly to all npm package projects in the monorepo: public packages, private
applications, infrastructure services, examples, conformance runners,
documentation tooling, and code generators.

The repository-root
[`LICENSE.txt`](https://github.com/bsv-blockchain/ts-stack/blob/main/LICENSE.txt)
is the canonical text. It is an exact copy of the current
[BSV Association license published by Teranode](https://github.com/bsv-blockchain/teranode/blob/main/LICENSE),
with SHA-256
`bac995a0c84dd533f7d5335b6d870aae9fee7d28d189b8aa78b103e0c9932bc0`.

## Package convention

Every directory containing a `package.json` must:

- declare `"license": "SEE LICENSE IN LICENSE.txt"`;
- contain `LICENSE.txt` with bytes identical to the canonical root file;
- include `LICENSE.txt` exactly once when the package uses a `files` allowlist;
- avoid alternate package-level names such as `LICENSE`, `LICENSE.md`, or
`license.md`; and
- repeat the same declaration in the root package entry of a colocated
`package-lock.json`.

Open BSV License is not an SPDX-listed identifier, so npm manifests point to
the bundled license text instead of inventing an SPDX expression. Container
metadata uses the uniform identifier `LicenseRef-Open-BSV-License-6`.

These rules cover first-party project licensing. They do not change the
licenses of third-party dependencies or incorporated third-party material;
their required notices and attribution must remain intact.

## Enforcement

Run:

```sh
pnpm license:check
```

The command discovers every npm manifest in the repository, verifies the
canonical license hash, compares each package-local copy byte-for-byte, checks
manifest and lockfile declarations, and rejects legacy filenames. It is part of
`pnpm health:check`, so CI prevents a new package or later edit from drifting.

Maintainers can repair mechanical drift with:

```sh
pnpm license:sync
```

Review the resulting diff before commit. A change to the canonical license
version or text is a legal-policy change: it requires explicit maintainer
authorization, an updated authoritative source and hash, regenerated package
copies, updated container metadata, and full package-tarball verification.

## Release verification

Before publishing:

1. run `pnpm license:check`;
2. dry-pack every public package with lifecycle scripts disabled;
3. confirm each tarball contains the exact `LICENSE.txt`;
4. run repository health, build, test, audit, and version checks; and
5. publish only through the reviewed OIDC release workflow.

This keeps registry packages, source projects, lockfiles, and deployable image
metadata on the same license version.
Loading
Loading