diff --git a/docs-site/scripts/frontmatter-parser.test.mjs b/docs-site/scripts/frontmatter-parser.test.mjs
new file mode 100644
index 000000000..5f7135566
--- /dev/null
+++ b/docs-site/scripts/frontmatter-parser.test.mjs
@@ -0,0 +1,38 @@
+import assert from 'node:assert/strict'
+import { createRequire } from 'node:module'
+import test from 'node:test'
+
+import mdx from '@mdx-js/rollup'
+import remarkFrontmatter from 'remark-frontmatter'
+import remarkMdxFrontmatter from 'remark-mdx-frontmatter'
+
+const pluginRequire = createRequire(import.meta.resolve('remark-mdx-frontmatter'))
+const toml = pluginRequire('toml')
+
+async function compile(source, options) {
+ const plugin = mdx(options)
+ return (await plugin.transform.call({}, source, 'fixture.mdx')).code
+}
+
+test('patched TOML parser preserves the frontmatter plugin contract', async () => {
+ const result = await compile(
+ '+++\ntitle = "Overlay recovery"\n[review]\nready = true\n+++\n\n# Test',
+ {
+ remarkPlugins: [[remarkFrontmatter, ['yaml', 'toml']], remarkMdxFrontmatter]
+ }
+ )
+ assert.match(String(result), /Overlay recovery/)
+ assert.match(String(result), /"ready": true/)
+ const yaml = await compile('---\ntitle: Overlay recovery\n---\n\n# Test', {
+ remarkPlugins: [remarkFrontmatter, remarkMdxFrontmatter]
+ })
+ assert.match(String(yaml), /Overlay recovery/)
+})
+
+test('patched TOML isolates prototype paths and rejects excessive nesting', () => {
+ const parsed = toml.parse('[__proto__]\npolluted = true')
+ assert.equal(Object.getPrototypeOf(parsed), null)
+ assert.equal(parsed.__proto__.polluted, true)
+ assert.equal(Object.prototype.polluted, undefined)
+ assert.throws(() => toml.parse(`value = ${'['.repeat(1000)}0${']'.repeat(1000)}`))
+})
diff --git a/docs/packages/content/lch.md b/docs/packages/content/lch.md
index b67db7c90..24b9907c9 100644
--- a/docs/packages/content/lch.md
+++ b/docs/packages/content/lch.md
@@ -4,9 +4,9 @@ title: '@bsv/lch'
kind: package
domain: content
npm: '@bsv/lch'
-version: '0.1.0'
-last_updated: '2026-08-30'
-last_verified: '2026-08-30'
+version: '0.1.1'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/content/lch'
status: experimental
@@ -15,6 +15,10 @@ tags: ['content', 'licensing', 'brc-170', 'odrl', 'c2pa', 'chirp', 'uhrp']
# @bsv/lch
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> Browser- and Node-compatible reference implementation of published BRC-170
> Licensed Content Header protocol.
diff --git a/docs/packages/helpers/amountinator.md b/docs/packages/helpers/amountinator.md
index 280a58608..82c455dc4 100644
--- a/docs/packages/helpers/amountinator.md
+++ b/docs/packages/helpers/amountinator.md
@@ -3,10 +3,10 @@ id: pkg-amountinator
title: '@bsv/amountinator'
kind: package
domain: helpers
-version: '2.1.5'
+version: '2.1.6'
source_repo: 'bsv-blockchain/ts-stack'
-last_updated: '2026-08-26'
-last_verified: '2026-08-26'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/amountinator'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/amountinator'
@@ -16,6 +16,10 @@ tags: [helpers, amounts, satoshis]
# @bsv/amountinator
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> Satoshi/BSV/USD and multi-fiat currency conversion with exchange rate caching and wallet settings integration — convert between crypto (SATS, BSV) and 15+ fiat currencies with auto-refresh.
## Install
diff --git a/docs/packages/helpers/did-client.md b/docs/packages/helpers/did-client.md
index 8f32538e9..1bc014524 100644
--- a/docs/packages/helpers/did-client.md
+++ b/docs/packages/helpers/did-client.md
@@ -3,10 +3,10 @@ id: pkg-did-client
title: '@bsv/did-client'
kind: package
domain: helpers
-version: '1.3.1'
+version: '1.3.2'
source_repo: 'bsv-blockchain/ts-stack'
-last_updated: '2026-08-26'
-last_verified: '2026-08-26'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/did-client'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/did-client'
@@ -16,6 +16,10 @@ tags: [did, identity, helpers]
# @bsv/did-client
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> DID (Decentralized Identifier) client for BSV blockchain — creates, revokes, and queries `did:bsv:` tokens stored as PushDrop outputs on-chain, with overlay broadcast and lookup service integration.
## Install
diff --git a/docs/packages/helpers/did.md b/docs/packages/helpers/did.md
index 15518d8b1..11d66cb7f 100644
--- a/docs/packages/helpers/did.md
+++ b/docs/packages/helpers/did.md
@@ -3,10 +3,10 @@ id: pkg-did
title: '@bsv/did'
kind: package
domain: helpers
-version: '0.2.5'
+version: '0.2.6'
source_repo: 'bsv-blockchain/ts-stack'
-last_updated: '2026-08-27'
-last_verified: '2026-08-27'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/did'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/did'
@@ -16,6 +16,10 @@ tags: [did, sd-jwt, credentials, identity, helpers]
# @bsv/did
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> SD-JWT VC and optional `did:key` helpers for BSV SDK identity keys.
## Install
diff --git a/docs/packages/helpers/fund-wallet.md b/docs/packages/helpers/fund-wallet.md
index 2a542630b..745b799bc 100644
--- a/docs/packages/helpers/fund-wallet.md
+++ b/docs/packages/helpers/fund-wallet.md
@@ -3,10 +3,10 @@ id: pkg-fund-wallet
title: '@bsv/fund-wallet'
kind: package
domain: helpers
-version: '1.4.4'
+version: '1.4.5'
source_repo: 'bsv-blockchain/ts-stack'
-last_updated: '2026-08-26'
-last_verified: '2026-08-26'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/fund-wallet'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/fund-wallet'
@@ -16,6 +16,10 @@ tags: [helpers, testing, faucet, development]
# @bsv/fund-wallet
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> Command-line faucet/funding tool for development and testing — funds a remote wallet with satoshis from a local Metanet Desktop wallet via private key derivation.
## Install
diff --git a/docs/packages/helpers/simple.md b/docs/packages/helpers/simple.md
index e3c370923..fabbfe091 100644
--- a/docs/packages/helpers/simple.md
+++ b/docs/packages/helpers/simple.md
@@ -3,10 +3,10 @@ id: pkg-simple
title: '@bsv/simple'
kind: package
domain: helpers
-version: '0.5.2'
+version: '0.5.3'
source_repo: 'bsv-blockchain/ts-stack'
-last_updated: '2026-08-26'
-last_verified: '2026-08-26'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/simple'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/simple'
@@ -16,6 +16,10 @@ tags: [helpers, simple, payments]
# @bsv/simple
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> High-level wallet API for browser and server — manage payments, tokens, inscriptions, DIDs, and credentials without wrestling with private keys or transactions.
## Install
diff --git a/docs/packages/helpers/templates.md b/docs/packages/helpers/templates.md
index 1133ba5c8..49ed7dd7d 100644
--- a/docs/packages/helpers/templates.md
+++ b/docs/packages/helpers/templates.md
@@ -3,10 +3,10 @@ id: pkg-templates
title: '@bsv/templates'
kind: package
domain: helpers
-version: '1.10.1'
+version: '1.10.2'
source_repo: 'bsv-blockchain/ts-stack'
-last_updated: '2026-08-27'
-last_verified: '2026-08-27'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/templates'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/ts-templates'
@@ -16,6 +16,10 @@ tags: [templates, scripts, locking, unlocking]
# @bsv/templates
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> Low-level BSV script templates library — provides reusable locking/unlocking script implementations (OpReturn, MultiPushDrop, P2MSKH) for common and advanced Bitcoin SV patterns without abstracting away control.
## Install
diff --git a/docs/packages/helpers/wallet-helper.md b/docs/packages/helpers/wallet-helper.md
index 8303eeea1..e8390b8d6 100644
--- a/docs/packages/helpers/wallet-helper.md
+++ b/docs/packages/helpers/wallet-helper.md
@@ -3,10 +3,10 @@ id: pkg-wallet-helper
title: '@bsv/wallet-helper'
kind: package
domain: helpers
-version: '0.1.7'
+version: '0.1.8'
source_repo: 'bsv-blockchain/ts-stack'
-last_updated: '2026-08-27'
-last_verified: '2026-08-27'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/wallet-helper'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/bsv-wallet-helper'
@@ -16,6 +16,10 @@ tags: [helpers, wallet, transaction-builder]
# @bsv/wallet-helper
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> Fluent transaction builder and wallet-compatible script templates for BSV — construct multi-output transactions (P2PKH, ordinals, custom) with method chaining, BRC-29 key derivation, and no private key exposure.
`@bsv/wallet-helper` is a good starting point for developers coming from other blockchain ecosystems who expect to build transactions explicitly. It gives you a transaction-builder shape for outputs, scripts, ordinals, metadata, inputs, and explicit change destinations, while still delegating keys and signing to a BRC-100 wallet.
diff --git a/docs/packages/messaging/authsocket-client.md b/docs/packages/messaging/authsocket-client.md
index 589784019..b4930effc 100644
--- a/docs/packages/messaging/authsocket-client.md
+++ b/docs/packages/messaging/authsocket-client.md
@@ -3,10 +3,10 @@ id: pkg-authsocket-client
title: '@bsv/authsocket-client'
kind: package
domain: messaging
-version: '2.1.6'
+version: '2.1.7'
source_repo: 'bsv-blockchain/ts-stack'
-last_updated: '2026-08-26'
-last_verified: '2026-08-26'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/authsocket-client'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/messaging/authsocket-client'
@@ -16,6 +16,10 @@ tags: [messaging, websocket, brc-31, auth]
# @bsv/authsocket-client
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> Client-side BRC-103 mutual authentication wrapper for socket.io-client. Signs all outbound messages and verifies inbound messages using a wallet, enabling authenticated peer-to-peer WebSocket communication.
## Install
diff --git a/docs/packages/messaging/authsocket.md b/docs/packages/messaging/authsocket.md
index 24a21bfa4..b6f1f1f91 100644
--- a/docs/packages/messaging/authsocket.md
+++ b/docs/packages/messaging/authsocket.md
@@ -3,10 +3,10 @@ id: pkg-authsocket
title: '@bsv/authsocket'
kind: package
domain: messaging
-version: '2.1.7'
+version: '2.1.8'
source_repo: 'bsv-blockchain/ts-stack'
-last_updated: '2026-08-27'
-last_verified: '2026-08-27'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/authsocket'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/messaging/authsocket'
@@ -16,6 +16,10 @@ tags: [messaging, websocket, brc-31, auth]
# @bsv/authsocket
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> Server-side BRC-103 mutual authentication wrapper for Socket.IO. Enforces cryptographic signing and verification on all WebSocket messages, enabling peer-to-peer identity verification and certificate exchange.
## Install
diff --git a/docs/packages/messaging/message-box-client.md b/docs/packages/messaging/message-box-client.md
index 592e07c9c..0c869572e 100644
--- a/docs/packages/messaging/message-box-client.md
+++ b/docs/packages/messaging/message-box-client.md
@@ -3,10 +3,10 @@ id: pkg-message-box-client
title: '@bsv/message-box-client'
kind: package
domain: messaging
-version: '2.4.2'
+version: '2.4.3'
source_repo: 'bsv-blockchain/ts-stack'
-last_updated: '2026-08-26'
-last_verified: '2026-08-26'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/message-box-client'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/messaging/message-box-client'
@@ -16,6 +16,10 @@ tags: [messaging, message-box, brc-103, brc-29]
# @bsv/message-box-client
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> Browser- and Node-compatible authenticated store-and-forward messaging,
> live WebSockets, peer payments, token settlement, permissions, quotes, and
> push-device registration.
diff --git a/docs/packages/messaging/paymail.md b/docs/packages/messaging/paymail.md
index d7b75d1c6..b94875a16 100644
--- a/docs/packages/messaging/paymail.md
+++ b/docs/packages/messaging/paymail.md
@@ -3,10 +3,10 @@ id: pkg-paymail
title: '@bsv/paymail'
kind: package
domain: messaging
-version: '2.4.7'
+version: '2.4.8'
source_repo: 'bsv-blockchain/ts-stack'
-last_updated: '2026-08-27'
-last_verified: '2026-08-27'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/paymail'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/messaging/ts-paymail'
@@ -16,6 +16,10 @@ tags: [paymail, messaging, brc-29, identity]
# @bsv/paymail
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> TypeScript SDK for BSV Paymail (BRC-121 capability discovery and routing). Provides both client-side capability discovery and server-side router with built-in support for PKI, P2P destinations, and public profiles.
## Install
diff --git a/docs/packages/middleware/402-pay.md b/docs/packages/middleware/402-pay.md
index 9131ffffd..72d7e5ec6 100644
--- a/docs/packages/middleware/402-pay.md
+++ b/docs/packages/middleware/402-pay.md
@@ -3,10 +3,10 @@ id: pkg-402-pay
title: '@bsv/402-pay'
kind: package
domain: middleware
-version: '0.2.5'
+version: '0.2.6'
source_repo: 'bsv-blockchain/ts-stack'
-last_updated: '2026-08-27'
-last_verified: '2026-08-27'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/402-pay'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/402-pay'
@@ -16,6 +16,10 @@ tags: [middleware, payment, '402', client]
# @bsv/402-pay
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> BRC-121 HTTP 402 Payment Required handler for client and server. Client-side: auto-pays 402 responses. Server-side: middleware/validation for accepting BSV micropayments over HTTP.
## Install
diff --git a/docs/packages/middleware/auth-express-middleware.md b/docs/packages/middleware/auth-express-middleware.md
index 60aab1dbe..d6e8312c0 100644
--- a/docs/packages/middleware/auth-express-middleware.md
+++ b/docs/packages/middleware/auth-express-middleware.md
@@ -3,10 +3,10 @@ id: pkg-auth-express-middleware
title: '@bsv/auth-express-middleware'
kind: package
domain: middleware
-version: '2.2.3'
+version: '2.2.4'
source_repo: 'bsv-blockchain/ts-stack'
-last_updated: '2026-08-27'
-last_verified: '2026-08-27'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/auth-express-middleware'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/auth-express-middleware'
@@ -16,6 +16,10 @@ tags: [middleware, express, auth, brc-103, brc-104]
# @bsv/auth-express-middleware
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
Express transport for BRC-103 peer-to-peer mutual authentication over
BRC-104 HTTP. It handles the public handshake, verifies authenticated
application requests, signs responses, and optionally exchanges verifiable
diff --git a/docs/packages/middleware/auth.md b/docs/packages/middleware/auth.md
index f596fe7af..3ad4d1868 100644
--- a/docs/packages/middleware/auth.md
+++ b/docs/packages/middleware/auth.md
@@ -3,9 +3,9 @@ id: pkg-auth
title: '@bsv/auth'
kind: package
domain: middleware
-version: '0.1.4'
-last_updated: '2026-08-27'
-last_verified: '2026-08-27'
+version: '0.1.5'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/auth'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/auth'
@@ -15,6 +15,10 @@ tags: [middleware, authentication, wallet, replay]
# @bsv/auth
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
`@bsv/auth` provides framework-neutral, expiry-bound, single-use wallet
authentication proofs. It separates proof creation and verification from HTTP,
Express, and database choices.
diff --git a/docs/packages/middleware/payment-express-middleware.md b/docs/packages/middleware/payment-express-middleware.md
index 6ec6caffd..4a98e3c03 100644
--- a/docs/packages/middleware/payment-express-middleware.md
+++ b/docs/packages/middleware/payment-express-middleware.md
@@ -3,10 +3,10 @@ id: pkg-payment-express-middleware
title: '@bsv/payment-express-middleware'
kind: package
domain: middleware
-version: '2.1.6'
+version: '2.1.7'
source_repo: 'bsv-blockchain/ts-stack'
-last_updated: '2026-08-27'
-last_verified: '2026-08-27'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/payment-express-middleware'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/payment-express-middleware'
@@ -16,6 +16,10 @@ tags: [middleware, express, payment, '402', brc-29]
# @bsv/payment-express-middleware
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
Express middleware for the legacy authenticated `x-bsv-payment` JSON flow. It
runs after `@bsv/auth-express-middleware`, validates an Atomic BEEF payment,
atomically rejects transaction-ID reuse, internalizes output zero, and exposes
diff --git a/docs/packages/network/chirp.md b/docs/packages/network/chirp.md
index 5f34b63a7..aea51c1a4 100644
--- a/docs/packages/network/chirp.md
+++ b/docs/packages/network/chirp.md
@@ -4,9 +4,9 @@ title: '@bsv/chirp'
kind: package
domain: network
npm: '@bsv/chirp'
-version: '0.1.1'
-last_updated: '2026-08-28'
-last_verified: '2026-08-28'
+version: '0.1.2'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/network/chirp'
status: experimental
@@ -15,6 +15,10 @@ tags: ['network', 'storage', 'uhrp', 'merkle', 'brc-167']
# @bsv/chirp
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> Browser- and Node-compatible BRC-167 reference implementation for progressively publishing and resiliently resolving large UHRP-addressed byte streams.
## Install
diff --git a/docs/packages/network/teranode-listener.md b/docs/packages/network/teranode-listener.md
index dceff24c7..c9719a24a 100644
--- a/docs/packages/network/teranode-listener.md
+++ b/docs/packages/network/teranode-listener.md
@@ -4,9 +4,9 @@ title: '@bsv/teranode-listener'
kind: package
domain: network
npm: '@bsv/teranode-listener'
-version: '1.1.5'
-last_updated: '2026-08-26'
-last_verified: '2026-08-26'
+version: '1.1.6'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/network/ts-p2p'
status: stable
@@ -15,6 +15,10 @@ tags: ['network', 'broadcast', 'teranode', 'p2p', 'libp2p']
# @bsv/teranode-listener
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> TypeScript library for subscribing to Teranode P2P topics (blocks, subtrees, mining updates) via libp2p private DHT network.
## Install
diff --git a/docs/packages/overlays/gasp.md b/docs/packages/overlays/gasp.md
index 3c3feba5c..0c7b2c7a5 100644
--- a/docs/packages/overlays/gasp.md
+++ b/docs/packages/overlays/gasp.md
@@ -3,10 +3,10 @@ id: pkg-gasp
title: '@bsv/gasp'
kind: package
domain: overlays
-version: '1.3.6'
+version: '1.3.7'
source_repo: 'bsv-blockchain/ts-stack'
-last_updated: '2026-08-27'
-last_verified: '2026-08-27'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/gasp'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/gasp-core'
@@ -16,6 +16,10 @@ tags: [overlay, sync, gasp, graph]
# @bsv/gasp
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> Graph Aware Sync Protocol — synchronize transaction graphs between overlay nodes with incremental building, SPV validation, and bandwidth efficiency.
## Install
diff --git a/docs/packages/overlays/overlay-discovery-services.md b/docs/packages/overlays/overlay-discovery-services.md
index 8400631f9..72be01234 100644
--- a/docs/packages/overlays/overlay-discovery-services.md
+++ b/docs/packages/overlays/overlay-discovery-services.md
@@ -4,9 +4,9 @@ title: '@bsv/overlay-discovery-services'
kind: package
domain: overlays
npm: '@bsv/overlay-discovery-services'
-version: '2.2.1'
-last_updated: '2026-08-27'
-last_verified: '2026-08-27'
+version: '2.2.2'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/overlay-discovery-services'
status: stable
@@ -15,6 +15,10 @@ tags: ['overlay', 'discovery']
# @bsv/overlay-discovery-services
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> Implements SHIP and SLAP protocols for peer discovery and service advertisement in overlay networks.
## Install
diff --git a/docs/packages/overlays/overlay-express.md b/docs/packages/overlays/overlay-express.md
index 2c4880412..e25b32cae 100644
--- a/docs/packages/overlays/overlay-express.md
+++ b/docs/packages/overlays/overlay-express.md
@@ -4,9 +4,9 @@ title: '@bsv/overlay-express'
kind: package
domain: overlays
npm: '@bsv/overlay-express'
-version: '2.6.1'
-last_updated: '2026-08-27'
-last_verified: '2026-08-27'
+version: '2.6.2'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/overlay-express'
status: stable
@@ -15,6 +15,10 @@ tags: ['overlay', 'express', 'http']
# @bsv/overlay-express
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> Opinionated Express.js HTTP server wrapper for @bsv/overlay with built-in configuration, health checks, and peer discovery.
## Install
diff --git a/docs/packages/overlays/overlay-topics.md b/docs/packages/overlays/overlay-topics.md
index 691a86814..803065dbc 100644
--- a/docs/packages/overlays/overlay-topics.md
+++ b/docs/packages/overlays/overlay-topics.md
@@ -4,9 +4,9 @@ title: '@bsv/overlay-topics'
kind: package
domain: overlays
npm: '@bsv/overlay-topics'
-version: '1.7.1'
-last_updated: '2026-08-27'
-last_verified: '2026-08-27'
+version: '1.7.2'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/topics'
status: stable
@@ -15,6 +15,10 @@ tags: ['overlay', 'topics', 'uhrp']
# @bsv/overlay-topics
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> Canonical collection of pre-built BSV overlay topic managers and lookup services for identity, tokens, supply chain, messaging, and more.
## Install
diff --git a/docs/packages/overlays/overlay.md b/docs/packages/overlays/overlay.md
index 2a4492822..d8042a9c9 100644
--- a/docs/packages/overlays/overlay.md
+++ b/docs/packages/overlays/overlay.md
@@ -4,9 +4,9 @@ title: '@bsv/overlay'
kind: package
domain: overlays
npm: '@bsv/overlay'
-version: '2.3.1'
-last_updated: '2026-08-27'
-last_verified: '2026-08-27'
+version: '2.3.2'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/overlay'
status: stable
@@ -15,6 +15,10 @@ tags: ['overlay', 'framework']
# @bsv/overlay
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
> Core library defining the Overlay Services Engine for UTXO-based systems on BSV.
## Install
diff --git a/docs/packages/sdk/bsv-sdk.md b/docs/packages/sdk/bsv-sdk.md
index 14ef20ca4..ba94c694f 100644
--- a/docs/packages/sdk/bsv-sdk.md
+++ b/docs/packages/sdk/bsv-sdk.md
@@ -3,7 +3,7 @@ id: bsv-sdk
title: '@bsv/sdk'
kind: package
domain: sdk
-version: '2.4.2'
+version: '3.0.0'
npm: '@bsv/sdk'
last_updated: '2026-08-26'
last_verified: '2026-08-26'
diff --git a/docs/packages/sdk/verifast.md b/docs/packages/sdk/verifast.md
index ed959f6b9..fcced58e5 100644
--- a/docs/packages/sdk/verifast.md
+++ b/docs/packages/sdk/verifast.md
@@ -3,9 +3,9 @@ id: pkg-verifast
title: '@bsv/verifast'
kind: package
domain: sdk
-version: '0.3.5'
-last_updated: '2026-08-26'
-last_verified: '2026-08-26'
+version: '0.3.6'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/verifast'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/verifast'
@@ -15,6 +15,10 @@ tags: [sdk, verification, wasm, browser, worker]
# @bsv/verifast
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
`@bsv/verifast` is the optional BSV BDK WebAssembly verification backend for
`@bsv/sdk`. It supports Node ESM and CommonJS, browser and worker ESM, and a
classic-script/UMD integration.
diff --git a/docs/packages/wallet/btms-permission-module.md b/docs/packages/wallet/btms-permission-module.md
index b514ec7b5..c38fe10b8 100644
--- a/docs/packages/wallet/btms-permission-module.md
+++ b/docs/packages/wallet/btms-permission-module.md
@@ -4,9 +4,9 @@ title: '@bsv/btms-permission-module'
kind: package
domain: wallet
npm: '@bsv/btms-permission-module'
-version: '1.1.4'
-last_updated: '2026-08-27'
-last_verified: '2026-08-27'
+version: '1.1.5'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
status: stable
tags: ['tokens', 'permissions']
@@ -15,6 +15,10 @@ repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/btms
# @bsv/btms-permission-module
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
The core permission module for BTMS token operations. Framework-agnostic with no UI dependencies.
BSV Desktop and BSV Browser show a spend authorization modal whenever BSV is spent. For a BTMS token output the raw satoshi value is typically 1 sat — not the token's actual denomination. This module gives the wallet enough context to show the correct value to the user and gate authorization appropriately. A USD stablecoin issuer, for example, ships a module that causes the modal to display "$1.00 USD" rather than "1 satoshi."
diff --git a/docs/packages/wallet/btms.md b/docs/packages/wallet/btms.md
index ffa812020..7f5f55c65 100644
--- a/docs/packages/wallet/btms.md
+++ b/docs/packages/wallet/btms.md
@@ -4,9 +4,9 @@ title: '@bsv/btms'
kind: package
domain: wallet
npm: '@bsv/btms'
-version: '1.2.2'
-last_updated: '2026-08-27'
-last_verified: '2026-08-27'
+version: '1.2.3'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
status: stable
tags: ['tokens', 'protocol']
@@ -15,6 +15,10 @@ repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/btms
# @bsv/btms
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
BTMS — Basic Token Management System — is a modular library for issuing, sending, receiving, and burning UTXO-based tokens on the BSV blockchain.
## The wallet context
diff --git a/docs/packages/wallet/ecpm-permission-module.md b/docs/packages/wallet/ecpm-permission-module.md
index 9eca197c7..fc3bd4b0c 100644
--- a/docs/packages/wallet/ecpm-permission-module.md
+++ b/docs/packages/wallet/ecpm-permission-module.md
@@ -4,9 +4,9 @@ title: '@bsv/ecpm-permission-module'
kind: package
domain: wallet
npm: '@bsv/ecpm-permission-module'
-version: '0.1.0'
-last_updated: '2026-08-30'
-last_verified: '2026-08-30'
+version: '0.1.1'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
status: experimental
tags: ['permissions', 'brc98', 'ecpm', 'cryptography']
@@ -15,6 +15,10 @@ repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/ecpm
# @bsv/ecpm-permission-module
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
`@bsv/ecpm-permission-module` is the reference `p ecpm` semantic module for
BRC-100 wallet hosts. It applies or removes a wallet-derived scalar from an
arbitrary validated secp256k1 point while retaining the standard
diff --git a/docs/packages/wallet/wallet-relay.md b/docs/packages/wallet/wallet-relay.md
index 10e03d9e6..b521e7164 100644
--- a/docs/packages/wallet/wallet-relay.md
+++ b/docs/packages/wallet/wallet-relay.md
@@ -4,9 +4,9 @@ title: '@bsv/wallet-relay'
kind: package
domain: wallet
npm: '@bsv/wallet-relay'
-version: '0.3.6'
-last_updated: '2026-08-27'
-last_verified: '2026-08-27'
+version: '0.3.7'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
status: stable
tags: ['wallet', 'relay']
@@ -15,6 +15,10 @@ repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/ts-w
# @bsv/wallet-relay
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
Enables mobile-to-desktop wallet pairing via QR codes and encrypted WebSocket tunnels. A web app (desktop browser) shows a QR code; user scans with their mobile BSV wallet; all wallet operations (signing, key retrieval, etc.) are proxied over HTTPS+WSS relay servers to the mobile without exposing keys or trust chains to the desktop. Provides both the relay server infrastructure (Node.js) and React frontend components for web apps to add "Connect Mobile Wallet" functionality.
## Install
diff --git a/docs/packages/wallet/wallet-toolbox-client.md b/docs/packages/wallet/wallet-toolbox-client.md
index d5496eb82..d7a1358a7 100644
--- a/docs/packages/wallet/wallet-toolbox-client.md
+++ b/docs/packages/wallet/wallet-toolbox-client.md
@@ -3,9 +3,9 @@ id: pkg-wallet-toolbox-client
title: '@bsv/wallet-toolbox-client'
kind: package
domain: wallet
-version: '2.11.0'
-last_updated: '2026-08-31'
-last_verified: '2026-08-31'
+version: '2.11.1'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/wallet-toolbox-client'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/wallet-toolbox/client'
@@ -15,6 +15,10 @@ tags: [wallet, browser, indexeddb, storage, brc-100]
# @bsv/wallet-toolbox-client
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
`@bsv/wallet-toolbox-client` is the browser-safe Wallet Toolbox distribution.
It includes the BRC-100 wallet, signer, services, IndexedDB storage, and remote
storage client without Node-only Knex, SQLite, MySQL, or filesystem adapters.
diff --git a/docs/packages/wallet/wallet-toolbox-mobile.md b/docs/packages/wallet/wallet-toolbox-mobile.md
index beb53276c..0fed88e06 100644
--- a/docs/packages/wallet/wallet-toolbox-mobile.md
+++ b/docs/packages/wallet/wallet-toolbox-mobile.md
@@ -3,9 +3,9 @@ id: pkg-wallet-toolbox-mobile
title: '@bsv/wallet-toolbox-mobile'
kind: package
domain: wallet
-version: '2.11.0'
-last_updated: '2026-08-31'
-last_verified: '2026-08-31'
+version: '2.11.1'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
npm: 'https://www.npmjs.com/package/@bsv/wallet-toolbox-mobile'
repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/wallet-toolbox/mobile'
@@ -15,6 +15,10 @@ tags: [wallet, react-native, mobile, storage, brc-100]
# @bsv/wallet-toolbox-mobile
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
`@bsv/wallet-toolbox-mobile` is the React Native and mobile-safe Wallet
Toolbox distribution. It includes wallet, signer, services, monitoring, and
remote storage surfaces without Knex, SQLite/MySQL, IndexedDB, or Node-only IO.
diff --git a/docs/packages/wallet/wallet-toolbox.md b/docs/packages/wallet/wallet-toolbox.md
index 5f5487c55..a570ce092 100644
--- a/docs/packages/wallet/wallet-toolbox.md
+++ b/docs/packages/wallet/wallet-toolbox.md
@@ -4,9 +4,9 @@ title: '@bsv/wallet-toolbox'
kind: package
domain: wallet
npm: '@bsv/wallet-toolbox'
-version: '2.11.0'
-last_updated: '2026-08-31'
-last_verified: '2026-08-31'
+version: '2.11.1'
+last_updated: '2026-09-04'
+last_verified: '2026-09-04'
review_cadence_days: 30
status: stable
tags: ['wallet', 'brc100']
@@ -15,6 +15,10 @@ repo: 'https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/wall
# @bsv/wallet-toolbox
+This version accepts SDK 3 alongside its existing SDK 2 peer range. Follow the
+[SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+when upgrading the application SDK.
+
`@bsv/wallet-toolbox` is the reference toolkit for building BRC-100 wallets. It connects `@bsv/sdk` primitives to wallet storage, key derivation, signing, services, monitoring, permissions, and authentication flows.
Use this package when you are building a wallet product, a wallet-like service, or another implementation that must match BRC-100 behavior.
diff --git a/docs/reference/package-api-migrations.md b/docs/reference/package-api-migrations.md
index cb311e595..86c115ee8 100644
--- a/docs/reference/package-api-migrations.md
+++ b/docs/reference/package-api-migrations.md
@@ -23,42 +23,42 @@ and clean-consumer tests remain the executable type authority.
## Current release boundary
-| Package | npm baseline | Source | Candidate | API | Migration |
-| --------------------------------- | ------------ | -------- | --------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `@bsv/402-pay` | `0.2.1` | `0.2.5` | patch | [API and usage](../packages/middleware/402-pay.md) | No consumer migration is required; client and server exports, payment protocol behavior, and runtime defaults are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. |
-| `@bsv/air-gap` | `0.0.0` | `0.1.2` | minor | [API and usage](../packages/helpers/air-gap.md) | No consumer migration is required; this is the first published release of a new package with no prior public API. The experimental pre-release framing that circulated on the unmerged feature branch is not accepted by the v1 decoder. |
-| `@bsv/amountinator` | `2.1.1` | `2.1.5` | patch | [API and usage](../packages/helpers/amountinator.md) | No consumer migration is required; this is a backward-compatible patch candidate. |
-| `@bsv/auth` | `0.1.1` | `0.1.4` | patch | [API and usage](../packages/middleware/auth.md) | No consumer migration is required; authentication APIs, wire behavior, and runtime defaults are unchanged. |
-| `@bsv/auth-express-middleware` | `2.2.0` | `2.2.3` | patch | [API and usage](../packages/middleware/auth-express-middleware.md) | No API migration is required. Upgrade to @bsv/sdk 2.4.1 or later for the shared byte-boundary contract. Generic signed application-body canonicalization remains unchanged so old and new peers verify identical bytes. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. |
-| `@bsv/authsocket` | `2.1.1` | `2.1.7` | patch | [API and usage](../packages/messaging/authsocket.md) | No API migration is required. Existing event data, including numeric-key objects under byte-like names, is unchanged; typed payment protocols recover historical byte objects at their explicit fields. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. |
-| `@bsv/authsocket-client` | `2.1.1` | `2.1.6` | patch | [API and usage](../packages/messaging/authsocket-client.md) | No API migration is required. Existing event data, including numeric-key objects under byte-like names, is unchanged; typed payment protocols recover historical byte objects at their explicit fields. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it. |
-| `@bsv/btms` | `1.1.1` | `1.2.2` | minor | [API and usage](../packages/wallet/btms.md) | Existing local, mainnet, testnet, and number-array behavior is unchanged. TTN consumers select networkPreset teratestnet; all consumers should upgrade to @bsv/sdk 2.4.1 or later for byte-boundary compatibility. |
-| `@bsv/btms-permission-module` | `1.1.1` | `1.1.4` | patch | [API and usage](../packages/wallet/btms-permission-module.md) | No consumer migration is required; permission-module APIs and token semantics are unchanged. |
-| `@bsv/chirp` | `0.0.0` | `0.1.1` | minor | [API and usage](../packages/network/chirp.md) | No consumer migration is required; this is the first release of a new additive package. Existing @bsv/sdk StorageUploader, StorageDownloader, StorageUtils, UHRP identifiers, overlays, and server routes remain unchanged. BRC-167 remains authoritative if the implementation and standard differ. |
-| `@bsv/did` | `0.2.1` | `0.2.5` | patch | [API and usage](../packages/helpers/did.md) | No consumer migration is required; DID APIs, encodings, credential behavior, and supported import forms are unchanged. |
-| `@bsv/did-client` | `1.2.1` | `1.3.1` | minor | [API and usage](../packages/helpers/did-client.md) | Existing local, mainnet, and testnet behavior is unchanged. TTN consumers select networkPreset teratestnet and use @bsv/sdk 2.4 or later. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it. |
-| `@bsv/ecpm-permission-module` | `0.0.0` | `0.1.0` | minor | [API and usage](../packages/wallet/ecpm-permission-module.md) | No existing consumer migration is required; this is the first release. Wallet hosts register the module under the ecpm scheme and supply their ordinary key deriver, authorization handler, and optional privileged key provider. |
-| `@bsv/fund-wallet` | `1.4.1` | `1.4.4` | patch | [API and usage](../packages/helpers/fund-wallet.md) | No consumer migration is required; wallet funding APIs and transaction behavior are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. |
-| `@bsv/gasp` | `1.3.1` | `1.3.6` | patch | [API and usage](../packages/overlays/gasp.md) | No consumer migration is required; existing constructor calls, imports, synchronization behavior, and wire semantics are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. |
-| `@bsv/lch` | `0.0.0` | `0.1.0` | minor | [API and usage](../packages/content/lch.md) | No consumer migration is required; this is the first release of a new additive package. Applications must give quote() the verified Asset encryption descriptor and selected Offer key-delivery mechanism, keep createPayment behind explicit wallet authorization, persist the funded transaction and every partial settlement proof through recovery, retry with that same transaction, distinguish finalized from accepted evidence, fail closed on unknown settlement or evidence profiles, and supply an address-pinning connector for DNS endpoints. Payees should select receipt-complete unless they explicitly accept authorized-output provider, privacy, and pre-internalization key-release tradeoffs. Distributors must retain THIRD_PARTY_NOTICES.md with the package; the new profile adds no dependency. Published BRC-170 remains authoritative if the implementation and standard differ. |
-| `@bsv/message-box-client` | `2.4.0` | `2.4.2` | patch | [API and usage](../packages/messaging/message-box-client.md) | No API migration is required. Upgrade @bsv/sdk and @bsv/message-box-client together; historical number-array wallets, current Uint8Array substrates, and already-pending numeric-key messages interoperate through the same portable transaction form. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it. |
-| `@bsv/overlay` | `2.2.1` | `2.3.1` | minor | [API and usage](../packages/overlays/overlay.md) | Existing Engine and TopicManager implementations remain valid. Lookup results default to 1,000 formulas; pass -1 only when an equivalent deployment bound exists. Topic managers whose validation creates provisional external state should implement abortAdmissibleOutputs, while read-only managers require no change. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. |
-| `@bsv/overlay-discovery-services` | `2.1.1` | `2.2.1` | minor | [API and usage](../packages/overlays/overlay-discovery-services.md) | Existing mainnet and testnet advertisers are unchanged. TTN operators pass chain ttn and provision the staging storage and overlay endpoints before advertising. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. |
-| `@bsv/overlay-express` | `2.5.0` | `2.6.1` | minor | [API and usage](../packages/overlays/overlay-express.md) | Existing mainnet and testnet servers are unchanged. TTN servers call configureNetwork('ttn'), configureArcade with the TTN endpoint, and configureChaintracks or configureChainTracker before engine initialization. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. |
-| `@bsv/overlay-topics` | `1.6.10` | `1.7.1` | minor | [API and usage](../packages/overlays/overlay-topics.md) | Existing topic and lookup identifiers remain unchanged. Production UMP overlays must give UMPTopicManager and the UMP lookup service Mongo-backed stores that use the same database, then roll out before updated wallet clients; the no-argument manager is bounded but intended only for isolated single-process use. The reservation and bootstrap-marker collections are additive and initialize from currently indexed UMP UTXOs; take a MongoDB backup before rollout. Legacy ambiguous rows remain visible and can be resolved with WAB pinning rather than deleted. |
-| `@bsv/paymail` | `2.4.2` | `2.4.7` | patch | [API and usage](../packages/messaging/paymail.md) | Existing Paymail client APIs and protocol semantics are retained. Consumers provide one Express 4.18 or 5 runtime and matching type graph; browser bundles continue to exclude the server router implementation. Consumers of the former bundled Money Button or Tokenized specification documents must follow the authoritative links in docs/specs/README.md. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. |
-| `@bsv/payment-express-middleware` | `2.1.1` | `2.1.6` | patch | [API and usage](../packages/middleware/payment-express-middleware.md) | No consumer migration is required; legacy x-bsv-payment JSON behavior remains supported, and Express 4 and 5 applications use their own peer-provided Express installation. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. |
-| `@bsv/sdk` | `2.4.0` | `2.4.2` | patch | [API and usage](../packages/sdk/bsv-sdk.md) | No API migration is required. Historical number-array fast paths and React Native behavior remain compatible. Documentation users should load docs/swagger/swagger.yaml into their preferred viewer instead of using the removed static Swagger UI scaffold. Distributors must keep THIRD_PARTY_NOTICES.md and LICENSES/ with source and browser bundles. |
-| `@bsv/simple` | `0.4.1` | `0.5.2` | minor | [API and usage](../packages/helpers/simple.md) | Existing overlay configurations and number-array behavior are unchanged. TTN consumers select network teratestnet; all consumers should upgrade to @bsv/sdk 2.4.2 or later. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/. |
-| `@bsv/templates` | `1.9.1` | `1.10.1` | minor | [API and usage](../packages/helpers/templates.md) | No existing consumer migration is required; existing template APIs and generated scripts are unchanged. New R1K1Wallet consumers await lock(), retain each private 32-byte salt, and provide a PIV signer that signs the supplied digest directly without hashing it again. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. |
-| `@bsv/teranode-listener` | `1.1.1` | `1.1.5` | patch | [API and usage](../packages/network/teranode-listener.md) | No consumer migration is required; listener APIs, topics, and network configuration are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. |
-| `@bsv/verifast` | `0.3.0` | `0.3.5` | patch | [API and usage](../packages/sdk/verifast.md) | No consumer migration is required; exports, verification behavior, worker protocols, package paths, and runtime defaults are unchanged. Keep THIRD_PARTY_NOTICES.md and LICENSES/ with every JavaScript and WebAssembly distribution. |
-| `@bsv/wallet-helper` | `0.1.1` | `0.1.7` | patch | [API and usage](../packages/helpers/wallet-helper.md) | No consumer migration is required; fluent builder APIs and transaction semantics are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. |
-| `@bsv/wallet-relay` | `0.2.2` | `0.3.6` | minor | [API and usage](../packages/wallet/wallet-relay.md) | No wallet RPC migration is required; upgrade to @bsv/sdk 2.4.1 or later. Existing relay sessions and number arrays remain valid, and host applications continue to provide their matching Express runtime and type graph. |
-| `@bsv/wallet-toolbox` | `2.10.4` | `2.11.0` | minor | [API and usage](../packages/wallet/wallet-toolbox.md) | Existing actions, ordinary noSend calls, and permission modules require no migration. To use BRC-177, migrate every active Knex store before serving requests and run the default Wallet Toolbox monitor; IndexedDB upgrades automatically to schema version 5. Upgrade signer, active storage service, and remote monitor together to 2.11.0 or later; older remote storage is rejected before prefunding. The Knex migration also adds rebuildable prepared-BEEF and proof-epoch tables with every COOK control disabled. Validate the migration on MySQL before release and the cross-process epoch fence on non-production PXC before enabling writes. Roll out writes before reads, use backfill only after database review, and disable all three flags to roll back. Delete derived prepared rows before downgrading to code that cannot advance the epoch. Semantic modules may add handleRequest; hosts installing @bsv/ecpm-permission-module register it under the ecpm scheme. Canonical AtomicBEEF and number-array behavior are unchanged; use @bsv/sdk 2.4.2 or later, use docs/storage.md instead of the removed JSight export, and retain THIRD_PARTY_NOTICES.md and LICENSES/. |
-| `@bsv/wallet-toolbox-client` | `2.10.4` | `2.11.0` | minor | [API and usage](../packages/wallet/wallet-toolbox-client.md) | Existing browser actions and permission modules require no migration; IndexedDB upgrades automatically. To use BRC-177 with remote storage, upgrade the active storage service and its default monitor to Wallet Toolbox 2.11.0 or later before upgrading clients; an older server is rejected before prefunding. Prepared BEEF persistence and rollout controls apply only to the full package's Knex provider, so IndexedDB and remote clients require no COOK configuration. Semantic modules may add handleRequest; installing @bsv/ecpm-permission-module requires registration under the ecpm scheme. Browser exports, wire types, canonical AtomicBEEF behavior, and pagination contracts are unchanged; use @bsv/sdk 2.4.2 or later and retain THIRD_PARTY_NOTICES.md and LICENSES/. |
-| `@bsv/wallet-toolbox-mobile` | `2.10.4` | `2.11.0` | minor | [API and usage](../packages/wallet/wallet-toolbox-mobile.md) | Existing mobile actions and permission modules require no migration. To use BRC-177, migrate and upgrade the active remote storage service and its default monitor to Wallet Toolbox 2.11.0 or later before upgrading clients; an older server is rejected before prefunding. Prepared BEEF persistence and rollout controls apply only to the full package's Knex provider, so mobile remote clients require no COOK configuration. Semantic modules may add handleRequest without changing the Wallet interface. React Native exports, wire types, and canonical AtomicBEEF behavior are unchanged; use @bsv/sdk 2.4.2 or later and retain THIRD_PARTY_NOTICES.md and LICENSES/. |
-| `create-bsv-app` | `1.0.2` | `1.1.1` | minor | [API and usage](../packages/helpers/create-bsv-app.md) | Existing mainnet and testnet scaffolds are unchanged. New TTN projects pass --network ttn or select TerraTestNet in the configurator. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. |
+| Package | npm baseline | Source | Candidate | API | Migration |
+| --------------------------------- | ------------ | -------- | --------- | --------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `@bsv/402-pay` | `0.2.1` | `0.2.6` | patch | [API and usage](../packages/middleware/402-pay.md) | No consumer migration is required; client and server exports, payment protocol behavior, and runtime defaults are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/air-gap` | `0.0.0` | `0.1.2` | minor | [API and usage](../packages/helpers/air-gap.md) | No consumer migration is required; this is the first published release of a new package with no prior public API. The experimental pre-release framing that circulated on the unmerged feature branch is not accepted by the v1 decoder. |
+| `@bsv/amountinator` | `2.1.1` | `2.1.6` | patch | [API and usage](../packages/helpers/amountinator.md) | No consumer migration is required; this is a backward-compatible patch candidate. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/auth` | `0.1.1` | `0.1.5` | patch | [API and usage](../packages/middleware/auth.md) | No consumer migration is required; authentication APIs, wire behavior, and runtime defaults are unchanged. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/auth-express-middleware` | `2.2.0` | `2.2.4` | patch | [API and usage](../packages/middleware/auth-express-middleware.md) | No API migration is required. Upgrade to @bsv/sdk 2.4.1 or later for the shared byte-boundary contract. Generic signed application-body canonicalization remains unchanged so old and new peers verify identical bytes. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/authsocket` | `2.1.1` | `2.1.8` | patch | [API and usage](../packages/messaging/authsocket.md) | No API migration is required. Existing event data, including numeric-key objects under byte-like names, is unchanged; typed payment protocols recover historical byte objects at their explicit fields. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/authsocket-client` | `2.1.1` | `2.1.7` | patch | [API and usage](../packages/messaging/authsocket-client.md) | No API migration is required. Existing event data, including numeric-key objects under byte-like names, is unchanged; typed payment protocols recover historical byte objects at their explicit fields. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/btms` | `1.1.1` | `1.2.3` | minor | [API and usage](../packages/wallet/btms.md) | Existing local, mainnet, testnet, and number-array behavior is unchanged. TTN consumers select networkPreset teratestnet; all consumers should upgrade to @bsv/sdk 2.4.1 or later for byte-boundary compatibility. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/btms-permission-module` | `1.1.1` | `1.1.5` | patch | [API and usage](../packages/wallet/btms-permission-module.md) | No consumer migration is required; permission-module APIs and token semantics are unchanged. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/chirp` | `0.0.0` | `0.1.2` | minor | [API and usage](../packages/network/chirp.md) | No consumer migration is required; this is the first release of a new additive package. Existing @bsv/sdk StorageUploader, StorageDownloader, StorageUtils, UHRP identifiers, overlays, and server routes remain unchanged. BRC-167 remains authoritative if the implementation and standard differ. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/did` | `0.2.1` | `0.2.6` | patch | [API and usage](../packages/helpers/did.md) | No consumer migration is required; DID APIs, encodings, credential behavior, and supported import forms are unchanged. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/did-client` | `1.2.1` | `1.3.2` | minor | [API and usage](../packages/helpers/did-client.md) | Existing local, mainnet, and testnet behavior is unchanged. TTN consumers select networkPreset teratestnet and use @bsv/sdk 2.4 or later. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/ecpm-permission-module` | `0.0.0` | `0.1.1` | minor | [API and usage](../packages/wallet/ecpm-permission-module.md) | No existing consumer migration is required; this is the first release. Wallet hosts register the module under the ecpm scheme and supply their ordinary key deriver, authorization handler, and optional privileged key provider. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/fund-wallet` | `1.4.1` | `1.4.5` | patch | [API and usage](../packages/helpers/fund-wallet.md) | No consumer migration is required; wallet funding APIs and transaction behavior are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/gasp` | `1.3.1` | `1.3.7` | patch | [API and usage](../packages/overlays/gasp.md) | No consumer migration is required; existing constructor calls, imports, synchronization behavior, and wire semantics are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/lch` | `0.0.0` | `0.1.1` | minor | [API and usage](../packages/content/lch.md) | No consumer migration is required; this is the first release of a new additive package. Applications must give quote() the verified Asset encryption descriptor and selected Offer key-delivery mechanism, keep createPayment behind explicit wallet authorization, persist the funded transaction and every partial settlement proof through recovery, retry with that same transaction, distinguish finalized from accepted evidence, fail closed on unknown settlement or evidence profiles, and supply an address-pinning connector for DNS endpoints. Payees should select receipt-complete unless they explicitly accept authorized-output provider, privacy, and pre-internalization key-release tradeoffs. Distributors must retain THIRD_PARTY_NOTICES.md with the package; the new profile adds no dependency. Published BRC-170 remains authoritative if the implementation and standard differ. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/message-box-client` | `2.4.0` | `2.4.3` | patch | [API and usage](../packages/messaging/message-box-client.md) | No API migration is required. Upgrade @bsv/sdk and @bsv/message-box-client together; historical number-array wallets, current Uint8Array substrates, and already-pending numeric-key messages interoperate through the same portable transaction form. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/overlay` | `2.2.1` | `2.3.2` | minor | [API and usage](../packages/overlays/overlay.md) | Existing Engine and TopicManager implementations remain valid. Lookup results default to 1,000 formulas; pass -1 only when an equivalent deployment bound exists. Topic managers whose validation creates provisional external state should implement abortAdmissibleOutputs, while read-only managers require no change. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/overlay-discovery-services` | `2.1.1` | `2.2.2` | minor | [API and usage](../packages/overlays/overlay-discovery-services.md) | Existing mainnet and testnet advertisers are unchanged. TTN operators pass chain ttn and provision the staging storage and overlay endpoints before advertising. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/overlay-express` | `2.5.0` | `2.6.2` | minor | [API and usage](../packages/overlays/overlay-express.md) | Existing mainnet and testnet servers are unchanged. TTN servers call configureNetwork('ttn'), configureArcade with the TTN endpoint, and configureChaintracks or configureChainTracker before engine initialization. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/overlay-topics` | `1.6.10` | `1.7.2` | minor | [API and usage](../packages/overlays/overlay-topics.md) | Existing topic and lookup identifiers remain unchanged. Production UMP overlays must give UMPTopicManager and the UMP lookup service Mongo-backed stores that use the same database, then roll out before updated wallet clients; the no-argument manager is bounded but intended only for isolated single-process use. The reservation and bootstrap-marker collections are additive and initialize from currently indexed UMP UTXOs; take a MongoDB backup before rollout. Legacy ambiguous rows remain visible and can be resolved with WAB pinning rather than deleted. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/paymail` | `2.4.2` | `2.4.8` | patch | [API and usage](../packages/messaging/paymail.md) | Existing Paymail client APIs and protocol semantics are retained. Consumers provide one Express 4.18 or 5 runtime and matching type graph; browser bundles continue to exclude the server router implementation. Consumers of the former bundled Money Button or Tokenized specification documents must follow the authoritative links in docs/specs/README.md. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/payment-express-middleware` | `2.1.1` | `2.1.7` | patch | [API and usage](../packages/middleware/payment-express-middleware.md) | No consumer migration is required; legacy x-bsv-payment JSON behavior remains supported, and Express 4 and 5 applications use their own peer-provided Express installation. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/sdk` | `2.4.0` | `3.0.0` | major | [API and usage](../packages/sdk/bsv-sdk.md) | SDK 3.0.0 changes default lookup behavior. Standard query() now throws LookupUnavailableError for incomplete empty aggregates. queryDetailed()/query$() expose transport status and discoveryComplete; complete does not prove authority or freshness. All standard resolver calls use a 5-second total budget, 2-second host budgets, fresh discovery, 32 candidate hosts and 256 outputs per host; streamed responses are limited to 4 MiB. Legacy reputation records are ignored automatically; atomic v4 storage is configurable. Review packages/sdk/docs/overlay-lookup-migration.md, first-party peer compatibility and service-specific validation before any coordinated migration. The optional KV path additionally requires a trusted chain tracker and authority policy. Existing byte encodings and incorporated-code notice requirements remain unchanged. |
+| `@bsv/simple` | `0.4.1` | `0.5.3` | minor | [API and usage](../packages/helpers/simple.md) | Existing overlay configurations and number-array behavior are unchanged. TTN consumers select network teratestnet; all consumers should upgrade to @bsv/sdk 2.4.2 or later. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/templates` | `1.9.1` | `1.10.2` | minor | [API and usage](../packages/helpers/templates.md) | No existing consumer migration is required; existing template APIs and generated scripts are unchanged. New R1K1Wallet consumers await lock(), retain each private 32-byte salt, and provide a PIV signer that signs the supplied digest directly without hashing it again. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/teranode-listener` | `1.1.1` | `1.1.6` | patch | [API and usage](../packages/network/teranode-listener.md) | No consumer migration is required; listener APIs, topics, and network configuration are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/verifast` | `0.3.0` | `0.3.6` | patch | [API and usage](../packages/sdk/verifast.md) | No consumer migration is required; exports, verification behavior, worker protocols, package paths, and runtime defaults are unchanged. Keep THIRD_PARTY_NOTICES.md and LICENSES/ with every JavaScript and WebAssembly distribution. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/wallet-helper` | `0.1.1` | `0.1.8` | patch | [API and usage](../packages/helpers/wallet-helper.md) | No consumer migration is required; fluent builder APIs and transaction semantics are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/wallet-relay` | `0.2.2` | `0.3.7` | minor | [API and usage](../packages/wallet/wallet-relay.md) | No wallet RPC migration is required; upgrade to @bsv/sdk 2.4.1 or later. Existing relay sessions and number arrays remain valid, and host applications continue to provide their matching Express runtime and type graph. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/wallet-toolbox` | `2.10.4` | `2.11.1` | minor | [API and usage](../packages/wallet/wallet-toolbox.md) | Existing actions, ordinary noSend calls, and permission modules require no migration. To use BRC-177, migrate every active Knex store before serving requests and run the default Wallet Toolbox monitor; IndexedDB upgrades automatically to schema version 5. Upgrade signer, active storage service, and remote monitor together to 2.11.0 or later; older remote storage is rejected before prefunding. The Knex migration also adds rebuildable prepared-BEEF and proof-epoch tables with every COOK control disabled. Validate the migration on MySQL before release and the cross-process epoch fence on non-production PXC before enabling writes. Roll out writes before reads, use backfill only after database review, and disable all three flags to roll back. Delete derived prepared rows before downgrading to code that cannot advance the epoch. Semantic modules may add handleRequest; hosts installing @bsv/ecpm-permission-module register it under the ecpm scheme. Canonical AtomicBEEF and number-array behavior are unchanged; use @bsv/sdk 2.4.2 or later, use docs/storage.md instead of the removed JSight export, and retain THIRD_PARTY_NOTICES.md and LICENSES/. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/wallet-toolbox-client` | `2.10.4` | `2.11.1` | minor | [API and usage](../packages/wallet/wallet-toolbox-client.md) | Existing browser actions and permission modules require no migration; IndexedDB upgrades automatically. To use BRC-177 with remote storage, upgrade the active storage service and its default monitor to Wallet Toolbox 2.11.0 or later before upgrading clients; an older server is rejected before prefunding. Prepared BEEF persistence and rollout controls apply only to the full package's Knex provider, so IndexedDB and remote clients require no COOK configuration. Semantic modules may add handleRequest; installing @bsv/ecpm-permission-module requires registration under the ecpm scheme. Browser exports, wire types, canonical AtomicBEEF behavior, and pagination contracts are unchanged; use @bsv/sdk 2.4.2 or later and retain THIRD_PARTY_NOTICES.md and LICENSES/. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `@bsv/wallet-toolbox-mobile` | `2.10.4` | `2.11.1` | minor | [API and usage](../packages/wallet/wallet-toolbox-mobile.md) | Existing mobile actions and permission modules require no migration. To use BRC-177, migrate and upgrade the active remote storage service and its default monitor to Wallet Toolbox 2.11.0 or later before upgrading clients; an older server is rejected before prefunding. Prepared BEEF persistence and rollout controls apply only to the full package's Knex provider, so mobile remote clients require no COOK configuration. Semantic modules may add handleRequest without changing the Wallet interface. React Native exports, wire types, and canonical AtomicBEEF behavior are unchanged; use @bsv/sdk 2.4.2 or later and retain THIRD_PARTY_NOTICES.md and LICENSES/. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported. |
+| `create-bsv-app` | `1.0.2` | `1.1.1` | minor | [API and usage](../packages/helpers/create-bsv-app.md) | Existing mainnet and testnet scaffolds are unchanged. New TTN projects pass --network ttn or select TerraTestNet in the configurator. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. |
`none` means the source manifest matches the recorded npm baseline. Any other
value is an unpublished candidate. Publication, tags, releases, registry
@@ -71,8 +71,8 @@ explicitly authorized operations.
- Package documentation: [docs/packages/middleware/402-pay.md](../packages/middleware/402-pay.md)
- Source: [packages/middleware/402-pay](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/402-pay)
-- Release note: Adds an exact-tarball Vite and esbuild contract for the browser-safe client entry point, including a bundle-size ratchet and an assertion that server exports never leak into browser consumers. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: No consumer migration is required; client and server exports, payment protocol behavior, and runtime defaults are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package.
+- Release note: Adds an exact-tarball Vite and esbuild contract for the browser-safe client entry point, including a bundle-size ratchet and an assertion that server exports never leak into browser consumers. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No consumer migration is required; client and server exports, payment protocol behavior, and runtime defaults are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| -------------- | ------------------------------------------ | ---------------------------------------------- |
@@ -95,8 +95,8 @@ explicitly authorized operations.
- Package documentation: [docs/packages/helpers/amountinator.md](../packages/helpers/amountinator.md)
- Source: [packages/helpers/amountinator](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/amountinator)
-- Release note: Adds the strict package and artifact contract, hardens amount formatting, and standardizes first-party author metadata on the current BSV Association name.
-- Migration: No consumer migration is required; this is a backward-compatible patch candidate.
+- Release note: Adds the strict package and artifact contract, hardens amount formatting, and standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No consumer migration is required; this is a backward-compatible patch candidate. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| -------------- | ---------------------------------------- | -------------------------------------------- |
@@ -106,8 +106,8 @@ explicitly authorized operations.
- Package documentation: [docs/packages/middleware/auth.md](../packages/middleware/auth.md)
- Source: [packages/middleware/auth](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/auth)
-- Release note: Adopts the governed strict TypeScript profile and repository-wide zero-warning lint and formatting contract. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: No consumer migration is required; authentication APIs, wire behavior, and runtime defaults are unchanged.
+- Release note: Adopts the governed strict TypeScript profile and repository-wide zero-warning lint and formatting contract. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No consumer migration is required; authentication APIs, wire behavior, and runtime defaults are unchanged. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| -------------- | ---------------------------------------- | -------------------------------------------- |
@@ -117,8 +117,8 @@ explicitly authorized operations.
- Package documentation: [docs/packages/middleware/auth-express-middleware.md](../packages/middleware/auth-express-middleware.md)
- Source: [packages/middleware/auth-express-middleware](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/auth-express-middleware)
-- Release note: Contains late BRC-104 peer-processing failures after the HTTP response or connection has already settled, and preserves BRC-100 byte fields in handshake and buffered JSON responses across number-array, Uint8Array, and historical numeric-key JSON runtimes. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: No API migration is required. Upgrade to @bsv/sdk 2.4.1 or later for the shared byte-boundary contract. Generic signed application-body canonicalization remains unchanged so old and new peers verify identical bytes. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package.
+- Release note: Contains late BRC-104 peer-processing failures after the HTTP response or connection has already settled, and preserves BRC-100 byte fields in handshake and buffered JSON responses across number-array, Uint8Array, and historical numeric-key JSON runtimes. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No API migration is required. Upgrade to @bsv/sdk 2.4.1 or later for the shared byte-boundary contract. Generic signed application-body canonicalization remains unchanged so old and new peers verify identical bytes. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| ---------------- | ------------------------------------ | ---------------------------------------- |
@@ -129,8 +129,8 @@ explicitly authorized operations.
- Package documentation: [docs/packages/messaging/authsocket.md](../packages/messaging/authsocket.md)
- Source: [packages/messaging/authsocket](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/messaging/authsocket)
-- Release note: Contains authentication and application callback failures, caps per-socket authentication concurrency, serializes real typed arrays portably, and preserves arbitrary signed event JSON exactly. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: No API migration is required. Existing event data, including numeric-key objects under byte-like names, is unchanged; typed payment protocols recover historical byte objects at their explicit fields. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package.
+- Release note: Contains authentication and application callback failures, caps per-socket authentication concurrency, serializes real typed arrays portably, and preserves arbitrary signed event JSON exactly. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No API migration is required. Existing event data, including numeric-key objects under byte-like names, is unchanged; typed payment protocols recover historical byte objects at their explicit fields. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| ---------------- | ------------------------------------ | ---------------------------------------- |
@@ -141,8 +141,8 @@ explicitly authorized operations.
- Package documentation: [docs/packages/messaging/authsocket-client.md](../packages/messaging/authsocket-client.md)
- Source: [packages/messaging/authsocket-client](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/messaging/authsocket-client)
-- Release note: Contains authentication and application callback failures, caps authentication concurrency, serializes real typed arrays portably, preserves arbitrary signed event JSON exactly, and ships the complete SDK incorporated-material notice archive with a retained UMD notice banner. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: No API migration is required. Existing event data, including numeric-key objects under byte-like names, is unchanged; typed payment protocols recover historical byte objects at their explicit fields. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it.
+- Release note: Contains authentication and application callback failures, caps authentication concurrency, serializes real typed arrays portably, preserves arbitrary signed event JSON exactly, and ships the complete SDK incorporated-material notice archive with a retained UMD notice banner. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No API migration is required. Existing event data, including numeric-key objects under byte-like names, is unchanged; typed payment protocols recover historical byte objects at their explicit fields. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| ---------------- | ----------------------------------- | --------------------------------------- |
@@ -153,8 +153,8 @@ explicitly authorized operations.
- Package documentation: [docs/packages/wallet/btms.md](../packages/wallet/btms.md)
- Source: [packages/wallet/btms](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/btms)
-- Release note: Adds TerraTestNet and preserves token settlement and refund transaction bytes across number-array, Uint8Array, and historical numeric-key JSON wallet runtimes. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: Existing local, mainnet, testnet, and number-array behavior is unchanged. TTN consumers select networkPreset teratestnet; all consumers should upgrade to @bsv/sdk 2.4.1 or later for byte-boundary compatibility.
+- Release note: Adds TerraTestNet and preserves token settlement and refund transaction bytes across number-array, Uint8Array, and historical numeric-key JSON wallet runtimes. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: Existing local, mainnet, testnet, and number-array behavior is unchanged. TTN consumers select networkPreset teratestnet; all consumers should upgrade to @bsv/sdk 2.4.1 or later for byte-boundary compatibility. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| -------------- | ---------------------------------------- | -------------------------------------------- |
@@ -164,8 +164,8 @@ explicitly authorized operations.
- Package documentation: [docs/packages/wallet/btms-permission-module.md](../packages/wallet/btms-permission-module.md)
- Source: [packages/wallet/btms-permission-module](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/btms-permission-module)
-- Release note: Adopts the governed strict TypeScript profile and repository-wide zero-warning lint and formatting contract. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: No consumer migration is required; permission-module APIs and token semantics are unchanged.
+- Release note: Adopts the governed strict TypeScript profile and repository-wide zero-warning lint and formatting contract. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No consumer migration is required; permission-module APIs and token semantics are unchanged. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| -------------- | ------------------ | --------------------- |
@@ -175,8 +175,8 @@ explicitly authorized operations.
- Package documentation: [docs/packages/network/chirp.md](../packages/network/chirp.md)
- Source: [packages/network/chirp](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/network/chirp)
-- Release note: Introduces the BRC-167 CHIRP reference implementation: canonical Merkle codecs and vectors, progressive and resumable multi-host publication, bounded interleaved and range-aware resolution, a verified-object cache, browser and Node byte-source adapters, closure validation, and publication/retrieval/verification CLI commands. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: No consumer migration is required; this is the first release of a new additive package. Existing @bsv/sdk StorageUploader, StorageDownloader, StorageUtils, UHRP identifiers, overlays, and server routes remain unchanged. BRC-167 remains authoritative if the implementation and standard differ.
+- Release note: Introduces the BRC-167 CHIRP reference implementation: canonical Merkle codecs and vectors, progressive and resumable multi-host publication, bounded interleaved and range-aware resolution, a verified-object cache, browser and Node byte-source adapters, closure validation, and publication/retrieval/verification CLI commands. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No consumer migration is required; this is the first release of a new additive package. Existing @bsv/sdk StorageUploader, StorageDownloader, StorageUtils, UHRP identifiers, overlays, and server routes remain unchanged. BRC-167 remains authoritative if the implementation and standard differ. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
CLI entry points: `{"chirp":"./dist/cli.js"}`.
@@ -190,8 +190,8 @@ CLI entry points: `{"chirp":"./dist/cli.js"}`.
- Package documentation: [docs/packages/helpers/did.md](../packages/helpers/did.md)
- Source: [packages/helpers/did](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/did)
-- Release note: Adds an exact-tarball Vite and esbuild browser-consumer contract with public-export, source-map, server-dependency, and bundle-size ratchets. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: No consumer migration is required; DID APIs, encodings, credential behavior, and supported import forms are unchanged.
+- Release note: Adds an exact-tarball Vite and esbuild browser-consumer contract with public-export, source-map, server-dependency, and bundle-size ratchets. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No consumer migration is required; DID APIs, encodings, credential behavior, and supported import forms are unchanged. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| -------------- | --------------------------------------- | ------------------------------------------- |
@@ -202,8 +202,8 @@ CLI entry points: `{"chirp":"./dist/cli.js"}`.
- Package documentation: [docs/packages/helpers/did-client.md](../packages/helpers/did-client.md)
- Source: [packages/helpers/did-client](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/did-client)
-- Release note: Adds TerraTestNet as an explicit DID overlay-network preset, retains the governed package-quality contract, ships the complete SDK incorporated-material notice archive with a retained UMD notice banner, and standardizes first-party author metadata on the current BSV Association name.
-- Migration: Existing local, mainnet, and testnet behavior is unchanged. TTN consumers select networkPreset teratestnet and use @bsv/sdk 2.4 or later. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it.
+- Release note: Adds TerraTestNet as an explicit DID overlay-network preset, retains the governed package-quality contract, ships the complete SDK incorporated-material notice archive with a retained UMD notice banner, and standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: Existing local, mainnet, and testnet behavior is unchanged. TTN consumers select networkPreset teratestnet and use @bsv/sdk 2.4 or later. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| ---------------- | --------------------------------------- | ------------------------------------------- |
@@ -215,8 +215,8 @@ CLI entry points: `{"chirp":"./dist/cli.js"}`.
- Package documentation: [docs/packages/wallet/ecpm-permission-module.md](../packages/wallet/ecpm-permission-module.md)
- Source: [packages/wallet/ecpm-permission-module](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/ecpm-permission-module)
-- Release note: Introduces the BRC-98 p ecpm semantic module, applying or removing a wallet-derived scalar from validated secp256k1 points through the existing BRC-100 getPublicKey surface, including reason-scoped privileged authorization and privileged-key-provider hooks.
-- Migration: No existing consumer migration is required; this is the first release. Wallet hosts register the module under the ecpm scheme and supply their ordinary key deriver, authorization handler, and optional privileged key provider.
+- Release note: Introduces the BRC-98 p ecpm semantic module, applying or removing a wallet-derived scalar from validated secp256k1 points through the existing BRC-100 getPublicKey surface, including reason-scoped privileged authorization and privileged-key-provider hooks. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No existing consumer migration is required; this is the first release. Wallet hosts register the module under the ecpm scheme and supply their ordinary key deriver, authorization handler, and optional privileged key provider. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| -------------- | ------------------ | --------------------- |
@@ -226,8 +226,8 @@ CLI entry points: `{"chirp":"./dist/cli.js"}`.
- Package documentation: [docs/packages/helpers/fund-wallet.md](../packages/helpers/fund-wallet.md)
- Source: [packages/helpers/fund-wallet](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/fund-wallet)
-- Release note: Adopts the governed strict TypeScript profile and repository-wide zero-warning lint and formatting contract, and retains the imported fund-metanet source's hash-pinned ISC provenance and notice from its exact source and npm publication. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: No consumer migration is required; wallet funding APIs and transaction behavior are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package.
+- Release note: Adopts the governed strict TypeScript profile and repository-wide zero-warning lint and formatting contract, and retains the imported fund-metanet source's hash-pinned ISC provenance and notice from its exact source and npm publication. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No consumer migration is required; wallet funding APIs and transaction behavior are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
CLI entry points: `{"fund-metanet":"./dist/index.mjs"}`.
@@ -239,8 +239,8 @@ CLI entry points: `{"fund-metanet":"./dist/index.mjs"}`.
- Package documentation: [docs/packages/overlays/gasp.md](../packages/overlays/gasp.md)
- Source: [packages/overlays/gasp-core](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/gasp-core)
-- Release note: Preserves the positional GASP constructor contract while improving declaration metadata and production maintainability, and adds an exact-tarball browser-consumer and bundle-size contract. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: No consumer migration is required; existing constructor calls, imports, synchronization behavior, and wire semantics are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package.
+- Release note: Preserves the positional GASP constructor contract while improving declaration metadata and production maintainability, and adds an exact-tarball browser-consumer and bundle-size contract. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No consumer migration is required; existing constructor calls, imports, synchronization behavior, and wire semantics are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| -------------- | ---------------------------------------------- | ---------------------------------------------------- |
@@ -251,8 +251,8 @@ CLI entry points: `{"fund-metanet":"./dist/index.mjs"}`.
- Package documentation: [docs/packages/content/lch.md](../packages/content/lch.md)
- Source: [packages/content/lch](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/content/lch)
-- Release note: Introduces the published BRC-170 Licensed Content Header reference implementation: deterministic CBOR and framing, segmented authenticated encryption, signed acquisition objects, deterministic-CBOR HTTP client/server bindings, independently routed and replay-safe Payee receipts, signed readiness and pending settlement, receipt-complete and offline-capable authorized-output settlement profiles, authenticated late Delivery retrieval, an explicit recovery-safe multipay buyer workflow with exact License, fulfillment, and key-grant binding, commit-aware IndexedDB persistence, UHRP and CHIRP content adapters with resolved-host failover, authority revocation, bounded DAG composition, deterministic malformed-input handling, and URL-canonical SSRF protection including IPv4-mapped IPv6 literals.
-- Migration: No consumer migration is required; this is the first release of a new additive package. Applications must give quote() the verified Asset encryption descriptor and selected Offer key-delivery mechanism, keep createPayment behind explicit wallet authorization, persist the funded transaction and every partial settlement proof through recovery, retry with that same transaction, distinguish finalized from accepted evidence, fail closed on unknown settlement or evidence profiles, and supply an address-pinning connector for DNS endpoints. Payees should select receipt-complete unless they explicitly accept authorized-output provider, privacy, and pre-internalization key-release tradeoffs. Distributors must retain THIRD_PARTY_NOTICES.md with the package; the new profile adds no dependency. Published BRC-170 remains authoritative if the implementation and standard differ.
+- Release note: Introduces the published BRC-170 Licensed Content Header reference implementation: deterministic CBOR and framing, segmented authenticated encryption, signed acquisition objects, deterministic-CBOR HTTP client/server bindings, independently routed and replay-safe Payee receipts, signed readiness and pending settlement, receipt-complete and offline-capable authorized-output settlement profiles, authenticated late Delivery retrieval, an explicit recovery-safe multipay buyer workflow with exact License, fulfillment, and key-grant binding, commit-aware IndexedDB persistence, UHRP and CHIRP content adapters with resolved-host failover, authority revocation, bounded DAG composition, deterministic malformed-input handling, and URL-canonical SSRF protection including IPv4-mapped IPv6 literals. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No consumer migration is required; this is the first release of a new additive package. Applications must give quote() the verified Asset encryption descriptor and selected Offer key-delivery mechanism, keep createPayment behind explicit wallet authorization, persist the funded transaction and every partial settlement proof through recovery, retry with that same transaction, distinguish finalized from accepted evidence, fail closed on unknown settlement or evidence profiles, and supply an address-pinning connector for DNS endpoints. Payees should select receipt-complete unless they explicitly accept authorized-output provider, privacy, and pre-internalization key-release tradeoffs. Distributors must retain THIRD_PARTY_NOTICES.md with the package; the new profile adds no dependency. Published BRC-170 remains authoritative if the implementation and standard differ. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
CLI entry points: `{"lch":"./dist/cli.js"}`.
@@ -265,8 +265,8 @@ CLI entry points: `{"lch":"./dist/cli.js"}`.
- Package documentation: [docs/packages/messaging/message-box-client.md](../packages/messaging/message-box-client.md)
- Source: [packages/messaging/message-box-client](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/messaging/message-box-client)
-- Release note: Preserves BRC-29 payments, paid messages, remittances, and peer tokens across binary Wallet Wire results and historical numeric-key JSON payloads, rejects sparse or invalid byte records, and ships the complete SDK incorporated-material notice archive with a retained UMD notice banner. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: No API migration is required. Upgrade @bsv/sdk and @bsv/message-box-client together; historical number-array wallets, current Uint8Array substrates, and already-pending numeric-key messages interoperate through the same portable transaction form. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it.
+- Release note: Preserves BRC-29 payments, paid messages, remittances, and peer tokens across binary Wallet Wire results and historical numeric-key JSON payloads, rejects sparse or invalid byte records, and ships the complete SDK incorporated-material notice archive with a retained UMD notice banner. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No API migration is required. Upgrade @bsv/sdk and @bsv/message-box-client together; historical number-array wallets, current Uint8Array substrates, and already-pending numeric-key messages interoperate through the same portable transaction form. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| ---------------- | ----------------------------------- | --------------------------------------- |
@@ -277,8 +277,8 @@ CLI entry points: `{"lch":"./dist/cli.js"}`.
- Package documentation: [docs/packages/overlays/overlay.md](../packages/overlays/overlay.md)
- Source: [packages/overlays/overlay](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/overlay)
-- Release note: Adds an engine lookup-result cardinality ceiling before transaction/proof hydration and an optional TopicManager abort hook for provisional admission state when strict transaction broadcast fails. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice.
-- Migration: Existing Engine and TopicManager implementations remain valid. Lookup results default to 1,000 formulas; pass -1 only when an equivalent deployment bound exists. Topic managers whose validation creates provisional external state should implement abortAdmissibleOutputs, while read-only managers require no change. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package.
+- Release note: Adds an engine lookup-result cardinality ceiling before transaction/proof hydration and an optional TopicManager abort hook for provisional admission state when strict transaction broadcast fails. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: Existing Engine and TopicManager implementations remain valid. Lookup results default to 1,000 formulas; pass -1 only when an equivalent deployment bound exists. Topic managers whose validation creates provisional external state should implement abortAdmissibleOutputs, while read-only managers require no change. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| ---------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
@@ -292,8 +292,8 @@ CLI entry points: `{"lch":"./dist/cli.js"}`.
- Package documentation: [docs/packages/overlays/overlay-discovery-services.md](../packages/overlays/overlay-discovery-services.md)
- Source: [packages/overlays/overlay-discovery-services](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/overlay-discovery-services)
-- Release note: Extends WalletAdvertiser to TerraTestNet with chain-isolated SHIP/SLAP resolution and TTN wallet services. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice.
-- Migration: Existing mainnet and testnet advertisers are unchanged. TTN operators pass chain ttn and provision the staging storage and overlay endpoints before advertising. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package.
+- Release note: Extends WalletAdvertiser to TerraTestNet with chain-isolated SHIP/SLAP resolution and TTN wallet services. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range. Rejects invalid punycode advertisement hosts consistently across Node/ICU versions while retaining valid internationalized names.
+- Migration: Existing mainnet and testnet advertisers are unchanged. TTN operators pass chain ttn and provision the staging storage and overlay endpoints before advertising. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| -------------- | ---------------------------------------------- | ---------------------------------------------------- |
@@ -304,8 +304,8 @@ CLI entry points: `{"lch":"./dist/cli.js"}`.
- Package documentation: [docs/packages/overlays/overlay-express.md](../packages/overlays/overlay-express.md)
- Source: [packages/overlays/overlay-express](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/overlay-express)
-- Release note: Adds a TerraTestNet runtime mode with TTN discovery roots, wallet advertising, and explicit ChainTracks requirements while retaining Arcade-first propagation. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice.
-- Migration: Existing mainnet and testnet servers are unchanged. TTN servers call configureNetwork('ttn'), configureArcade with the TTN endpoint, and configureChaintracks or configureChainTracker before engine initialization. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package.
+- Release note: Adds a TerraTestNet runtime mode with TTN discovery roots, wallet advertising, and explicit ChainTracks requirements while retaining Arcade-first propagation. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: Existing mainnet and testnet servers are unchanged. TTN servers call configureNetwork('ttn'), configureArcade with the TTN endpoint, and configureChaintracks or configureChainTracker before engine initialization. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| -------------- | ---------------------------------------------- | ---------------------------------------------------- |
@@ -316,8 +316,8 @@ CLI entry points: `{"lch":"./dist/cli.js"}`.
- Package documentation: [docs/packages/overlays/overlay-topics.md](../packages/overlays/overlay-topics.md)
- Source: [packages/overlays/topics](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/topics)
-- Release note: Adds persistent first-writer reservations for UMP presentation and recovery hashes, aborts provisional claims after strict broadcast failure, keeps confirmed owners protected until successor indexing, retries transient initialization, marks one-time legacy bootstrap, and returns the newest bounded legacy candidates for verified lineage or an operator pin. It also retains the collection-index resilience and opt-in repair controls from the prior candidate. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: Existing topic and lookup identifiers remain unchanged. Production UMP overlays must give UMPTopicManager and the UMP lookup service Mongo-backed stores that use the same database, then roll out before updated wallet clients; the no-argument manager is bounded but intended only for isolated single-process use. The reservation and bootstrap-marker collections are additive and initialize from currently indexed UMP UTXOs; take a MongoDB backup before rollout. Legacy ambiguous rows remain visible and can be resolved with WAB pinning rather than deleted.
+- Release note: Adds persistent first-writer reservations for UMP presentation and recovery hashes, aborts provisional claims after strict broadcast failure, keeps confirmed owners protected until successor indexing, retries transient initialization, marks one-time legacy bootstrap, and returns the newest bounded legacy candidates for verified lineage or an operator pin. It also retains the collection-index resilience and opt-in repair controls from the prior candidate. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: Existing topic and lookup identifiers remain unchanged. Production UMP overlays must give UMPTopicManager and the UMP lookup service Mongo-backed stores that use the same database, then roll out before updated wallet clients; the no-argument manager is bounded but intended only for isolated single-process use. The reservation and bootstrap-marker collections are additive and initialize from currently indexed UMP UTXOs; take a MongoDB backup before rollout. Legacy ambiguous rows remain visible and can be resolved with WAB pinning rather than deleted. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| -------------- | -------------------------------------- | --------------------- |
@@ -327,8 +327,8 @@ CLI entry points: `{"lch":"./dist/cli.js"}`.
- Package documentation: [docs/packages/messaging/paymail.md](../packages/messaging/paymail.md)
- Source: [packages/messaging/ts-paymail](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/messaging/ts-paymail)
-- Release note: Modernizes the package contract, hardens DNS, capability discovery, and browser-compatible Paymail behavior, and shares the host application's Express runtime and types for server routers. Removes local copies of externally authored specification documents whose upstream repositories do not assert reusable terms, replacing them with authoritative links. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: Existing Paymail client APIs and protocol semantics are retained. Consumers provide one Express 4.18 or 5 runtime and matching type graph; browser bundles continue to exclude the server router implementation. Consumers of the former bundled Money Button or Tokenized specification documents must follow the authoritative links in docs/specs/README.md. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package.
+- Release note: Modernizes the package contract, hardens DNS, capability discovery, and browser-compatible Paymail behavior, and shares the host application's Express runtime and types for server routers. Removes local copies of externally authored specification documents whose upstream repositories do not assert reusable terms, replacing them with authoritative links. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: Existing Paymail client APIs and protocol semantics are retained. Consumers provide one Express 4.18 or 5 runtime and matching type graph; browser bundles continue to exclude the server router implementation. Consumers of the former bundled Money Button or Tokenized specification documents must follow the authoritative links in docs/specs/README.md. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| ---------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
@@ -347,8 +347,8 @@ CLI entry points: `{"lch":"./dist/cli.js"}`.
- Package documentation: [docs/packages/middleware/payment-express-middleware.md](../packages/middleware/payment-express-middleware.md)
- Source: [packages/middleware/payment-express-middleware](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/payment-express-middleware)
-- Release note: Standardizes package quality, strengthens payment middleware validation, edge policy, and failure handling, and shares the host application's Express runtime and types. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: No consumer migration is required; legacy x-bsv-payment JSON behavior remains supported, and Express 4 and 5 applications use their own peer-provided Express installation. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package.
+- Release note: Standardizes package quality, strengthens payment middleware validation, edge policy, and failure handling, and shares the host application's Express runtime and types. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No consumer migration is required; legacy x-bsv-payment JSON behavior remains supported, and Express 4 and 5 applications use their own peer-provided Express installation. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| ---------------- | ------------------------------------ | ---------------------------------------- |
@@ -359,8 +359,8 @@ CLI entry points: `{"lch":"./dist/cli.js"}`.
- Package documentation: [docs/packages/sdk/bsv-sdk.md](../packages/sdk/bsv-sdk.md)
- Source: [packages/sdk](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/sdk)
-- Release note: Adds one strict BRC-100 byte-boundary contract and secure React Native bridge validation, and completes incorporated-code compliance with hash-pinned provenance, exact MIT/ISC/BSD/Apache notices, source lineage markers, package payloads, a retained UMD banner, SBOM components, and release enforcement. Removes a broken copied Swagger UI scaffold and screenshot; the first-party OpenAPI source remains available for use with any viewer. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: No API migration is required. Historical number-array fast paths and React Native behavior remain compatible. Documentation users should load docs/swagger/swagger.yaml into their preferred viewer instead of using the removed static Swagger UI scaffold. Distributors must keep THIRD_PARTY_NOTICES.md and LICENSES/ with source and browser bundles.
+- Release note: Adds one strict BRC-100 byte-boundary contract and secure React Native bridge validation, and completes incorporated-code compliance with hash-pinned provenance, exact MIT/ISC/BSD/Apache notices, source lineage markers, package payloads, a retained UMD banner, SBOM components, and release enforcement. Removes a broken copied Swagger UI scaffold and screenshot; the first-party OpenAPI source remains available for use with any viewer. Standardizes first-party author metadata on the current BSV Association name. Moves bounded discovery, advisory network/service/host reputation, cancellation, response limits and failure evidence into the standard LookupResolver for all overlay lookup services. Adds optional verified GlobalKVStore observations and write reconciliation.
+- Migration: SDK 3.0.0 changes default lookup behavior. Standard query() now throws LookupUnavailableError for incomplete empty aggregates. queryDetailed()/query$() expose transport status and discoveryComplete; complete does not prove authority or freshness. All standard resolver calls use a 5-second total budget, 2-second host budgets, fresh discovery, 32 candidate hosts and 256 outputs per host; streamed responses are limited to 4 MiB. Legacy reputation records are ignored automatically; atomic v4 storage is configurable. Review packages/sdk/docs/overlay-lookup-migration.md, first-party peer compatibility and service-specific validation before any coordinated migration. The optional KV path additionally requires a trusted chain tracker and authority policy. Existing byte encodings and incorporated-code notice requirements remain unchanged.
| Public subpath | Runtime target(s) | Declaration target(s) |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
@@ -436,13 +436,14 @@ CLI entry points: `{"lch":"./dist/cli.js"}`.
| `./remittance/*.ts` | `./dist/esm/src/remittance/*.js`
`./dist/cjs/src/remittance/*.js` | `./dist/types/src/remittance/*.d.ts`
`./dist/cjs/src/remittance/*.d.ts` |
| `./remittance/*` | `./dist/esm/src/remittance/*.js`
`./dist/cjs/src/remittance/*.js` | `./dist/types/src/remittance/*.d.ts`
`./dist/cjs/src/remittance/*.d.ts` |
| `./umd` | `./dist/umd/bundle.js` | `./dist/types/mod.d.ts` |
+| `./kvstore/reliable` | `./dist/esm/src/kvstore/reliable.js`
`./dist/cjs/src/kvstore/reliable.js` | `./dist/types/src/kvstore/reliable.d.ts`
`./dist/cjs/src/kvstore/reliable.d.ts` |
## @bsv/simple
- Package documentation: [docs/packages/helpers/simple.md](../packages/helpers/simple.md)
- Source: [packages/helpers/simple](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/simple)
-- Release note: Adds TerraTestNet, preserves Message Box, token send/receive, and server-adapter transaction bytes across wallet runtimes, and restores the exact scoped MIT notice for the pre-monorepo source alongside Open BSV licensing for later first-party changes. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: Existing overlay configurations and number-array behavior are unchanged. TTN consumers select network teratestnet; all consumers should upgrade to @bsv/sdk 2.4.2 or later. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/.
+- Release note: Adds TerraTestNet, preserves Message Box, token send/receive, and server-adapter transaction bytes across wallet runtimes, and restores the exact scoped MIT notice for the pre-monorepo source alongside Open BSV licensing for later first-party changes. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: Existing overlay configurations and number-array behavior are unchanged. TTN consumers select network teratestnet; all consumers should upgrade to @bsv/sdk 2.4.2 or later. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| -------------- | -------------------------------------------- | ------------------------------------------------ |
@@ -454,8 +455,8 @@ CLI entry points: `{"lch":"./dist/cli.js"}`.
- Package documentation: [docs/packages/helpers/templates.md](../packages/helpers/templates.md)
- Source: [packages/helpers/ts-templates](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/ts-templates)
-- Release note: Adds the R1K1Wallet ScriptTemplate for salted P-256 hardware signing with an independent secp256k1 recovery path, including a checksummed static Runar artifact and browser-safe lazy decompression. Also consolidates MultiPushDrop script construction without changing its output, adds an exact-tarball browser-consumer and bundle-size contract, and points contributors to the canonical root policy. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice.
-- Migration: No existing consumer migration is required; existing template APIs and generated scripts are unchanged. New R1K1Wallet consumers await lock(), retain each private 32-byte salt, and provide a PIV signer that signs the supplied digest directly without hashing it again. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package.
+- Release note: Adds the R1K1Wallet ScriptTemplate for salted P-256 hardware signing with an independent secp256k1 recovery path, including a checksummed static Runar artifact and browser-safe lazy decompression. Also consolidates MultiPushDrop script construction without changing its output, adds an exact-tarball browser-consumer and bundle-size contract, and points contributors to the canonical root policy. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No existing consumer migration is required; existing template APIs and generated scripts are unchanged. New R1K1Wallet consumers await lock(), retain each private 32-byte salt, and provide a PIV signer that signs the supplied digest directly without hashing it again. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| -------------- | --------------------------------------- | ------------------------------------------- |
@@ -466,8 +467,8 @@ CLI entry points: `{"lch":"./dist/cli.js"}`.
- Package documentation: [docs/packages/network/teranode-listener.md](../packages/network/teranode-listener.md)
- Source: [packages/network/ts-p2p](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/network/ts-p2p)
-- Release note: Refreshes the compatible libp2p transport, discovery, identification, DHT, peer-ID, ping, and private-network dependency set, and retains the imported ts-p2p source's hash-pinned MIT provenance and notice from its exact source and npm publication. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: No consumer migration is required; listener APIs, topics, and network configuration are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package.
+- Release note: Refreshes the compatible libp2p transport, discovery, identification, DHT, peer-ID, ping, and private-network dependency set, and retains the imported ts-p2p source's hash-pinned MIT provenance and notice from its exact source and npm publication. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No consumer migration is required; listener APIs, topics, and network configuration are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| ---------------- | -------------------------------------- | --------------------- |
@@ -478,8 +479,8 @@ CLI entry points: `{"lch":"./dist/cli.js"}`.
- Package documentation: [docs/packages/sdk/verifast.md](../packages/sdk/verifast.md)
- Source: [packages/verifast](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/verifast)
-- Release note: Adds exact-tarball browser, WASM, worker, strict-CSP, streaming-fallback, UMD source-map, and bundle contracts, and now ships hash-pinned BDK, bitcoin-sv, libsecp256k1, Emscripten, musl, LLVM, and Boost notices with a retained UMD banner and SBOM component records. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: No consumer migration is required; exports, verification behavior, worker protocols, package paths, and runtime defaults are unchanged. Keep THIRD_PARTY_NOTICES.md and LICENSES/ with every JavaScript and WebAssembly distribution.
+- Release note: Adds exact-tarball browser, WASM, worker, strict-CSP, streaming-fallback, UMD source-map, and bundle contracts, and now ships hash-pinned BDK, bitcoin-sv, libsecp256k1, Emscripten, musl, LLVM, and Boost notices with a retained UMD banner and SBOM component records. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No consumer migration is required; exports, verification behavior, worker protocols, package paths, and runtime defaults are unchanged. Keep THIRD_PARTY_NOTICES.md and LICENSES/ with every JavaScript and WebAssembly distribution. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| -------------------------- | ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
@@ -493,8 +494,8 @@ CLI entry points: `{"lch":"./dist/cli.js"}`.
- Package documentation: [docs/packages/helpers/wallet-helper.md](../packages/helpers/wallet-helper.md)
- Source: [packages/helpers/bsv-wallet-helper](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/bsv-wallet-helper)
-- Release note: Adds strict package contracts and hardens transaction-builder and OP_RETURN validation behavior. Retains the hash-pinned pre-uniformization Open BSV License Version 6 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: No consumer migration is required; fluent builder APIs and transaction semantics are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package.
+- Release note: Adds strict package contracts and hardens transaction-builder and OP_RETURN validation behavior. Retains the hash-pinned pre-uniformization Open BSV License Version 6 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No consumer migration is required; fluent builder APIs and transaction semantics are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| -------------- | ---------------------------------------- | -------------------------------------------- |
@@ -504,8 +505,8 @@ CLI entry points: `{"lch":"./dist/cli.js"}`.
- Package documentation: [docs/packages/wallet/wallet-relay.md](../packages/wallet/wallet-relay.md)
- Source: [packages/wallet/ts-wallet-relay](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/ts-wallet-relay)
-- Release note: Adds the strict package contract and preserves wallet RPC, encrypted relay payloads, signatures, and transaction bytes across number-array, Uint8Array, Buffer, and historical numeric-key JSON runtimes. Standardizes first-party author metadata on the current BSV Association name.
-- Migration: No wallet RPC migration is required; upgrade to @bsv/sdk 2.4.1 or later. Existing relay sessions and number arrays remain valid, and host applications continue to provide their matching Express runtime and type graph.
+- Release note: Adds the strict package contract and preserves wallet RPC, encrypted relay payloads, signatures, and transaction bytes across number-array, Uint8Array, Buffer, and historical numeric-key JSON runtimes. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: No wallet RPC migration is required; upgrade to @bsv/sdk 2.4.1 or later. Existing relay sessions and number arrays remain valid, and host applications continue to provide their matching Express runtime and type graph. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
CLI entry points: `{"wallet-relay":"./bin/init.mjs"}`.
@@ -520,8 +521,8 @@ CLI entry points: `{"wallet-relay":"./bin/init.mjs"}`.
- Package documentation: [docs/packages/wallet/wallet-toolbox.md](../packages/wallet/wallet-toolbox.md)
- Source: [packages/wallet/wallet-toolbox](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/wallet-toolbox)
-- Release note: Adds the built-in BRC-177 noSend-expiry reference implementation with exact prefunding, durable pre-signed reclaim, atomic active-storage monitoring, backoff-controlled recovery, cross-device lifecycle synchronization, and proof-finalized race handling. Adds opt-in prepared BEEF storage for Knex-backed normal createAction funding: verified, checksummed proof closures are persisted after foreground completion and reused on later hits, while broad lookups, misses, and cache failures retain the canonical path. Reads, writes, bounded queueing, and gradual backfill default off; reorganizations stale derived rows and fence in-flight cross-process writes with a database proof epoch. Also adds the optional semantic handleRequest hook for BRC-98/99/111 permission modules, retains BRC-95/BRC-100 compatibility and stable bounded pagination, removes the obsolete JSight application bundle, and preserves the earlier Open BSV grant.
-- Migration: Existing actions, ordinary noSend calls, and permission modules require no migration. To use BRC-177, migrate every active Knex store before serving requests and run the default Wallet Toolbox monitor; IndexedDB upgrades automatically to schema version 5. Upgrade signer, active storage service, and remote monitor together to 2.11.0 or later; older remote storage is rejected before prefunding. The Knex migration also adds rebuildable prepared-BEEF and proof-epoch tables with every COOK control disabled. Validate the migration on MySQL before release and the cross-process epoch fence on non-production PXC before enabling writes. Roll out writes before reads, use backfill only after database review, and disable all three flags to roll back. Delete derived prepared rows before downgrading to code that cannot advance the epoch. Semantic modules may add handleRequest; hosts installing @bsv/ecpm-permission-module register it under the ecpm scheme. Canonical AtomicBEEF and number-array behavior are unchanged; use @bsv/sdk 2.4.2 or later, use docs/storage.md instead of the removed JSight export, and retain THIRD_PARTY_NOTICES.md and LICENSES/.
+- Release note: Adds the built-in BRC-177 noSend-expiry reference implementation with exact prefunding, durable pre-signed reclaim, atomic active-storage monitoring, backoff-controlled recovery, cross-device lifecycle synchronization, and proof-finalized race handling. Adds opt-in prepared BEEF storage for Knex-backed normal createAction funding: verified, checksummed proof closures are persisted after foreground completion and reused on later hits, while broad lookups, misses, and cache failures retain the canonical path. Reads, writes, bounded queueing, and gradual backfill default off; reorganizations stale derived rows and fence in-flight cross-process writes with a database proof epoch. Also adds the optional semantic handleRequest hook for BRC-98/99/111 permission modules, retains BRC-95/BRC-100 compatibility and stable bounded pagination, removes the obsolete JSight application bundle, and preserves the earlier Open BSV grant. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: Existing actions, ordinary noSend calls, and permission modules require no migration. To use BRC-177, migrate every active Knex store before serving requests and run the default Wallet Toolbox monitor; IndexedDB upgrades automatically to schema version 5. Upgrade signer, active storage service, and remote monitor together to 2.11.0 or later; older remote storage is rejected before prefunding. The Knex migration also adds rebuildable prepared-BEEF and proof-epoch tables with every COOK control disabled. Validate the migration on MySQL before release and the cross-process epoch fence on non-production PXC before enabling writes. Roll out writes before reads, use backfill only after database review, and disable all three flags to roll back. Delete derived prepared rows before downgrading to code that cannot advance the epoch. Semantic modules may add handleRequest; hosts installing @bsv/ecpm-permission-module register it under the ecpm scheme. Canonical AtomicBEEF and number-array behavior are unchanged; use @bsv/sdk 2.4.2 or later, use docs/storage.md instead of the removed JSight export, and retain THIRD_PARTY_NOTICES.md and LICENSES/. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| ---------------- | ---------------------------------------------------- | -------------------------- |
@@ -534,8 +535,8 @@ CLI entry points: `{"wallet-relay":"./bin/init.mjs"}`.
- Package documentation: [docs/packages/wallet/wallet-toolbox-client.md](../packages/wallet/wallet-toolbox-client.md)
- Source: [packages/wallet/wallet-toolbox/client](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/wallet-toolbox/client)
-- Release note: Adds the built-in browser BRC-177 noSend-expiry signer, IndexedDB schema version 5 lifecycle state, remote storage capability negotiation, default monitor coordination, and the optional semantic handleRequest hook. Carries the shared prepared-BEEF-aware createAction contract while IndexedDB remains canonical-only; compatible remote Knex providers can enable COOK independently. Retains transformation modules, BRC-100 wire compatibility, stable IndexedDB totals, current browser compatibility fixes, and earlier Open BSV grants.
-- Migration: Existing browser actions and permission modules require no migration; IndexedDB upgrades automatically. To use BRC-177 with remote storage, upgrade the active storage service and its default monitor to Wallet Toolbox 2.11.0 or later before upgrading clients; an older server is rejected before prefunding. Prepared BEEF persistence and rollout controls apply only to the full package's Knex provider, so IndexedDB and remote clients require no COOK configuration. Semantic modules may add handleRequest; installing @bsv/ecpm-permission-module requires registration under the ecpm scheme. Browser exports, wire types, canonical AtomicBEEF behavior, and pagination contracts are unchanged; use @bsv/sdk 2.4.2 or later and retain THIRD_PARTY_NOTICES.md and LICENSES/.
+- Release note: Adds the built-in browser BRC-177 noSend-expiry signer, IndexedDB schema version 5 lifecycle state, remote storage capability negotiation, default monitor coordination, and the optional semantic handleRequest hook. Carries the shared prepared-BEEF-aware createAction contract while IndexedDB remains canonical-only; compatible remote Knex providers can enable COOK independently. Retains transformation modules, BRC-100 wire compatibility, stable IndexedDB totals, current browser compatibility fixes, and earlier Open BSV grants. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: Existing browser actions and permission modules require no migration; IndexedDB upgrades automatically. To use BRC-177 with remote storage, upgrade the active storage service and its default monitor to Wallet Toolbox 2.11.0 or later before upgrading clients; an older server is rejected before prefunding. Prepared BEEF persistence and rollout controls apply only to the full package's Knex provider, so IndexedDB and remote clients require no COOK configuration. Semantic modules may add handleRequest; installing @bsv/ecpm-permission-module requires registration under the ecpm scheme. Browser exports, wire types, canonical AtomicBEEF behavior, and pagination contracts are unchanged; use @bsv/sdk 2.4.2 or later and retain THIRD_PARTY_NOTICES.md and LICENSES/. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| ---------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
@@ -546,8 +547,8 @@ CLI entry points: `{"wallet-relay":"./bin/init.mjs"}`.
- Package documentation: [docs/packages/wallet/wallet-toolbox-mobile.md](../packages/wallet/wallet-toolbox-mobile.md)
- Source: [packages/wallet/wallet-toolbox/mobile](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/wallet-toolbox/mobile)
-- Release note: Adds the built-in mobile BRC-177 noSend-expiry signer, remote storage capability negotiation, default-monitor ownership coordination across restarts and devices, and the optional semantic handleRequest hook. Carries the shared prepared-BEEF-aware createAction contract while mobile storage remains canonical-only; compatible remote Knex providers can enable COOK independently. Retains transformation modules, BRC-100 wire compatibility, current mobile compatibility fixes, and earlier Open BSV grants.
-- Migration: Existing mobile actions and permission modules require no migration. To use BRC-177, migrate and upgrade the active remote storage service and its default monitor to Wallet Toolbox 2.11.0 or later before upgrading clients; an older server is rejected before prefunding. Prepared BEEF persistence and rollout controls apply only to the full package's Knex provider, so mobile remote clients require no COOK configuration. Semantic modules may add handleRequest without changing the Wallet interface. React Native exports, wire types, and canonical AtomicBEEF behavior are unchanged; use @bsv/sdk 2.4.2 or later and retain THIRD_PARTY_NOTICES.md and LICENSES/.
+- Release note: Adds the built-in mobile BRC-177 noSend-expiry signer, remote storage capability negotiation, default-monitor ownership coordination across restarts and devices, and the optional semantic handleRequest hook. Carries the shared prepared-BEEF-aware createAction contract while mobile storage remains canonical-only; compatible remote Knex providers can enable COOK independently. Retains transformation modules, BRC-100 wire compatibility, current mobile compatibility fixes, and earlier Open BSV grants. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.
+- Migration: Existing mobile actions and permission modules require no migration. To use BRC-177, migrate and upgrade the active remote storage service and its default monitor to Wallet Toolbox 2.11.0 or later before upgrading clients; an older server is rejected before prefunding. Prepared BEEF persistence and rollout controls apply only to the full package's Knex provider, so mobile remote clients require no COOK configuration. Semantic modules may add handleRequest without changing the Wallet interface. React Native exports, wire types, and canonical AtomicBEEF behavior are unchanged; use @bsv/sdk 2.4.2 or later and retain THIRD_PARTY_NOTICES.md and LICENSES/. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported.
| Public subpath | Runtime target(s) | Declaration target(s) |
| ---------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
diff --git a/docs/reference/stack-facts.md b/docs/reference/stack-facts.md
index 849d4354f..53af01427 100644
--- a/docs/reference/stack-facts.md
+++ b/docs/reference/stack-facts.md
@@ -37,40 +37,40 @@ authorized release action.
| Area | Package | Source version | Project profile | Consumer profiles | Runtime targets | Node engine | Source |
| --- | --- | --- | --- | --- | --- | --- | --- |
-| content | `@bsv/lch` | `0.1.0` | browser-library | browser-bundler, browser-esm, cli, node-esm | browser, node | `>=22` | [packages/content/lch](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/content/lch) |
+| content | `@bsv/lch` | `0.1.1` | browser-library | browser-bundler, browser-esm, cli, node-esm | browser, node | `>=22` | [packages/content/lch](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/content/lch) |
| helpers | `@bsv/air-gap` | `0.1.2` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm | browser, node | `>=22` | [packages/helpers/air-gap](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/air-gap) |
-| helpers | `@bsv/amountinator` | `2.1.5` | node-library | node-cjs, node-esm | node | `>=22` | [packages/helpers/amountinator](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/amountinator) |
-| helpers | `@bsv/did` | `0.2.5` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm | browser, node | `>=22` | [packages/helpers/did](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/did) |
-| helpers | `@bsv/did-client` | `1.3.1` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm, umd-global | browser, node, umd | `>=22` | [packages/helpers/did-client](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/did-client) |
-| helpers | `@bsv/fund-wallet` | `1.4.4` | cli | cli | node | `>=22` | [packages/helpers/fund-wallet](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/fund-wallet) |
-| helpers | `@bsv/simple` | `0.5.2` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm | browser, node | `>=22` | [packages/helpers/simple](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/simple) |
-| helpers | `@bsv/templates` | `1.10.1` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm | browser, node | `>=22` | [packages/helpers/ts-templates](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/ts-templates) |
-| helpers | `@bsv/wallet-helper` | `0.1.7` | node-library | node-cjs, node-esm | node | `>=22` | [packages/helpers/bsv-wallet-helper](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/bsv-wallet-helper) |
+| helpers | `@bsv/amountinator` | `2.1.6` | node-library | node-cjs, node-esm | node | `>=22` | [packages/helpers/amountinator](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/amountinator) |
+| helpers | `@bsv/did` | `0.2.6` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm | browser, node | `>=22` | [packages/helpers/did](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/did) |
+| helpers | `@bsv/did-client` | `1.3.2` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm, umd-global | browser, node, umd | `>=22` | [packages/helpers/did-client](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/did-client) |
+| helpers | `@bsv/fund-wallet` | `1.4.5` | cli | cli | node | `>=22` | [packages/helpers/fund-wallet](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/fund-wallet) |
+| helpers | `@bsv/simple` | `0.5.3` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm | browser, node | `>=22` | [packages/helpers/simple](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/simple) |
+| helpers | `@bsv/templates` | `1.10.2` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm | browser, node | `>=22` | [packages/helpers/ts-templates](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/ts-templates) |
+| helpers | `@bsv/wallet-helper` | `0.1.8` | node-library | node-cjs, node-esm | node | `>=22` | [packages/helpers/bsv-wallet-helper](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/bsv-wallet-helper) |
| helpers | `create-bsv-app` | `1.1.1` | cli | cli | node | `>=22` | [packages/helpers/create-bsv-app](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/create-bsv-app) |
-| messaging | `@bsv/authsocket` | `2.1.7` | node-library | node-cjs, node-esm | node | `>=22` | [packages/messaging/authsocket](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/messaging/authsocket) |
-| messaging | `@bsv/authsocket-client` | `2.1.6` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm, umd-global | browser, node, umd | `>=22` | [packages/messaging/authsocket-client](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/messaging/authsocket-client) |
-| messaging | `@bsv/message-box-client` | `2.4.2` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm, umd-global | browser, node, umd | `>=22` | [packages/messaging/message-box-client](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/messaging/message-box-client) |
-| messaging | `@bsv/paymail` | `2.4.7` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm | browser, node | `>=22` | [packages/messaging/ts-paymail](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/messaging/ts-paymail) |
-| middleware | `@bsv/402-pay` | `0.2.5` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm | browser, node | `>=22` | [packages/middleware/402-pay](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/402-pay) |
-| middleware | `@bsv/auth` | `0.1.4` | node-library | node-cjs, node-esm | node | `>=22` | [packages/middleware/auth](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/auth) |
-| middleware | `@bsv/auth-express-middleware` | `2.2.3` | node-library | node-cjs, node-esm | node | `>=22` | [packages/middleware/auth-express-middleware](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/auth-express-middleware) |
-| middleware | `@bsv/payment-express-middleware` | `2.1.6` | node-library | node-cjs, node-esm | node | `>=22` | [packages/middleware/payment-express-middleware](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/payment-express-middleware) |
-| network | `@bsv/chirp` | `0.1.1` | browser-library | browser-bundler, browser-esm, cli, node-esm | browser, node | `>=22` | [packages/network/chirp](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/network/chirp) |
-| network | `@bsv/teranode-listener` | `1.1.5` | node-library | node-esm | node | `>=22` | [packages/network/ts-p2p](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/network/ts-p2p) |
-| overlays | `@bsv/gasp` | `1.3.6` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm | browser, node | `>=22` | [packages/overlays/gasp-core](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/gasp-core) |
-| overlays | `@bsv/overlay` | `2.3.1` | node-library | node-cjs, node-esm | node | `>=22` | [packages/overlays/overlay](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/overlay) |
-| overlays | `@bsv/overlay-discovery-services` | `2.2.1` | node-library | node-cjs, node-esm | node | `>=22` | [packages/overlays/overlay-discovery-services](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/overlay-discovery-services) |
-| overlays | `@bsv/overlay-express` | `2.6.1` | node-library | node-cjs, node-esm | node | `>=22` | [packages/overlays/overlay-express](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/overlay-express) |
-| overlays | `@bsv/overlay-topics` | `1.7.1` | node-library | node-esm | node | `>=22` | [packages/overlays/topics](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/topics) |
-| sdk | `@bsv/sdk` | `2.4.2` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm, umd-global | browser, node, umd | `>=22` | [packages/sdk](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/sdk) |
-| sdk | `@bsv/verifast` | `0.3.5` | wasm-library | browser-bundler, browser-esm, node-cjs, node-esm, umd-global, wasm-worker | browser, node, umd, wasm, worker | `>=22` | [packages/verifast](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/verifast) |
-| wallet | `@bsv/btms` | `1.2.2` | node-library | node-cjs, node-esm | node | `>=22` | [packages/wallet/btms](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/btms) |
-| wallet | `@bsv/btms-permission-module` | `1.1.4` | node-library | node-esm | node | `>=22` | [packages/wallet/btms-permission-module](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/btms-permission-module) |
-| wallet | `@bsv/ecpm-permission-module` | `0.1.0` | browser-library | browser-bundler, browser-esm, node-esm | browser, node | `>=22` | [packages/wallet/ecpm-permission-module](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/ecpm-permission-module) |
-| wallet | `@bsv/wallet-relay` | `0.3.6` | cli-library | browser-bundler, browser-esm, cli, node-cjs, node-esm | browser, node | `>=22` | [packages/wallet/ts-wallet-relay](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/ts-wallet-relay) |
-| wallet | `@bsv/wallet-toolbox` | `2.11.0` | node-library | node-cjs | node | `>=22` | [packages/wallet/wallet-toolbox](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/wallet-toolbox) |
-| wallet | `@bsv/wallet-toolbox-client` | `2.11.0` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm | browser, node | `>=22` | [packages/wallet/wallet-toolbox/client](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/wallet-toolbox/client) |
-| wallet | `@bsv/wallet-toolbox-mobile` | `2.11.0` | react-native-library | react-native-metro | react-native | `>=22` | [packages/wallet/wallet-toolbox/mobile](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/wallet-toolbox/mobile) |
+| messaging | `@bsv/authsocket` | `2.1.8` | node-library | node-cjs, node-esm | node | `>=22` | [packages/messaging/authsocket](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/messaging/authsocket) |
+| messaging | `@bsv/authsocket-client` | `2.1.7` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm, umd-global | browser, node, umd | `>=22` | [packages/messaging/authsocket-client](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/messaging/authsocket-client) |
+| messaging | `@bsv/message-box-client` | `2.4.3` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm, umd-global | browser, node, umd | `>=22` | [packages/messaging/message-box-client](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/messaging/message-box-client) |
+| messaging | `@bsv/paymail` | `2.4.8` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm | browser, node | `>=22` | [packages/messaging/ts-paymail](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/messaging/ts-paymail) |
+| middleware | `@bsv/402-pay` | `0.2.6` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm | browser, node | `>=22` | [packages/middleware/402-pay](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/402-pay) |
+| middleware | `@bsv/auth` | `0.1.5` | node-library | node-cjs, node-esm | node | `>=22` | [packages/middleware/auth](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/auth) |
+| middleware | `@bsv/auth-express-middleware` | `2.2.4` | node-library | node-cjs, node-esm | node | `>=22` | [packages/middleware/auth-express-middleware](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/auth-express-middleware) |
+| middleware | `@bsv/payment-express-middleware` | `2.1.7` | node-library | node-cjs, node-esm | node | `>=22` | [packages/middleware/payment-express-middleware](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/payment-express-middleware) |
+| network | `@bsv/chirp` | `0.1.2` | browser-library | browser-bundler, browser-esm, cli, node-esm | browser, node | `>=22` | [packages/network/chirp](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/network/chirp) |
+| network | `@bsv/teranode-listener` | `1.1.6` | node-library | node-esm | node | `>=22` | [packages/network/ts-p2p](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/network/ts-p2p) |
+| overlays | `@bsv/gasp` | `1.3.7` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm | browser, node | `>=22` | [packages/overlays/gasp-core](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/gasp-core) |
+| overlays | `@bsv/overlay` | `2.3.2` | node-library | node-cjs, node-esm | node | `>=22` | [packages/overlays/overlay](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/overlay) |
+| overlays | `@bsv/overlay-discovery-services` | `2.2.2` | node-library | node-cjs, node-esm | node | `>=22` | [packages/overlays/overlay-discovery-services](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/overlay-discovery-services) |
+| overlays | `@bsv/overlay-express` | `2.6.2` | node-library | node-cjs, node-esm | node | `>=22` | [packages/overlays/overlay-express](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/overlay-express) |
+| overlays | `@bsv/overlay-topics` | `1.7.2` | node-library | node-esm | node | `>=22` | [packages/overlays/topics](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/topics) |
+| sdk | `@bsv/sdk` | `3.0.0` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm, umd-global | browser, node, umd | `>=22` | [packages/sdk](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/sdk) |
+| sdk | `@bsv/verifast` | `0.3.6` | wasm-library | browser-bundler, browser-esm, node-cjs, node-esm, umd-global, wasm-worker | browser, node, umd, wasm, worker | `>=22` | [packages/verifast](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/verifast) |
+| wallet | `@bsv/btms` | `1.2.3` | node-library | node-cjs, node-esm | node | `>=22` | [packages/wallet/btms](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/btms) |
+| wallet | `@bsv/btms-permission-module` | `1.1.5` | node-library | node-esm | node | `>=22` | [packages/wallet/btms-permission-module](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/btms-permission-module) |
+| wallet | `@bsv/ecpm-permission-module` | `0.1.1` | browser-library | browser-bundler, browser-esm, node-esm | browser, node | `>=22` | [packages/wallet/ecpm-permission-module](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/ecpm-permission-module) |
+| wallet | `@bsv/wallet-relay` | `0.3.7` | cli-library | browser-bundler, browser-esm, cli, node-cjs, node-esm | browser, node | `>=22` | [packages/wallet/ts-wallet-relay](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/ts-wallet-relay) |
+| wallet | `@bsv/wallet-toolbox` | `2.11.1` | node-library | node-cjs | node | `>=22` | [packages/wallet/wallet-toolbox](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/wallet-toolbox) |
+| wallet | `@bsv/wallet-toolbox-client` | `2.11.1` | browser-library | browser-bundler, browser-esm, node-cjs, node-esm | browser, node | `>=22` | [packages/wallet/wallet-toolbox/client](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/wallet-toolbox/client) |
+| wallet | `@bsv/wallet-toolbox-mobile` | `2.11.1` | react-native-library | react-native-metro | react-native | `>=22` | [packages/wallet/wallet-toolbox/mobile](https://github.com/bsv-blockchain/ts-stack/tree/main/packages/wallet/wallet-toolbox/mobile) |
## Standalone infrastructure manifests
diff --git a/governance/dependency-release-policy.json b/governance/dependency-release-policy.json
index 5ebebc46a..1e7012ce9 100644
--- a/governance/dependency-release-policy.json
+++ b/governance/dependency-release-policy.json
@@ -1,6 +1,6 @@
{
"schemaVersion": 1,
- "lastReviewed": "2026-08-30",
+ "lastReviewed": "2026-09-04",
"owner": "ts-stack-maintainers",
"routineUpdates": {
"dependabotConfig": ".github/dependabot.yml",
@@ -144,10 +144,10 @@
"closeImplementationWaveAfterPublication": false
},
"overrideRemovalReview": {
- "reviewedAt": "2026-08-30",
- "method": "Rechecked retained root and standalone overrides against the frozen locks, current package metadata, and the current advisory audit. Verified that typed-rest-client 2.3.1 still pins qs 6.15.1, Google and OpenTelemetry paths still request gaxios 6.x or 7.1.3, and teeny-request still permits uuid 9.x.",
- "retainedCount": 20,
- "result": "All 20 retained overrides still prevent a reproduced vulnerable transitive version or preserve an isolated reproducible toolchain closure. The expired qs, gaxios, and uuid entries remain necessary; the frozen graph resolves their reviewed patched versions and the high-severity audit reports only the two governed image-size advisories.",
+ "reviewedAt": "2026-09-04",
+ "method": "Retained the 2026-08-30 removal rehearsal for the 20 existing substitutions. On 2026-09-04, rechecked registry metadata and the frozen audit for typed-rest-client 2.3.1 (still pins qs 6.15.1) and remark-mdx-frontmatter 5.2.0 (still requests toml ^3.0.0). Verified compatible natural lock updates for fast-uri and Express qs; scoped replacements remain necessary for the two constrained parents.",
+ "retainedCount": 21,
+ "result": "The registry now contains 21 substitutions: the 20 previously rehearsed entries, with typed-rest-client qs advanced to 6.16.0, plus the frontmatter plugin toml 4.2.0 security fix. TOML/YAML compilation and prototype/recursion regressions pass; the frozen high-severity audit reports only the two previously governed image-size advisories. No new advisory exclusion was added.",
"nextReview": "Rehearse removal monthly and immediately after upstream Google client, Jest/minimatch, typed-rest-client, Redocly, AJV, express-rate-limit, Socket.IO, Vite/PostCSS, Metro, or image-size dependency changes."
},
"overrideRegistry": [
@@ -166,7 +166,7 @@
{
"source": "pnpm-workspace.yaml",
"selector": "typed-rest-client@2.3.1>qs",
- "value": "6.15.3",
+ "value": "6.16.0",
"exceptionId": "typed-rest-client-qs-override"
},
{
@@ -275,6 +275,12 @@
"selector": "gaxios",
"value": "7.3.0",
"exceptionId": "standalone-gaxios-advisory-override"
+ },
+ {
+ "source": "pnpm-workspace.yaml",
+ "selector": "remark-mdx-frontmatter@5.2.0>toml",
+ "value": "4.2.0",
+ "exceptionId": "remark-mdx-frontmatter-toml-override"
}
],
"scheduledVerification": {
diff --git a/governance/package-release-notes.json b/governance/package-release-notes.json
index 92b6ab257..1d00567e6 100644
--- a/governance/package-release-notes.json
+++ b/governance/package-release-notes.json
@@ -7,8 +7,8 @@
"name": "@bsv/402-pay",
"publishedVersion": "0.2.1",
"releaseType": "patch",
- "summary": "Adds an exact-tarball Vite and esbuild contract for the browser-safe client entry point, including a bundle-size ratchet and an assertion that server exports never leak into browser consumers. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No consumer migration is required; client and server exports, payment protocol behavior, and runtime defaults are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package."
+ "summary": "Adds an exact-tarball Vite and esbuild contract for the browser-safe client entry point, including a bundle-size ratchet and an assertion that server exports never leak into browser consumers. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No consumer migration is required; client and server exports, payment protocol behavior, and runtime defaults are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/air-gap",
@@ -21,218 +21,218 @@
"name": "@bsv/amountinator",
"publishedVersion": "2.1.1",
"releaseType": "patch",
- "summary": "Adds the strict package and artifact contract, hardens amount formatting, and standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No consumer migration is required; this is a backward-compatible patch candidate."
+ "summary": "Adds the strict package and artifact contract, hardens amount formatting, and standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No consumer migration is required; this is a backward-compatible patch candidate. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/auth",
"publishedVersion": "0.1.1",
"releaseType": "patch",
- "summary": "Adopts the governed strict TypeScript profile and repository-wide zero-warning lint and formatting contract. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No consumer migration is required; authentication APIs, wire behavior, and runtime defaults are unchanged."
+ "summary": "Adopts the governed strict TypeScript profile and repository-wide zero-warning lint and formatting contract. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No consumer migration is required; authentication APIs, wire behavior, and runtime defaults are unchanged. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/auth-express-middleware",
"publishedVersion": "2.2.0",
"releaseType": "patch",
- "summary": "Contains late BRC-104 peer-processing failures after the HTTP response or connection has already settled, and preserves BRC-100 byte fields in handshake and buffered JSON responses across number-array, Uint8Array, and historical numeric-key JSON runtimes. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No API migration is required. Upgrade to @bsv/sdk 2.4.1 or later for the shared byte-boundary contract. Generic signed application-body canonicalization remains unchanged so old and new peers verify identical bytes. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package."
+ "summary": "Contains late BRC-104 peer-processing failures after the HTTP response or connection has already settled, and preserves BRC-100 byte fields in handshake and buffered JSON responses across number-array, Uint8Array, and historical numeric-key JSON runtimes. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No API migration is required. Upgrade to @bsv/sdk 2.4.1 or later for the shared byte-boundary contract. Generic signed application-body canonicalization remains unchanged so old and new peers verify identical bytes. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/authsocket",
"publishedVersion": "2.1.1",
"releaseType": "patch",
- "summary": "Contains authentication and application callback failures, caps per-socket authentication concurrency, serializes real typed arrays portably, and preserves arbitrary signed event JSON exactly. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No API migration is required. Existing event data, including numeric-key objects under byte-like names, is unchanged; typed payment protocols recover historical byte objects at their explicit fields. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package."
+ "summary": "Contains authentication and application callback failures, caps per-socket authentication concurrency, serializes real typed arrays portably, and preserves arbitrary signed event JSON exactly. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No API migration is required. Existing event data, including numeric-key objects under byte-like names, is unchanged; typed payment protocols recover historical byte objects at their explicit fields. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/authsocket-client",
"publishedVersion": "2.1.1",
"releaseType": "patch",
- "summary": "Contains authentication and application callback failures, caps authentication concurrency, serializes real typed arrays portably, preserves arbitrary signed event JSON exactly, and ships the complete SDK incorporated-material notice archive with a retained UMD notice banner. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No API migration is required. Existing event data, including numeric-key objects under byte-like names, is unchanged; typed payment protocols recover historical byte objects at their explicit fields. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it."
+ "summary": "Contains authentication and application callback failures, caps authentication concurrency, serializes real typed arrays portably, preserves arbitrary signed event JSON exactly, and ships the complete SDK incorporated-material notice archive with a retained UMD notice banner. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No API migration is required. Existing event data, including numeric-key objects under byte-like names, is unchanged; typed payment protocols recover historical byte objects at their explicit fields. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/btms",
"publishedVersion": "1.1.1",
"releaseType": "minor",
- "summary": "Adds TerraTestNet and preserves token settlement and refund transaction bytes across number-array, Uint8Array, and historical numeric-key JSON wallet runtimes. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "Existing local, mainnet, testnet, and number-array behavior is unchanged. TTN consumers select networkPreset teratestnet; all consumers should upgrade to @bsv/sdk 2.4.1 or later for byte-boundary compatibility."
+ "summary": "Adds TerraTestNet and preserves token settlement and refund transaction bytes across number-array, Uint8Array, and historical numeric-key JSON wallet runtimes. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "Existing local, mainnet, testnet, and number-array behavior is unchanged. TTN consumers select networkPreset teratestnet; all consumers should upgrade to @bsv/sdk 2.4.1 or later for byte-boundary compatibility. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/btms-permission-module",
"publishedVersion": "1.1.1",
"releaseType": "patch",
- "summary": "Adopts the governed strict TypeScript profile and repository-wide zero-warning lint and formatting contract. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No consumer migration is required; permission-module APIs and token semantics are unchanged."
+ "summary": "Adopts the governed strict TypeScript profile and repository-wide zero-warning lint and formatting contract. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No consumer migration is required; permission-module APIs and token semantics are unchanged. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/ecpm-permission-module",
"publishedVersion": "0.0.0",
"releaseType": "minor",
- "summary": "Introduces the BRC-98 p ecpm semantic module, applying or removing a wallet-derived scalar from validated secp256k1 points through the existing BRC-100 getPublicKey surface, including reason-scoped privileged authorization and privileged-key-provider hooks.",
- "migration": "No existing consumer migration is required; this is the first release. Wallet hosts register the module under the ecpm scheme and supply their ordinary key deriver, authorization handler, and optional privileged key provider."
+ "summary": "Introduces the BRC-98 p ecpm semantic module, applying or removing a wallet-derived scalar from validated secp256k1 points through the existing BRC-100 getPublicKey surface, including reason-scoped privileged authorization and privileged-key-provider hooks. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No existing consumer migration is required; this is the first release. Wallet hosts register the module under the ecpm scheme and supply their ordinary key deriver, authorization handler, and optional privileged key provider. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/chirp",
"publishedVersion": "0.0.0",
"releaseType": "minor",
- "summary": "Introduces the BRC-167 CHIRP reference implementation: canonical Merkle codecs and vectors, progressive and resumable multi-host publication, bounded interleaved and range-aware resolution, a verified-object cache, browser and Node byte-source adapters, closure validation, and publication/retrieval/verification CLI commands. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No consumer migration is required; this is the first release of a new additive package. Existing @bsv/sdk StorageUploader, StorageDownloader, StorageUtils, UHRP identifiers, overlays, and server routes remain unchanged. BRC-167 remains authoritative if the implementation and standard differ."
+ "summary": "Introduces the BRC-167 CHIRP reference implementation: canonical Merkle codecs and vectors, progressive and resumable multi-host publication, bounded interleaved and range-aware resolution, a verified-object cache, browser and Node byte-source adapters, closure validation, and publication/retrieval/verification CLI commands. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No consumer migration is required; this is the first release of a new additive package. Existing @bsv/sdk StorageUploader, StorageDownloader, StorageUtils, UHRP identifiers, overlays, and server routes remain unchanged. BRC-167 remains authoritative if the implementation and standard differ. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/lch",
"publishedVersion": "0.0.0",
"releaseType": "minor",
- "summary": "Introduces the published BRC-170 Licensed Content Header reference implementation: deterministic CBOR and framing, segmented authenticated encryption, signed acquisition objects, deterministic-CBOR HTTP client/server bindings, independently routed and replay-safe Payee receipts, signed readiness and pending settlement, receipt-complete and offline-capable authorized-output settlement profiles, authenticated late Delivery retrieval, an explicit recovery-safe multipay buyer workflow with exact License, fulfillment, and key-grant binding, commit-aware IndexedDB persistence, UHRP and CHIRP content adapters with resolved-host failover, authority revocation, bounded DAG composition, deterministic malformed-input handling, and URL-canonical SSRF protection including IPv4-mapped IPv6 literals.",
- "migration": "No consumer migration is required; this is the first release of a new additive package. Applications must give quote() the verified Asset encryption descriptor and selected Offer key-delivery mechanism, keep createPayment behind explicit wallet authorization, persist the funded transaction and every partial settlement proof through recovery, retry with that same transaction, distinguish finalized from accepted evidence, fail closed on unknown settlement or evidence profiles, and supply an address-pinning connector for DNS endpoints. Payees should select receipt-complete unless they explicitly accept authorized-output provider, privacy, and pre-internalization key-release tradeoffs. Distributors must retain THIRD_PARTY_NOTICES.md with the package; the new profile adds no dependency. Published BRC-170 remains authoritative if the implementation and standard differ."
+ "summary": "Introduces the published BRC-170 Licensed Content Header reference implementation: deterministic CBOR and framing, segmented authenticated encryption, signed acquisition objects, deterministic-CBOR HTTP client/server bindings, independently routed and replay-safe Payee receipts, signed readiness and pending settlement, receipt-complete and offline-capable authorized-output settlement profiles, authenticated late Delivery retrieval, an explicit recovery-safe multipay buyer workflow with exact License, fulfillment, and key-grant binding, commit-aware IndexedDB persistence, UHRP and CHIRP content adapters with resolved-host failover, authority revocation, bounded DAG composition, deterministic malformed-input handling, and URL-canonical SSRF protection including IPv4-mapped IPv6 literals. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No consumer migration is required; this is the first release of a new additive package. Applications must give quote() the verified Asset encryption descriptor and selected Offer key-delivery mechanism, keep createPayment behind explicit wallet authorization, persist the funded transaction and every partial settlement proof through recovery, retry with that same transaction, distinguish finalized from accepted evidence, fail closed on unknown settlement or evidence profiles, and supply an address-pinning connector for DNS endpoints. Payees should select receipt-complete unless they explicitly accept authorized-output provider, privacy, and pre-internalization key-release tradeoffs. Distributors must retain THIRD_PARTY_NOTICES.md with the package; the new profile adds no dependency. Published BRC-170 remains authoritative if the implementation and standard differ. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/did",
"publishedVersion": "0.2.1",
"releaseType": "patch",
- "summary": "Adds an exact-tarball Vite and esbuild browser-consumer contract with public-export, source-map, server-dependency, and bundle-size ratchets. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No consumer migration is required; DID APIs, encodings, credential behavior, and supported import forms are unchanged."
+ "summary": "Adds an exact-tarball Vite and esbuild browser-consumer contract with public-export, source-map, server-dependency, and bundle-size ratchets. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No consumer migration is required; DID APIs, encodings, credential behavior, and supported import forms are unchanged. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/did-client",
"publishedVersion": "1.2.1",
"releaseType": "minor",
- "summary": "Adds TerraTestNet as an explicit DID overlay-network preset, retains the governed package-quality contract, ships the complete SDK incorporated-material notice archive with a retained UMD notice banner, and standardizes first-party author metadata on the current BSV Association name.",
- "migration": "Existing local, mainnet, and testnet behavior is unchanged. TTN consumers select networkPreset teratestnet and use @bsv/sdk 2.4 or later. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it."
+ "summary": "Adds TerraTestNet as an explicit DID overlay-network preset, retains the governed package-quality contract, ships the complete SDK incorporated-material notice archive with a retained UMD notice banner, and standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "Existing local, mainnet, and testnet behavior is unchanged. TTN consumers select networkPreset teratestnet and use @bsv/sdk 2.4 or later. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/fund-wallet",
"publishedVersion": "1.4.1",
"releaseType": "patch",
- "summary": "Adopts the governed strict TypeScript profile and repository-wide zero-warning lint and formatting contract, and retains the imported fund-metanet source's hash-pinned ISC provenance and notice from its exact source and npm publication. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No consumer migration is required; wallet funding APIs and transaction behavior are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package."
+ "summary": "Adopts the governed strict TypeScript profile and repository-wide zero-warning lint and formatting contract, and retains the imported fund-metanet source's hash-pinned ISC provenance and notice from its exact source and npm publication. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No consumer migration is required; wallet funding APIs and transaction behavior are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/gasp",
"publishedVersion": "1.3.1",
"releaseType": "patch",
- "summary": "Preserves the positional GASP constructor contract while improving declaration metadata and production maintainability, and adds an exact-tarball browser-consumer and bundle-size contract. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No consumer migration is required; existing constructor calls, imports, synchronization behavior, and wire semantics are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package."
+ "summary": "Preserves the positional GASP constructor contract while improving declaration metadata and production maintainability, and adds an exact-tarball browser-consumer and bundle-size contract. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No consumer migration is required; existing constructor calls, imports, synchronization behavior, and wire semantics are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/message-box-client",
"publishedVersion": "2.4.0",
"releaseType": "patch",
- "summary": "Preserves BRC-29 payments, paid messages, remittances, and peer tokens across binary Wallet Wire results and historical numeric-key JSON payloads, rejects sparse or invalid byte records, and ships the complete SDK incorporated-material notice archive with a retained UMD notice banner. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No API migration is required. Upgrade @bsv/sdk and @bsv/message-box-client together; historical number-array wallets, current Uint8Array substrates, and already-pending numeric-key messages interoperate through the same portable transaction form. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it."
+ "summary": "Preserves BRC-29 payments, paid messages, remittances, and peer tokens across binary Wallet Wire results and historical numeric-key JSON payloads, rejects sparse or invalid byte records, and ships the complete SDK incorporated-material notice archive with a retained UMD notice banner. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No API migration is required. Upgrade @bsv/sdk and @bsv/message-box-client together; historical number-array wallets, current Uint8Array substrates, and already-pending numeric-key messages interoperate through the same portable transaction form. Distributors who copy the UMD file must keep THIRD_PARTY_NOTICES.md and LICENSES/ with it. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/overlay",
"publishedVersion": "2.2.1",
"releaseType": "minor",
- "summary": "Adds an engine lookup-result cardinality ceiling before transaction/proof hydration and an optional TopicManager abort hook for provisional admission state when strict transaction broadcast fails. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice.",
- "migration": "Existing Engine and TopicManager implementations remain valid. Lookup results default to 1,000 formulas; pass -1 only when an equivalent deployment bound exists. Topic managers whose validation creates provisional external state should implement abortAdmissibleOutputs, while read-only managers require no change. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package."
+ "summary": "Adds an engine lookup-result cardinality ceiling before transaction/proof hydration and an optional TopicManager abort hook for provisional admission state when strict transaction broadcast fails. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "Existing Engine and TopicManager implementations remain valid. Lookup results default to 1,000 formulas; pass -1 only when an equivalent deployment bound exists. Topic managers whose validation creates provisional external state should implement abortAdmissibleOutputs, while read-only managers require no change. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/overlay-discovery-services",
"publishedVersion": "2.1.1",
"releaseType": "minor",
- "summary": "Extends WalletAdvertiser to TerraTestNet with chain-isolated SHIP/SLAP resolution and TTN wallet services. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice.",
- "migration": "Existing mainnet and testnet advertisers are unchanged. TTN operators pass chain ttn and provision the staging storage and overlay endpoints before advertising. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package."
+ "summary": "Extends WalletAdvertiser to TerraTestNet with chain-isolated SHIP/SLAP resolution and TTN wallet services. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range. Rejects invalid punycode advertisement hosts consistently across Node/ICU versions while retaining valid internationalized names.",
+ "migration": "Existing mainnet and testnet advertisers are unchanged. TTN operators pass chain ttn and provision the staging storage and overlay endpoints before advertising. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/overlay-express",
"publishedVersion": "2.5.0",
"releaseType": "minor",
- "summary": "Adds a TerraTestNet runtime mode with TTN discovery roots, wallet advertising, and explicit ChainTracks requirements while retaining Arcade-first propagation. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice.",
- "migration": "Existing mainnet and testnet servers are unchanged. TTN servers call configureNetwork('ttn'), configureArcade with the TTN endpoint, and configureChaintracks or configureChainTracker before engine initialization. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package."
+ "summary": "Adds a TerraTestNet runtime mode with TTN discovery roots, wallet advertising, and explicit ChainTracks requirements while retaining Arcade-first propagation. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "Existing mainnet and testnet servers are unchanged. TTN servers call configureNetwork('ttn'), configureArcade with the TTN endpoint, and configureChaintracks or configureChainTracker before engine initialization. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/overlay-topics",
"publishedVersion": "1.6.10",
"releaseType": "minor",
- "summary": "Adds persistent first-writer reservations for UMP presentation and recovery hashes, aborts provisional claims after strict broadcast failure, keeps confirmed owners protected until successor indexing, retries transient initialization, marks one-time legacy bootstrap, and returns the newest bounded legacy candidates for verified lineage or an operator pin. It also retains the collection-index resilience and opt-in repair controls from the prior candidate. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "Existing topic and lookup identifiers remain unchanged. Production UMP overlays must give UMPTopicManager and the UMP lookup service Mongo-backed stores that use the same database, then roll out before updated wallet clients; the no-argument manager is bounded but intended only for isolated single-process use. The reservation and bootstrap-marker collections are additive and initialize from currently indexed UMP UTXOs; take a MongoDB backup before rollout. Legacy ambiguous rows remain visible and can be resolved with WAB pinning rather than deleted."
+ "summary": "Adds persistent first-writer reservations for UMP presentation and recovery hashes, aborts provisional claims after strict broadcast failure, keeps confirmed owners protected until successor indexing, retries transient initialization, marks one-time legacy bootstrap, and returns the newest bounded legacy candidates for verified lineage or an operator pin. It also retains the collection-index resilience and opt-in repair controls from the prior candidate. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "Existing topic and lookup identifiers remain unchanged. Production UMP overlays must give UMPTopicManager and the UMP lookup service Mongo-backed stores that use the same database, then roll out before updated wallet clients; the no-argument manager is bounded but intended only for isolated single-process use. The reservation and bootstrap-marker collections are additive and initialize from currently indexed UMP UTXOs; take a MongoDB backup before rollout. Legacy ambiguous rows remain visible and can be resolved with WAB pinning rather than deleted. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/paymail",
"publishedVersion": "2.4.2",
"releaseType": "patch",
- "summary": "Modernizes the package contract, hardens DNS, capability discovery, and browser-compatible Paymail behavior, and shares the host application's Express runtime and types for server routers. Removes local copies of externally authored specification documents whose upstream repositories do not assert reusable terms, replacing them with authoritative links. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "Existing Paymail client APIs and protocol semantics are retained. Consumers provide one Express 4.18 or 5 runtime and matching type graph; browser bundles continue to exclude the server router implementation. Consumers of the former bundled Money Button or Tokenized specification documents must follow the authoritative links in docs/specs/README.md. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package."
+ "summary": "Modernizes the package contract, hardens DNS, capability discovery, and browser-compatible Paymail behavior, and shares the host application's Express runtime and types for server routers. Removes local copies of externally authored specification documents whose upstream repositories do not assert reusable terms, replacing them with authoritative links. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "Existing Paymail client APIs and protocol semantics are retained. Consumers provide one Express 4.18 or 5 runtime and matching type graph; browser bundles continue to exclude the server router implementation. Consumers of the former bundled Money Button or Tokenized specification documents must follow the authoritative links in docs/specs/README.md. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/payment-express-middleware",
"publishedVersion": "2.1.1",
"releaseType": "patch",
- "summary": "Standardizes package quality, strengthens payment middleware validation, edge policy, and failure handling, and shares the host application's Express runtime and types. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No consumer migration is required; legacy x-bsv-payment JSON behavior remains supported, and Express 4 and 5 applications use their own peer-provided Express installation. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package."
+ "summary": "Standardizes package quality, strengthens payment middleware validation, edge policy, and failure handling, and shares the host application's Express runtime and types. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No consumer migration is required; legacy x-bsv-payment JSON behavior remains supported, and Express 4 and 5 applications use their own peer-provided Express installation. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/sdk",
"publishedVersion": "2.4.0",
- "releaseType": "patch",
- "summary": "Adds one strict BRC-100 byte-boundary contract and secure React Native bridge validation, and completes incorporated-code compliance with hash-pinned provenance, exact MIT/ISC/BSD/Apache notices, source lineage markers, package payloads, a retained UMD banner, SBOM components, and release enforcement. Removes a broken copied Swagger UI scaffold and screenshot; the first-party OpenAPI source remains available for use with any viewer. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No API migration is required. Historical number-array fast paths and React Native behavior remain compatible. Documentation users should load docs/swagger/swagger.yaml into their preferred viewer instead of using the removed static Swagger UI scaffold. Distributors must keep THIRD_PARTY_NOTICES.md and LICENSES/ with source and browser bundles."
+ "releaseType": "major",
+ "summary": "Adds one strict BRC-100 byte-boundary contract and secure React Native bridge validation, and completes incorporated-code compliance with hash-pinned provenance, exact MIT/ISC/BSD/Apache notices, source lineage markers, package payloads, a retained UMD banner, SBOM components, and release enforcement. Removes a broken copied Swagger UI scaffold and screenshot; the first-party OpenAPI source remains available for use with any viewer. Standardizes first-party author metadata on the current BSV Association name. Moves bounded discovery, advisory network/service/host reputation, cancellation, response limits and failure evidence into the standard LookupResolver for all overlay lookup services. Adds optional verified GlobalKVStore observations and write reconciliation.",
+ "migration": "SDK 3.0.0 changes default lookup behavior. Standard query() now throws LookupUnavailableError for incomplete empty aggregates. queryDetailed()/query$() expose transport status and discoveryComplete; complete does not prove authority or freshness. All standard resolver calls use a 5-second total budget, 2-second host budgets, fresh discovery, 32 candidate hosts and 256 outputs per host; streamed responses are limited to 4 MiB. Legacy reputation records are ignored automatically; atomic v4 storage is configurable. Review packages/sdk/docs/overlay-lookup-migration.md, first-party peer compatibility and service-specific validation before any coordinated migration. The optional KV path additionally requires a trusted chain tracker and authority policy. Existing byte encodings and incorporated-code notice requirements remain unchanged."
},
{
"name": "@bsv/simple",
"publishedVersion": "0.4.1",
"releaseType": "minor",
- "summary": "Adds TerraTestNet, preserves Message Box, token send/receive, and server-adapter transaction bytes across wallet runtimes, and restores the exact scoped MIT notice for the pre-monorepo source alongside Open BSV licensing for later first-party changes. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "Existing overlay configurations and number-array behavior are unchanged. TTN consumers select network teratestnet; all consumers should upgrade to @bsv/sdk 2.4.2 or later. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/."
+ "summary": "Adds TerraTestNet, preserves Message Box, token send/receive, and server-adapter transaction bytes across wallet runtimes, and restores the exact scoped MIT notice for the pre-monorepo source alongside Open BSV licensing for later first-party changes. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "Existing overlay configurations and number-array behavior are unchanged. TTN consumers select network teratestnet; all consumers should upgrade to @bsv/sdk 2.4.2 or later. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/templates",
"publishedVersion": "1.9.1",
"releaseType": "minor",
- "summary": "Adds the R1K1Wallet ScriptTemplate for salted P-256 hardware signing with an independent secp256k1 recovery path, including a checksummed static Runar artifact and browser-safe lazy decompression. Also consolidates MultiPushDrop script construction without changing its output, adds an exact-tarball browser-consumer and bundle-size contract, and points contributors to the canonical root policy. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice.",
- "migration": "No existing consumer migration is required; existing template APIs and generated scripts are unchanged. New R1K1Wallet consumers await lock(), retain each private 32-byte salt, and provide a PIV signer that signs the supplied digest directly without hashing it again. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package."
+ "summary": "Adds the R1K1Wallet ScriptTemplate for salted P-256 hardware signing with an independent secp256k1 recovery path, including a checksummed static Runar artifact and browser-safe lazy decompression. Also consolidates MultiPushDrop script construction without changing its output, adds an exact-tarball browser-consumer and bundle-size contract, and points contributors to the canonical root policy. Retains the hash-pinned pre-uniformization Open BSV License version 4 grant as a scoped continuity notice. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No existing consumer migration is required; existing template APIs and generated scripts are unchanged. New R1K1Wallet consumers await lock(), retain each private 32-byte salt, and provide a PIV signer that signs the supplied digest directly without hashing it again. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/teranode-listener",
"publishedVersion": "1.1.1",
"releaseType": "patch",
- "summary": "Refreshes the compatible libp2p transport, discovery, identification, DHT, peer-ID, ping, and private-network dependency set, and retains the imported ts-p2p source's hash-pinned MIT provenance and notice from its exact source and npm publication. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No consumer migration is required; listener APIs, topics, and network configuration are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package."
+ "summary": "Refreshes the compatible libp2p transport, discovery, identification, DHT, peer-ID, ping, and private-network dependency set, and retains the imported ts-p2p source's hash-pinned MIT provenance and notice from its exact source and npm publication. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No consumer migration is required; listener APIs, topics, and network configuration are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/verifast",
"publishedVersion": "0.3.0",
"releaseType": "patch",
- "summary": "Adds exact-tarball browser, WASM, worker, strict-CSP, streaming-fallback, UMD source-map, and bundle contracts, and now ships hash-pinned BDK, bitcoin-sv, libsecp256k1, Emscripten, musl, LLVM, and Boost notices with a retained UMD banner and SBOM component records. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No consumer migration is required; exports, verification behavior, worker protocols, package paths, and runtime defaults are unchanged. Keep THIRD_PARTY_NOTICES.md and LICENSES/ with every JavaScript and WebAssembly distribution."
+ "summary": "Adds exact-tarball browser, WASM, worker, strict-CSP, streaming-fallback, UMD source-map, and bundle contracts, and now ships hash-pinned BDK, bitcoin-sv, libsecp256k1, Emscripten, musl, LLVM, and Boost notices with a retained UMD banner and SBOM component records. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No consumer migration is required; exports, verification behavior, worker protocols, package paths, and runtime defaults are unchanged. Keep THIRD_PARTY_NOTICES.md and LICENSES/ with every JavaScript and WebAssembly distribution. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/wallet-helper",
"publishedVersion": "0.1.1",
"releaseType": "patch",
- "summary": "Adds strict package contracts and hardens transaction-builder and OP_RETURN validation behavior. Retains the hash-pinned pre-uniformization Open BSV License Version 6 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No consumer migration is required; fluent builder APIs and transaction semantics are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package."
+ "summary": "Adds strict package contracts and hardens transaction-builder and OP_RETURN validation behavior. Retains the hash-pinned pre-uniformization Open BSV License Version 6 grant as a scoped continuity notice. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No consumer migration is required; fluent builder APIs and transaction semantics are unchanged. Distributors must retain THIRD_PARTY_NOTICES.md and LICENSES/ with the package. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/wallet-relay",
"publishedVersion": "0.2.2",
"releaseType": "minor",
- "summary": "Adds the strict package contract and preserves wallet RPC, encrypted relay payloads, signatures, and transaction bytes across number-array, Uint8Array, Buffer, and historical numeric-key JSON runtimes. Standardizes first-party author metadata on the current BSV Association name.",
- "migration": "No wallet RPC migration is required; upgrade to @bsv/sdk 2.4.1 or later. Existing relay sessions and number arrays remain valid, and host applications continue to provide their matching Express runtime and type graph."
+ "summary": "Adds the strict package contract and preserves wallet RPC, encrypted relay payloads, signatures, and transaction bytes across number-array, Uint8Array, Buffer, and historical numeric-key JSON runtimes. Standardizes first-party author metadata on the current BSV Association name. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "No wallet RPC migration is required; upgrade to @bsv/sdk 2.4.1 or later. Existing relay sessions and number arrays remain valid, and host applications continue to provide their matching Express runtime and type graph. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/wallet-toolbox",
"publishedVersion": "2.10.4",
"releaseType": "minor",
- "summary": "Adds the built-in BRC-177 noSend-expiry reference implementation with exact prefunding, durable pre-signed reclaim, atomic active-storage monitoring, backoff-controlled recovery, cross-device lifecycle synchronization, and proof-finalized race handling. Adds opt-in prepared BEEF storage for Knex-backed normal createAction funding: verified, checksummed proof closures are persisted after foreground completion and reused on later hits, while broad lookups, misses, and cache failures retain the canonical path. Reads, writes, bounded queueing, and gradual backfill default off; reorganizations stale derived rows and fence in-flight cross-process writes with a database proof epoch. Also adds the optional semantic handleRequest hook for BRC-98/99/111 permission modules, retains BRC-95/BRC-100 compatibility and stable bounded pagination, removes the obsolete JSight application bundle, and preserves the earlier Open BSV grant.",
- "migration": "Existing actions, ordinary noSend calls, and permission modules require no migration. To use BRC-177, migrate every active Knex store before serving requests and run the default Wallet Toolbox monitor; IndexedDB upgrades automatically to schema version 5. Upgrade signer, active storage service, and remote monitor together to 2.11.0 or later; older remote storage is rejected before prefunding. The Knex migration also adds rebuildable prepared-BEEF and proof-epoch tables with every COOK control disabled. Validate the migration on MySQL before release and the cross-process epoch fence on non-production PXC before enabling writes. Roll out writes before reads, use backfill only after database review, and disable all three flags to roll back. Delete derived prepared rows before downgrading to code that cannot advance the epoch. Semantic modules may add handleRequest; hosts installing @bsv/ecpm-permission-module register it under the ecpm scheme. Canonical AtomicBEEF and number-array behavior are unchanged; use @bsv/sdk 2.4.2 or later, use docs/storage.md instead of the removed JSight export, and retain THIRD_PARTY_NOTICES.md and LICENSES/."
+ "summary": "Adds the built-in BRC-177 noSend-expiry reference implementation with exact prefunding, durable pre-signed reclaim, atomic active-storage monitoring, backoff-controlled recovery, cross-device lifecycle synchronization, and proof-finalized race handling. Adds opt-in prepared BEEF storage for Knex-backed normal createAction funding: verified, checksummed proof closures are persisted after foreground completion and reused on later hits, while broad lookups, misses, and cache failures retain the canonical path. Reads, writes, bounded queueing, and gradual backfill default off; reorganizations stale derived rows and fence in-flight cross-process writes with a database proof epoch. Also adds the optional semantic handleRequest hook for BRC-98/99/111 permission modules, retains BRC-95/BRC-100 compatibility and stable bounded pagination, removes the obsolete JSight application bundle, and preserves the earlier Open BSV grant. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "Existing actions, ordinary noSend calls, and permission modules require no migration. To use BRC-177, migrate every active Knex store before serving requests and run the default Wallet Toolbox monitor; IndexedDB upgrades automatically to schema version 5. Upgrade signer, active storage service, and remote monitor together to 2.11.0 or later; older remote storage is rejected before prefunding. The Knex migration also adds rebuildable prepared-BEEF and proof-epoch tables with every COOK control disabled. Validate the migration on MySQL before release and the cross-process epoch fence on non-production PXC before enabling writes. Roll out writes before reads, use backfill only after database review, and disable all three flags to roll back. Delete derived prepared rows before downgrading to code that cannot advance the epoch. Semantic modules may add handleRequest; hosts installing @bsv/ecpm-permission-module register it under the ecpm scheme. Canonical AtomicBEEF and number-array behavior are unchanged; use @bsv/sdk 2.4.2 or later, use docs/storage.md instead of the removed JSight export, and retain THIRD_PARTY_NOTICES.md and LICENSES/. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/wallet-toolbox-client",
"publishedVersion": "2.10.4",
"releaseType": "minor",
- "summary": "Adds the built-in browser BRC-177 noSend-expiry signer, IndexedDB schema version 5 lifecycle state, remote storage capability negotiation, default monitor coordination, and the optional semantic handleRequest hook. Carries the shared prepared-BEEF-aware createAction contract while IndexedDB remains canonical-only; compatible remote Knex providers can enable COOK independently. Retains transformation modules, BRC-100 wire compatibility, stable IndexedDB totals, current browser compatibility fixes, and earlier Open BSV grants.",
- "migration": "Existing browser actions and permission modules require no migration; IndexedDB upgrades automatically. To use BRC-177 with remote storage, upgrade the active storage service and its default monitor to Wallet Toolbox 2.11.0 or later before upgrading clients; an older server is rejected before prefunding. Prepared BEEF persistence and rollout controls apply only to the full package's Knex provider, so IndexedDB and remote clients require no COOK configuration. Semantic modules may add handleRequest; installing @bsv/ecpm-permission-module requires registration under the ecpm scheme. Browser exports, wire types, canonical AtomicBEEF behavior, and pagination contracts are unchanged; use @bsv/sdk 2.4.2 or later and retain THIRD_PARTY_NOTICES.md and LICENSES/."
+ "summary": "Adds the built-in browser BRC-177 noSend-expiry signer, IndexedDB schema version 5 lifecycle state, remote storage capability negotiation, default monitor coordination, and the optional semantic handleRequest hook. Carries the shared prepared-BEEF-aware createAction contract while IndexedDB remains canonical-only; compatible remote Knex providers can enable COOK independently. Retains transformation modules, BRC-100 wire compatibility, stable IndexedDB totals, current browser compatibility fixes, and earlier Open BSV grants. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "Existing browser actions and permission modules require no migration; IndexedDB upgrades automatically. To use BRC-177 with remote storage, upgrade the active storage service and its default monitor to Wallet Toolbox 2.11.0 or later before upgrading clients; an older server is rejected before prefunding. Prepared BEEF persistence and rollout controls apply only to the full package's Knex provider, so IndexedDB and remote clients require no COOK configuration. Semantic modules may add handleRequest; installing @bsv/ecpm-permission-module requires registration under the ecpm scheme. Browser exports, wire types, canonical AtomicBEEF behavior, and pagination contracts are unchanged; use @bsv/sdk 2.4.2 or later and retain THIRD_PARTY_NOTICES.md and LICENSES/. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "@bsv/wallet-toolbox-mobile",
"publishedVersion": "2.10.4",
"releaseType": "minor",
- "summary": "Adds the built-in mobile BRC-177 noSend-expiry signer, remote storage capability negotiation, default-monitor ownership coordination across restarts and devices, and the optional semantic handleRequest hook. Carries the shared prepared-BEEF-aware createAction contract while mobile storage remains canonical-only; compatible remote Knex providers can enable COOK independently. Retains transformation modules, BRC-100 wire compatibility, current mobile compatibility fixes, and earlier Open BSV grants.",
- "migration": "Existing mobile actions and permission modules require no migration. To use BRC-177, migrate and upgrade the active remote storage service and its default monitor to Wallet Toolbox 2.11.0 or later before upgrading clients; an older server is rejected before prefunding. Prepared BEEF persistence and rollout controls apply only to the full package's Knex provider, so mobile remote clients require no COOK configuration. Semantic modules may add handleRequest without changing the Wallet interface. React Native exports, wire types, and canonical AtomicBEEF behavior are unchanged; use @bsv/sdk 2.4.2 or later and retain THIRD_PARTY_NOTICES.md and LICENSES/."
+ "summary": "Adds the built-in mobile BRC-177 noSend-expiry signer, remote storage capability negotiation, default-monitor ownership coordination across restarts and devices, and the optional semantic handleRequest hook. Carries the shared prepared-BEEF-aware createAction contract while mobile storage remains canonical-only; compatible remote Knex providers can enable COOK independently. Retains transformation modules, BRC-100 wire compatibility, current mobile compatibility fixes, and earlier Open BSV grants. Fixes clean installs with SDK 3 by accepting its peer version alongside the existing SDK 2 range.",
+ "migration": "Existing mobile actions and permission modules require no migration. To use BRC-177, migrate and upgrade the active remote storage service and its default monitor to Wallet Toolbox 2.11.0 or later before upgrading clients; an older server is rejected before prefunding. Prepared BEEF persistence and rollout controls apply only to the full package's Knex provider, so mobile remote clients require no COOK configuration. Semantic modules may add handleRequest without changing the Wallet interface. React Native exports, wire types, and canonical AtomicBEEF behavior are unchanged; use @bsv/sdk 2.4.2 or later and retain THIRD_PARTY_NOTICES.md and LICENSES/. SDK 3 is supported alongside the existing SDK 2 peer range. Applications adopting SDK 3 must follow packages/sdk/docs/overlay-lookup-migration.md for changed lookup failure, deadline and persistence behavior; existing SDK 2 installations remain supported."
},
{
"name": "create-bsv-app",
diff --git a/governance/repository-health/baselines.json b/governance/repository-health/baselines.json
index 7b141dff3..f3172ed21 100644
--- a/governance/repository-health/baselines.json
+++ b/governance/repository-health/baselines.json
@@ -297,39 +297,39 @@
]
},
"publicPackageVersions": {
- "@bsv/chirp": "0.1.1",
- "@bsv/lch": "0.1.0",
+ "@bsv/chirp": "0.1.2",
+ "@bsv/lch": "0.1.1",
"@bsv/air-gap": "0.1.2",
- "@bsv/amountinator": "2.1.5",
- "@bsv/wallet-helper": "0.1.7",
+ "@bsv/amountinator": "2.1.6",
+ "@bsv/wallet-helper": "0.1.8",
"create-bsv-app": "1.1.1",
- "@bsv/did": "0.2.5",
- "@bsv/did-client": "1.3.1",
- "@bsv/fund-wallet": "1.4.4",
- "@bsv/simple": "0.5.2",
- "@bsv/templates": "1.10.1",
- "@bsv/authsocket": "2.1.7",
- "@bsv/authsocket-client": "2.1.6",
- "@bsv/message-box-client": "2.4.2",
- "@bsv/paymail": "2.4.7",
- "@bsv/402-pay": "0.2.5",
- "@bsv/auth": "0.1.4",
- "@bsv/auth-express-middleware": "2.2.3",
- "@bsv/payment-express-middleware": "2.1.6",
- "@bsv/teranode-listener": "1.1.5",
- "@bsv/gasp": "1.3.6",
- "@bsv/overlay": "2.3.1",
- "@bsv/overlay-discovery-services": "2.2.1",
- "@bsv/overlay-express": "2.6.1",
- "@bsv/overlay-topics": "1.7.1",
- "@bsv/sdk": "2.4.2",
- "@bsv/verifast": "0.3.5",
- "@bsv/btms": "1.2.2",
- "@bsv/btms-permission-module": "1.1.4",
- "@bsv/ecpm-permission-module": "0.1.0",
- "@bsv/wallet-relay": "0.3.6",
- "@bsv/wallet-toolbox-client": "2.11.0",
- "@bsv/wallet-toolbox-mobile": "2.11.0",
- "@bsv/wallet-toolbox": "2.11.0"
+ "@bsv/did": "0.2.6",
+ "@bsv/did-client": "1.3.2",
+ "@bsv/fund-wallet": "1.4.5",
+ "@bsv/simple": "0.5.3",
+ "@bsv/templates": "1.10.2",
+ "@bsv/authsocket": "2.1.8",
+ "@bsv/authsocket-client": "2.1.7",
+ "@bsv/message-box-client": "2.4.3",
+ "@bsv/paymail": "2.4.8",
+ "@bsv/402-pay": "0.2.6",
+ "@bsv/auth": "0.1.5",
+ "@bsv/auth-express-middleware": "2.2.4",
+ "@bsv/payment-express-middleware": "2.1.7",
+ "@bsv/teranode-listener": "1.1.6",
+ "@bsv/gasp": "1.3.7",
+ "@bsv/overlay": "2.3.2",
+ "@bsv/overlay-discovery-services": "2.2.2",
+ "@bsv/overlay-express": "2.6.2",
+ "@bsv/overlay-topics": "1.7.2",
+ "@bsv/sdk": "3.0.0",
+ "@bsv/verifast": "0.3.6",
+ "@bsv/btms": "1.2.3",
+ "@bsv/btms-permission-module": "1.1.5",
+ "@bsv/ecpm-permission-module": "0.1.1",
+ "@bsv/wallet-relay": "0.3.7",
+ "@bsv/wallet-toolbox-client": "2.11.1",
+ "@bsv/wallet-toolbox-mobile": "2.11.1",
+ "@bsv/wallet-toolbox": "2.11.1"
}
}
diff --git a/governance/repository-health/exceptions.json b/governance/repository-health/exceptions.json
index d1e09124d..7feaa45f2 100644
--- a/governance/repository-health/exceptions.json
+++ b/governance/repository-health/exceptions.json
@@ -132,16 +132,18 @@
"category": "override",
"target": "pnpm-workspace.yaml override typed-rest-client@2.3.1>qs",
"owner": "ts-stack-maintainers",
- "reason": "The workspace uses Stryker 9.6.1, and the current Stryker 10.0.0 release still depends on typed-rest-client ~2.3.0. typed-rest-client 2.3.1 pins vulnerable qs 6.15.1 exactly. GHSA-q8mj-m7cp-5q26 is fixed in qs 6.15.2 and later, so a parent-scoped substitution to 6.15.3 remains the narrowest durable remediation. The previous lock-only selection was lost when an unrelated dependency change regenerated the graph.",
+ "reason": "The workspace uses Stryker 9.6.1, and Stryker 10.0.0 still depends on typed-rest-client ~2.3.0. typed-rest-client 2.3.1 pins vulnerable qs 6.15.1 exactly. The parent-scoped qs 6.16.0 replacement preserves the qs 6 API and fixes GHSA-q8mj-m7cp-5q26, GHSA-x5fp-wj9c-mxmx and GHSA-4mjr-xmp4-gh2g. A lock-only selection cannot survive regeneration of the exact parent constraint.",
"evidence": [
"pnpm-workspace.yaml#overrides",
"https://github.com/advisories/GHSA-q8mj-m7cp-5q26",
"https://www.npmjs.com/package/typed-rest-client/v/2.3.1?activeTab=dependencies",
- "https://github.com/bsv-blockchain/ts-stack/issues/324"
+ "https://github.com/bsv-blockchain/ts-stack/issues/324",
+ "https://github.com/advisories/GHSA-x5fp-wj9c-mxmx",
+ "https://github.com/advisories/GHSA-4mjr-xmp4-gh2g"
],
"created": "2026-07-27",
"reviewBy": "2026-09-30",
- "removeWhen": "Remove when Stryker no longer depends on typed-rest-client 2.3.1 or a supported typed-rest-client release natively depends on qs 6.15.2 or newer, then regenerate the lock and rerun the complete mutation campaign."
+ "removeWhen": "Remove when Stryker no longer depends on typed-rest-client 2.3.1 or a supported typed-rest-client release natively depends on qs 6.16.0 or newer, then regenerate the lock and rerun the complete mutation campaign."
},
{
"id": "nanoid-postcss-advisory-override",
@@ -309,6 +311,23 @@
"created": "2026-07-28",
"reviewBy": "2026-10-26",
"removeWhen": "Remove when the analyzer exempts exhaustive protocol dispatch or a separately reviewed generated opcode table improves auditability and passes every script vector, differential, mutation, fuzz, transaction, browser, and packed-consumer check."
+ },
+ {
+ "id": "remark-mdx-frontmatter-toml-override",
+ "category": "override",
+ "target": "pnpm-workspace.yaml override remark-mdx-frontmatter@5.2.0>toml",
+ "owner": "ts-stack-maintainers",
+ "reason": "The latest remark-mdx-frontmatter 5.2.0 still requests toml ^3.0.0. No supported plugin update resolves the recursion and prototype-pollution advisories. The parent-scoped toml 4.2.0 replacement retains its parse() API and supports Node >=20, within the workspace Node >=24.11 contract. The MDX frontmatter regression and complete docs build exercise this build-only dependency.",
+ "evidence": [
+ "pnpm-workspace.yaml#overrides",
+ "https://github.com/advisories/GHSA-82x6-q7mm-w9cf",
+ "https://github.com/advisories/GHSA-v5mp-jgw5-2x6j",
+ "https://www.npmjs.com/package/remark-mdx-frontmatter/v/5.2.0?activeTab=dependencies",
+ "docs-site/scripts/frontmatter-parser.test.mjs"
+ ],
+ "created": "2026-09-04",
+ "reviewBy": "2026-10-04",
+ "removeWhen": "Remove when the supported frontmatter plugin naturally resolves toml >=4.2.0, then regenerate the frozen lock and rerun frontmatter tests, the docs build and security audit."
}
]
}
diff --git a/packages/content/lch/package.json b/packages/content/lch/package.json
index a7e54e023..30ba757e6 100644
--- a/packages/content/lch/package.json
+++ b/packages/content/lch/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/lch",
- "version": "0.1.0",
+ "version": "0.1.1",
"description": "BRC-170 Licensed Content Header reference implementation",
"author": "BSV Association",
"license": "SEE LICENSE IN LICENSE.txt",
@@ -46,7 +46,7 @@
},
"peerDependencies": {
"@bsv/chirp": "^0.1.0",
- "@bsv/sdk": "^2.4.1"
+ "@bsv/sdk": "^3.0.0 || ^2.4.1"
},
"peerDependenciesMeta": {
"@bsv/chirp": {
diff --git a/packages/helpers/amountinator/package.json b/packages/helpers/amountinator/package.json
index d4887f2d1..af25601b6 100644
--- a/packages/helpers/amountinator/package.json
+++ b/packages/helpers/amountinator/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/amountinator",
- "version": "2.1.5",
+ "version": "2.1.6",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -79,7 +79,7 @@
"wallet"
],
"peerDependencies": {
- "@bsv/sdk": "^2.1.6"
+ "@bsv/sdk": "^3.0.0 || ^2.1.6"
},
"peerDependenciesMeta": {
"@bsv/sdk": {
diff --git a/packages/helpers/bsv-wallet-helper/package.json b/packages/helpers/bsv-wallet-helper/package.json
index 1ca6f0d9c..1db702bf9 100644
--- a/packages/helpers/bsv-wallet-helper/package.json
+++ b/packages/helpers/bsv-wallet-helper/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/wallet-helper",
- "version": "0.1.7",
+ "version": "0.1.8",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -78,7 +78,7 @@
},
"homepage": "https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/bsv-wallet-helper#readme",
"peerDependencies": {
- "@bsv/sdk": "^2.1.6"
+ "@bsv/sdk": "^3.0.0 || ^2.1.6"
},
"peerDependenciesMeta": {
"@bsv/sdk": {
diff --git a/packages/helpers/did-client/package.json b/packages/helpers/did-client/package.json
index 59cdf6549..b6c78f778 100644
--- a/packages/helpers/did-client/package.json
+++ b/packages/helpers/did-client/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/did-client",
- "version": "1.3.1",
+ "version": "1.3.2",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -97,7 +97,7 @@
"decentralized-identifier"
],
"peerDependencies": {
- "@bsv/sdk": "^2.4.0"
+ "@bsv/sdk": "^3.0.0 || ^2.4.0"
},
"peerDependenciesMeta": {
"@bsv/sdk": {
diff --git a/packages/helpers/did/package.json b/packages/helpers/did/package.json
index 6693f6df3..084384222 100644
--- a/packages/helpers/did/package.json
+++ b/packages/helpers/did/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/did",
- "version": "0.2.5",
+ "version": "0.2.6",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -89,7 +89,7 @@
},
"homepage": "https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/did#readme",
"peerDependencies": {
- "@bsv/sdk": "^2.1.6"
+ "@bsv/sdk": "^3.0.0 || ^2.1.6"
},
"peerDependenciesMeta": {
"@bsv/sdk": {
diff --git a/packages/helpers/fund-wallet/package.json b/packages/helpers/fund-wallet/package.json
index 5bae554a0..c53d084b0 100644
--- a/packages/helpers/fund-wallet/package.json
+++ b/packages/helpers/fund-wallet/package.json
@@ -1,7 +1,7 @@
{
"name": "@bsv/fund-wallet",
"private": false,
- "version": "1.4.4",
+ "version": "1.4.5",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -69,7 +69,7 @@
},
"homepage": "https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/fund-wallet#readme",
"peerDependencies": {
- "@bsv/sdk": "^2.1.6"
+ "@bsv/sdk": "^3.0.0 || ^2.1.6"
},
"peerDependenciesMeta": {
"@bsv/sdk": {
diff --git a/packages/helpers/simple/package.json b/packages/helpers/simple/package.json
index 9dd24ee6b..9b64538ba 100644
--- a/packages/helpers/simple/package.json
+++ b/packages/helpers/simple/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/simple",
- "version": "0.5.2",
+ "version": "0.5.3",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -117,7 +117,7 @@
},
"homepage": "https://github.com/bsv-blockchain/ts-stack/tree/main/packages/helpers/simple#readme",
"peerDependencies": {
- "@bsv/sdk": "^2.4.1"
+ "@bsv/sdk": "^3.0.0 || ^2.4.1"
},
"peerDependenciesMeta": {
"@bsv/sdk": {
diff --git a/packages/helpers/ts-templates/CHANGELOG.md b/packages/helpers/ts-templates/CHANGELOG.md
index 86d7f0691..022631f6f 100644
--- a/packages/helpers/ts-templates/CHANGELOG.md
+++ b/packages/helpers/ts-templates/CHANGELOG.md
@@ -10,6 +10,10 @@ All notable changes to this project will be documented in this file. The format
## [Unreleased]
+- Accept SDK 3 alongside the existing SDK 2 peer range. See the shared
+ [SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+ when upgrading the application SDK.
+
### Added
- `R1K1Wallet`, a static Runar contract template with a salted P-256 hardware
diff --git a/packages/helpers/ts-templates/package.json b/packages/helpers/ts-templates/package.json
index 862ce7823..1f56b30e4 100644
--- a/packages/helpers/ts-templates/package.json
+++ b/packages/helpers/ts-templates/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/templates",
- "version": "1.10.1",
+ "version": "1.10.2",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -89,7 +89,7 @@
"typescript": "npm:@typescript/typescript6@6.0.2"
},
"peerDependencies": {
- "@bsv/sdk": "^2.1.6"
+ "@bsv/sdk": "^3.0.0 || ^2.1.6"
},
"peerDependenciesMeta": {
"@bsv/sdk": {
diff --git a/packages/messaging/authsocket-client/package.json b/packages/messaging/authsocket-client/package.json
index b3a8b66b2..b99aa70b3 100644
--- a/packages/messaging/authsocket-client/package.json
+++ b/packages/messaging/authsocket-client/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/authsocket-client",
- "version": "2.1.6",
+ "version": "2.1.7",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -87,7 +87,7 @@
"webpack-cli": "^7.2.2"
},
"peerDependencies": {
- "@bsv/sdk": "^2.4.1"
+ "@bsv/sdk": "^3.0.0 || ^2.4.1"
},
"peerDependenciesMeta": {
"@bsv/sdk": {
diff --git a/packages/messaging/authsocket/package.json b/packages/messaging/authsocket/package.json
index 140f66c32..da4f9aff6 100644
--- a/packages/messaging/authsocket/package.json
+++ b/packages/messaging/authsocket/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/authsocket",
- "version": "2.1.7",
+ "version": "2.1.8",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -83,7 +83,7 @@
"typescript": "npm:@typescript/typescript6@6.0.2"
},
"peerDependencies": {
- "@bsv/sdk": "^2.4.1"
+ "@bsv/sdk": "^3.0.0 || ^2.4.1"
},
"peerDependenciesMeta": {
"@bsv/sdk": {
diff --git a/packages/messaging/message-box-client/CHANGELOG.md b/packages/messaging/message-box-client/CHANGELOG.md
index ddf8763fb..b95df64db 100644
--- a/packages/messaging/message-box-client/CHANGELOG.md
+++ b/packages/messaging/message-box-client/CHANGELOG.md
@@ -13,6 +13,10 @@ All notable changes to this project will be documented in this file. The format
## [Unreleased]
+- Accept SDK 3 alongside the existing SDK 2 peer range. See the shared
+ [SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+ when upgrading the application SDK.
+
### Added
- Added the `teratestnet` overlay preset. TTN clients must provide an explicit
diff --git a/packages/messaging/message-box-client/package.json b/packages/messaging/message-box-client/package.json
index 26a436c15..350538c8f 100644
--- a/packages/messaging/message-box-client/package.json
+++ b/packages/messaging/message-box-client/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/message-box-client",
- "version": "2.4.2",
+ "version": "2.4.3",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -90,7 +90,7 @@
"@bsv/authsocket-client": "workspace:^"
},
"peerDependencies": {
- "@bsv/sdk": "^2.4.1"
+ "@bsv/sdk": "^3.0.0 || ^2.4.1"
},
"peerDependenciesMeta": {
"@bsv/sdk": {
diff --git a/packages/messaging/ts-paymail/CHANGELOG.md b/packages/messaging/ts-paymail/CHANGELOG.md
index 87da07229..8eaf63a7b 100644
--- a/packages/messaging/ts-paymail/CHANGELOG.md
+++ b/packages/messaging/ts-paymail/CHANGELOG.md
@@ -11,23 +11,33 @@ All notable changes to this project will be documented in this file. The format
## [Unreleased]
+- Accept SDK 3 alongside the existing SDK 2 peer range. See the shared
+ [SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+ when upgrading the application SDK.
+
### Added
+
- (Include new features or significant user-visible enhancements here.)
### Changed
+
- Ship the Express declaration dependency needed by strict TypeScript
consumers of the Paymail router API.
### Deprecated
+
- (List features that are in the process of being phased out or replaced.)
### Removed
+
- (Indicate features or capabilities that were taken out of the project.)
### Fixed
+
- (Document bugs that were fixed since the last release.)
### Security
+
- (Notify of any improvements related to security vulnerabilities or potential risks.)
---
@@ -35,6 +45,7 @@ All notable changes to this project will be documented in this file. The format
## [1.0.1] - 2024-08-05
### Fixed
+
- Allow 'note' parameter in paymail responses to be null as well as '' and undefined within Joi.
---
@@ -42,20 +53,23 @@ All notable changes to this project will be documented in this file. The format
## [1.0.0] - 2024-07-22
### Added
+
- (Include new features or significant user-visible enhancements here.)
### Changed
+
- Paymail signatures in both Client and Server modules - such that it conforms to existing paymail implementations. They use BS< over the txid not just the txid itself as the msg.
-ts-paymail previously used a compact signature over sha256(txid)
-go-paymail implementation uses a compact signature over sha256d(Bitcoin Signed Message:\n${txid})
-ts-paymail will now conform to go-paymail as this is in line with original documentation hosted by a third party at paymail's launch.
-Few people enforce these signatures so no one has noticed until now.
+ ts-paymail previously used a compact signature over sha256(txid)
+ go-paymail implementation uses a compact signature over sha256d(Bitcoin Signed Message:\n${txid})
+ ts-paymail will now conform to go-paymail as this is in line with original documentation hosted by a third party at paymail's launch.
+ Few people enforce these signatures so no one has noticed until now.
---
## [0.3.0] - YYYY-MM-DD
### Added
+
- Initial release
---
@@ -68,22 +82,22 @@ Replace `X.X.X` with the new version number and `YYYY-MM-DD` with the release da
## [X.X.X] - YYYY-MM-DD
### Added
--
+-
### Changed
--
+-
### Deprecated
--
+-
### Removed
--
+-
### Fixed
--
+-
### Security
--
+-
```
Use this template as the starting point for each new version. Always update the "Unreleased" section with changes as they're implemented, and then move them under the new version header when that version is released.
diff --git a/packages/messaging/ts-paymail/package.json b/packages/messaging/ts-paymail/package.json
index aec8d55e9..39f02270f 100644
--- a/packages/messaging/ts-paymail/package.json
+++ b/packages/messaging/ts-paymail/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/paymail",
- "version": "2.4.7",
+ "version": "2.4.8",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -210,7 +210,7 @@
"typescript": "npm:@typescript/typescript6@6.0.2"
},
"peerDependencies": {
- "@bsv/sdk": "^2.1.6",
+ "@bsv/sdk": "^3.0.0 || ^2.1.6",
"@types/express": ">=4.17.0 <6",
"express": ">=4.18.0 <6"
},
diff --git a/packages/middleware/402-pay/CHANGELOG.md b/packages/middleware/402-pay/CHANGELOG.md
index b33436906..a979b4146 100644
--- a/packages/middleware/402-pay/CHANGELOG.md
+++ b/packages/middleware/402-pay/CHANGELOG.md
@@ -1,8 +1,15 @@
# Changelog
+## 0.2.6
+
+- Accept SDK 3 alongside the existing SDK 2 peer range. See the shared
+ [SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+ when upgrading the application SDK.
+
## [0.1.0] - 2026-04-04
### Added
+
- `create402Fetch` client wrapper — automatically handles 402 responses, constructs BRC-29 payments, and retries with `x-bsv-nonce`/`x-bsv-time` headers
- `createPaymentMiddleware` Express-compatible server middleware — validates payment headers, enforces 30s freshness window, internalizes payment via wallet
- `validatePayment` and `send402` server primitives for framework-agnostic use
diff --git a/packages/middleware/402-pay/README.md b/packages/middleware/402-pay/README.md
index 953e3cbb9..976c1cf1a 100644
--- a/packages/middleware/402-pay/README.md
+++ b/packages/middleware/402-pay/README.md
@@ -8,7 +8,7 @@
npm install @bsv/402-pay
```
-Peer dependency: `@bsv/sdk ^2.1.6`. The package supports Node.js 22+ and browser
+Peer dependency: `@bsv/sdk ^3.0.0 || ^2.1.6`. The package supports Node.js 22+ and browser
consumers, with matching ESM and CommonJS entry points and declarations for the
package root, `/server`, and `/client`.
@@ -22,13 +22,16 @@ import { createPaymentMiddleware } from '@bsv/402-pay/server'
const app = express()
-app.use('/articles/:slug', createPaymentMiddleware({
- wallet, // WalletInterface from @bsv/sdk
- calculatePrice: (path) => {
- // Return price in satoshis, or undefined to skip payment
- return 100
- }
-}))
+app.use(
+ '/articles/:slug',
+ createPaymentMiddleware({
+ wallet, // WalletInterface from @bsv/sdk
+ calculatePrice: path => {
+ // Return price in satoshis, or undefined to skip payment
+ return 100
+ }
+ })
+)
app.get('/articles/:slug', (req, res) => {
// req.payment is set if payment was accepted
@@ -82,20 +85,20 @@ always sent to the service.
### Server → Client
-| Header | Description |
-|---|---|
-| `x-bsv-sats` | Required satoshi amount |
+| Header | Description |
+| -------------- | -------------------------- |
+| `x-bsv-sats` | Required satoshi amount |
| `x-bsv-server` | Server identity public key |
### Client → Server
-| Header | Description |
-|---|---|
-| `x-bsv-beef` | Base64-encoded BEEF transaction |
-| `x-bsv-sender` | Client identity public key |
-| `x-bsv-nonce` | Base64-encoded derivation prefix |
-| `x-bsv-time` | Unix millisecond timestamp |
-| `x-bsv-vout` | Payment output index |
+| Header | Description |
+| -------------- | -------------------------------- |
+| `x-bsv-beef` | Base64-encoded BEEF transaction |
+| `x-bsv-sender` | Client identity public key |
+| `x-bsv-nonce` | Base64-encoded derivation prefix |
+| `x-bsv-time` | Unix millisecond timestamp |
+| `x-bsv-vout` | Payment output index |
## Security and Replay Protection
diff --git a/packages/middleware/402-pay/package.json b/packages/middleware/402-pay/package.json
index e5409a83d..ab73c470b 100644
--- a/packages/middleware/402-pay/package.json
+++ b/packages/middleware/402-pay/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/402-pay",
- "version": "0.2.5",
+ "version": "0.2.6",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -91,7 +91,7 @@
"author": "BSV Association",
"license": "SEE LICENSE IN LICENSE.txt",
"peerDependencies": {
- "@bsv/sdk": "^2.1.6"
+ "@bsv/sdk": "^3.0.0 || ^2.1.6"
},
"devDependencies": {
"@bsv/sdk": "workspace:^",
diff --git a/packages/middleware/auth-express-middleware/package.json b/packages/middleware/auth-express-middleware/package.json
index e855f72d9..f90c1f5e9 100644
--- a/packages/middleware/auth-express-middleware/package.json
+++ b/packages/middleware/auth-express-middleware/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/auth-express-middleware",
- "version": "2.2.3",
+ "version": "2.2.4",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -86,7 +86,7 @@
"mime-types": "^3.0.2"
},
"peerDependencies": {
- "@bsv/sdk": "^2.4.1",
+ "@bsv/sdk": "^3.0.0 || ^2.4.1",
"@types/express": ">=4.17.0 <6",
"express": ">=4.18.0 <6"
},
diff --git a/packages/middleware/auth/package.json b/packages/middleware/auth/package.json
index 8c7a04a7f..52dd3e9ab 100644
--- a/packages/middleware/auth/package.json
+++ b/packages/middleware/auth/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/auth",
- "version": "0.1.4",
+ "version": "0.1.5",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -74,7 +74,7 @@
},
"homepage": "https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/auth#readme",
"peerDependencies": {
- "@bsv/sdk": "^2.1.6"
+ "@bsv/sdk": "^3.0.0 || ^2.1.6"
},
"peerDependenciesMeta": {
"@bsv/sdk": {
diff --git a/packages/middleware/payment-express-middleware/package.json b/packages/middleware/payment-express-middleware/package.json
index 24de10ec9..9ab4e7cc9 100644
--- a/packages/middleware/payment-express-middleware/package.json
+++ b/packages/middleware/payment-express-middleware/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/payment-express-middleware",
- "version": "2.1.6",
+ "version": "2.1.7",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -83,7 +83,7 @@
},
"homepage": "https://github.com/bsv-blockchain/ts-stack/tree/main/packages/middleware/payment-express-middleware#readme",
"peerDependencies": {
- "@bsv/sdk": "^2.1.6",
+ "@bsv/sdk": "^3.0.0 || ^2.1.6",
"@types/express": ">=4.17.0 <6",
"express": ">=4.18.0 <6"
},
diff --git a/packages/network/chirp/package.json b/packages/network/chirp/package.json
index 8fb8517af..a9ca70488 100644
--- a/packages/network/chirp/package.json
+++ b/packages/network/chirp/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/chirp",
- "version": "0.1.1",
+ "version": "0.1.2",
"description": "BRC-167 Chunked, Hashed, Interleaved Resolution Protocol reference implementation",
"author": "BSV Association",
"license": "SEE LICENSE IN LICENSE.txt",
@@ -55,7 +55,7 @@
"prepublishOnly": "pnpm build"
},
"peerDependencies": {
- "@bsv/sdk": "^2.4.1"
+ "@bsv/sdk": "^3.0.0 || ^2.4.1"
},
"devDependencies": {
"@bsv/sdk": "workspace:^",
diff --git a/packages/network/ts-p2p/CHANGELOG.md b/packages/network/ts-p2p/CHANGELOG.md
index e838152c1..dbd22aa52 100644
--- a/packages/network/ts-p2p/CHANGELOG.md
+++ b/packages/network/ts-p2p/CHANGELOG.md
@@ -9,23 +9,33 @@ All notable changes to this project will be documented in this file. The format
## [Unreleased]
+- Accept SDK 3 alongside the existing SDK 2 peer range. See the shared
+ [SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+ when upgrading the application SDK.
+
### Added
+
- Optional typed decoder for the two-layer JSON wire format. New `decodeMessage()` / `tryDecodeMessage()` helpers and topic payload interfaces (`MessageEnvelope`, `BlockMessage`, `SubtreeMessage`, `RejectedTxMessage`, `NodeStatusMessage`, `FeePolicy`). Set `decodeMessages: true` on the listener to receive a typed `DecodedMessage` instead of raw `Uint8Array`. Backward compatible (defaults to off).
### Changed
+
- Refresh the compatible libp2p transport, discovery, identification, DHT,
peer-ID, ping, and private-network maintenance releases.
### Deprecated
+
- (List features that are in the process of being phased out or replaced.)
### Removed
+
- (Indicate features or capabilities that were taken out of the project.)
### Fixed
+
- (Document bugs that were fixed since the last release.)
### Security
+
- (Notify of any improvements related to security vulnerabilities or potential risks.)
---
@@ -33,6 +43,7 @@ All notable changes to this project will be documented in this file. The format
## [1.0.0] - YYYY-MM-DD
### Added
+
- Initial release
---
@@ -45,22 +56,22 @@ Replace `X.X.X` with the new version number and `YYYY-MM-DD` with the release da
## [X.X.X] - YYYY-MM-DD
### Added
--
+-
### Changed
--
+-
### Deprecated
--
+-
### Removed
--
+-
### Fixed
--
+-
### Security
--
+-
```
Use this template as the starting point for each new version. Always update the "Unreleased" section with changes as they're implemented, and then move them under the new version header when that version is released.
diff --git a/packages/network/ts-p2p/package.json b/packages/network/ts-p2p/package.json
index 773c98481..7f04bed1a 100644
--- a/packages/network/ts-p2p/package.json
+++ b/packages/network/ts-p2p/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/teranode-listener",
- "version": "1.1.5",
+ "version": "1.1.6",
"sideEffects": false,
"publishConfig": {
"access": "public"
@@ -90,7 +90,7 @@
"url": "https://github.com/bsv-blockchain/ts-stack/issues"
},
"peerDependencies": {
- "@bsv/sdk": "^2.1.6"
+ "@bsv/sdk": "^3.0.0 || ^2.1.6"
},
"peerDependenciesMeta": {
"@bsv/sdk": {
diff --git a/packages/overlays/gasp-core/package.json b/packages/overlays/gasp-core/package.json
index c6aee77f2..2ddd9bd5e 100644
--- a/packages/overlays/gasp-core/package.json
+++ b/packages/overlays/gasp-core/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/gasp",
- "version": "1.3.6",
+ "version": "1.3.7",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -90,7 +90,7 @@
"typescript": "npm:@typescript/typescript6@6.0.2"
},
"peerDependencies": {
- "@bsv/sdk": "^2.1.6"
+ "@bsv/sdk": "^3.0.0 || ^2.1.6"
},
"peerDependenciesMeta": {
"@bsv/sdk": {
diff --git a/packages/overlays/overlay-discovery-services/CHANGELOG.md b/packages/overlays/overlay-discovery-services/CHANGELOG.md
index eb62a7421..eb91d4fec 100644
--- a/packages/overlays/overlay-discovery-services/CHANGELOG.md
+++ b/packages/overlays/overlay-discovery-services/CHANGELOG.md
@@ -9,26 +9,38 @@ All notable changes to this project will be documented in this file. The format
## [Unreleased]
+- Accept SDK 3 alongside the existing SDK 2 peer range. See the shared
+ [SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+ when upgrading the application SDK.
+
### Added
- Support `ttn` WalletAdvertiser instances with chain-isolated TerraTestNet
lookup routing and TTN wallet services.
### Changed
+
- Preserve the historical plain `Error` contract for malformed lookup queries
while validating every optional topics-array element.
- Share SHIP/SLAP admittance logging without changing emitted messages.
### Deprecated
+
- (List features that are in the process of being phased out or replaced.)
### Removed
+
- (Indicate features or capabilities that were taken out of the project.)
### Fixed
+
+- Reject invalid punycode advertisement hosts consistently across Node/ICU versions,
+ while retaining valid internationalized names for HTTPS and WSS schemes.
+
- Describe the accepted zero lookup limit accurately.
### Security
+
- (Notify of any improvements related to security vulnerabilities or potential risks.)
---
@@ -36,6 +48,7 @@ All notable changes to this project will be documented in this file. The format
## [1.6.1] - 2026-02-05
### Changed
+
- Updated dependencies
---
diff --git a/packages/overlays/overlay-discovery-services/package.json b/packages/overlays/overlay-discovery-services/package.json
index f03df3f92..473920dfa 100644
--- a/packages/overlays/overlay-discovery-services/package.json
+++ b/packages/overlays/overlay-discovery-services/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/overlay-discovery-services",
- "version": "2.2.1",
+ "version": "2.2.2",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -96,7 +96,7 @@
"mongodb": "^7.5.0"
},
"peerDependencies": {
- "@bsv/sdk": "^2.4.0"
+ "@bsv/sdk": "^3.0.0 || ^2.4.0"
},
"peerDependenciesMeta": {
"@bsv/sdk": {
diff --git a/packages/overlays/overlay-discovery-services/src/utils/__tests/isAdvertisableURI.test.ts b/packages/overlays/overlay-discovery-services/src/utils/__tests/isAdvertisableURI.test.ts
index fe5fc6c2e..5ad86702b 100644
--- a/packages/overlays/overlay-discovery-services/src/utils/__tests/isAdvertisableURI.test.ts
+++ b/packages/overlays/overlay-discovery-services/src/utils/__tests/isAdvertisableURI.test.ts
@@ -87,3 +87,15 @@ describe('isAdvertisableURI', () => {
expect(isAdvertisableURI('mailto:user@example.com')).toBe(false)
})
})
+
+// Keep rejection stable when URL's native IDNA behavior changes between Node releases.
+it.each(['https://', 'https+bsvauth://', 'wss://'])(
+ 'validates internationalized hostname labels for %s',
+ prefix => {
+ expect(isAdvertisableURI(`${prefix}xn--bcher-kva.org`)).toBe(true)
+ expect(isAdvertisableURI(`${prefix}bücher.org`)).toBe(true)
+ for (const label of ['xn--0', 'xn--', 'xn--a']) {
+ expect(isAdvertisableURI(`${prefix}${label}.org`)).toBe(false)
+ }
+ }
+)
diff --git a/packages/overlays/overlay-discovery-services/src/utils/isAdvertisableURI.ts b/packages/overlays/overlay-discovery-services/src/utils/isAdvertisableURI.ts
index 79a2d9fb1..a15066b3f 100644
--- a/packages/overlays/overlay-discovery-services/src/utils/isAdvertisableURI.ts
+++ b/packages/overlays/overlay-discovery-services/src/utils/isAdvertisableURI.ts
@@ -1,3 +1,5 @@
+import { domainToUnicode } from 'node:url'
+
/**
* Checks if the provided URI is advertisable, with a recognized URI prefix.
* Applies scheme-specific validation rules as defined by the BRC-101 overlay advertisement spec.
@@ -30,11 +32,22 @@ const parsePositiveMeasurement = (value: string): number | undefined => {
return Number.isFinite(parsed) && parsed > 0 ? parsed : undefined
}
+// Node/ICU versions differ in whether URL rejects invalid ASCII IDNA labels.
+// A valid xn-- label must decode; preserving it verbatim is not validation.
+const isValidHostname = (hostname: string): boolean => {
+ if (hostname.toLowerCase() === 'localhost') return false
+ return hostname.split('.').every(label => {
+ if (!label.startsWith('xn--')) return true
+ const decoded = domainToUnicode(label)
+ return decoded !== '' && decoded !== label
+ })
+}
+
const validateCustomHttpsURI = (uri: string, prefix: string): boolean => {
try {
const modifiedURI = uri.replace(prefix, 'https://')
const parsed = new URL(modifiedURI)
- if (parsed.hostname.toLowerCase() === 'localhost') return false
+ if (!isValidHostname(parsed.hostname)) return false
if (parsed.pathname !== '/') return false
return true
} catch {
@@ -45,7 +58,7 @@ const validateCustomHttpsURI = (uri: string, prefix: string): boolean => {
const validateWssURI = (uri: string): boolean => {
try {
const parsed = new URL(uri)
- if (parsed.hostname.toLowerCase() === 'localhost') return false
+ if (!isValidHostname(parsed.hostname)) return false
return true
} catch {
return false
diff --git a/packages/overlays/overlay-discovery-services/tsconfig.base.json b/packages/overlays/overlay-discovery-services/tsconfig.base.json
index 62b3da13a..7f0197022 100644
--- a/packages/overlays/overlay-discovery-services/tsconfig.base.json
+++ b/packages/overlays/overlay-discovery-services/tsconfig.base.json
@@ -17,7 +17,8 @@
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"resolveJsonModule": true,
- "esModuleInterop": true
+ "esModuleInterop": true,
+ "types": ["node"]
},
"files": ["mod.ts"],
"include": ["src"],
diff --git a/packages/overlays/overlay-express/CHANGELOG.md b/packages/overlays/overlay-express/CHANGELOG.md
index fc6b08174..d16638248 100644
--- a/packages/overlays/overlay-express/CHANGELOG.md
+++ b/packages/overlays/overlay-express/CHANGELOG.md
@@ -11,6 +11,10 @@ All notable changes to this project will be documented in this file. The format
## [Unreleased]
+- Accept SDK 3 alongside the existing SDK 2 peer range. See the shared
+ [SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+ when upgrading the application SDK.
+
### Added
- Added the `ttn` runtime network, TTN SHIP/SLAP roots, and explicit
diff --git a/packages/overlays/overlay-express/package.json b/packages/overlays/overlay-express/package.json
index 9b45f02cc..6d02d64c1 100644
--- a/packages/overlays/overlay-express/package.json
+++ b/packages/overlays/overlay-express/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/overlay-express",
- "version": "2.6.1",
+ "version": "2.6.2",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -107,7 +107,7 @@
"uuid": "^14.0.1"
},
"peerDependencies": {
- "@bsv/sdk": "^2.4.0"
+ "@bsv/sdk": "^3.0.0 || ^2.4.0"
},
"peerDependenciesMeta": {
"@bsv/sdk": {
diff --git a/packages/overlays/overlay/CHANGELOG.md b/packages/overlays/overlay/CHANGELOG.md
index 8bdf170c4..328ba0c4b 100644
--- a/packages/overlays/overlay/CHANGELOG.md
+++ b/packages/overlays/overlay/CHANGELOG.md
@@ -20,22 +20,32 @@ All notable changes to this project will be documented in this file. The format
## [Unreleased]
+- Accept SDK 3 alongside the existing SDK 2 peer range. See the shared
+ [SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+ when upgrading the application SDK.
+
### Added
+
- (Include new features or significant user-visible enhancements here.)
### Changed
+
- (Detail modifications that are non-breaking but relevant to the end-users.)
### Deprecated
+
- (List features that are in the process of being phased out or replaced.)
### Removed
+
- (Indicate features or capabilities that were taken out of the project.)
### Fixed
+
- (Document bugs that were fixed since the last release.)
### Security
+
- (Notify of any improvements related to security vulnerabilities or potential risks.)
---
@@ -43,12 +53,14 @@ All notable changes to this project will be documented in this file. The format
## [2.1.1] - 2026-06-27
### Added
+
- Added BASM unproven transaction maintenance helpers that refresh proofs before
evicting rows that remain unproven past the configured block threshold.
- Added applied-transaction eviction support for provider-confirmed terminal
invalidation such as double spends.
### Changed
+
- Reorg and unproven lifecycle documentation now describes refresh-before-evict
maintenance and provider invalidation behavior.
@@ -60,10 +72,10 @@ All notable changes to this project will be documented in this file. The format
- Added a slot based rate limiting mechanism to prevent excessive API calls and excessive database connections and insertions. This improves system stability under high load.
-
## [0.5.4] - 2025-12-16
### Changed
+
- Check if transaction is already on-chain before attempting broadcast.
---
@@ -71,6 +83,7 @@ All notable changes to this project will be documented in this file. The format
## [0.5.4] - 2025-12-12
### Added
+
- Documentation for developers using the overlay system.
---
@@ -78,6 +91,7 @@ All notable changes to this project will be documented in this file. The format
## [0.5.3] - 2025-11-11
### Changed
+
- Moved broadcast before storage engine data updates in-case of broadcast failures.
- DB index to improve performance on UTXO lookups.
@@ -86,6 +100,7 @@ All notable changes to this project will be documented in this file. The format
## [0.5.0] - 2025-10-21
### Changed
+
- Improved performance of BEEF hydration
- Added check for invalid input index and new deps in history traversal.
- Upgrade ts-sdk deps
@@ -94,6 +109,7 @@ All notable changes to this project will be documented in this file. The format
## [0.4.5] - 2025-07-30
### Added
+
- Support suppressing ship/slap advertisements.
---
@@ -116,6 +132,7 @@ All notable changes to this project will be documented in this file. The format
## [0.0.1] - YYYY-MM-DD
### Added
+
- Initial release of the BSV Blockchain Overlay Services Engine.
---
@@ -128,22 +145,22 @@ Replace `X.X.X` with the new version number and `YYYY-MM-DD` with the release da
## [X.X.X] - YYYY-MM-DD
### Added
--
+-
### Changed
--
+-
### Deprecated
--
+-
### Removed
--
+-
### Fixed
--
+-
### Security
--
+-
```
Use this template as the starting point for each new version. Always update the "Unreleased" section with changes as they're implemented, and then move them under the new version header when that version is released.
diff --git a/packages/overlays/overlay/package.json b/packages/overlays/overlay/package.json
index 7f518ae4a..30022f8fe 100644
--- a/packages/overlays/overlay/package.json
+++ b/packages/overlays/overlay/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/overlay",
- "version": "2.3.1",
+ "version": "2.3.2",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -124,7 +124,7 @@
"knex": "^3.3.0"
},
"peerDependencies": {
- "@bsv/sdk": "^2.1.6"
+ "@bsv/sdk": "^3.0.0 || ^2.1.6"
},
"peerDependenciesMeta": {
"@bsv/sdk": {
diff --git a/packages/overlays/topics/CHANGELOG.md b/packages/overlays/topics/CHANGELOG.md
index b47721adb..3cef97d3a 100644
--- a/packages/overlays/topics/CHANGELOG.md
+++ b/packages/overlays/topics/CHANGELOG.md
@@ -9,6 +9,10 @@ All notable changes to this project will be documented in this file. The format
## [Unreleased]
+- Accept SDK 3 alongside the existing SDK 2 peer range. See the shared
+ [SDK 3 migration guide](https://github.com/bsv-blockchain/ts-stack/blob/main/packages/sdk/docs/overlay-lookup-migration.md)
+ when upgrading the application SDK.
+
### Added
- `tm_uora_dpp` / `ls_uora_dpp`: admission and lookup for UORA attestation
diff --git a/packages/overlays/topics/package.json b/packages/overlays/topics/package.json
index 0b202c4d8..da83f0685 100644
--- a/packages/overlays/topics/package.json
+++ b/packages/overlays/topics/package.json
@@ -1,6 +1,6 @@
{
"name": "@bsv/overlay-topics",
- "version": "1.7.1",
+ "version": "1.7.2",
"sideEffects": false,
"engines": {
"node": ">=22"
@@ -74,7 +74,7 @@
"blockchain"
],
"peerDependencies": {
- "@bsv/sdk": "^2.1.6"
+ "@bsv/sdk": "^3.0.0 || ^2.1.6"
},
"peerDependenciesMeta": {
"@bsv/sdk": {
diff --git a/packages/sdk/CHANGELOG.md b/packages/sdk/CHANGELOG.md
index d6b61d775..c73caa890 100644
--- a/packages/sdk/CHANGELOG.md
+++ b/packages/sdk/CHANGELOG.md
@@ -214,6 +214,15 @@ All notable changes to this project will be documented in this file. The format
## [Unreleased]
+- Persist browser overlay health with IndexedDB transactions to prevent cross-tab
+ lost updates from stale localStorage reads. Bound advisory health refresh at
+ 50 ms so unavailable storage cannot block a recovered host.
+- SDK 3.0.0: apply advisory scoped reputation, fresh bounded discovery,
+ request cancellation, response limits and incomplete/unavailable evidence to
+ every standard overlay resolver method. Incomplete empty `query()` calls now
+ throw a retryable error. Add optional verified GlobalKVStore observations and
+ write reconciliation. See `docs/overlay-lookup-migration.md`.
+
### Added
- Add shared BRC-100 byte-boundary helpers that preserve valid `number[]` and
diff --git a/packages/sdk/README.md b/packages/sdk/README.md
index ee0e7d30e..95c8ff440 100644
--- a/packages/sdk/README.md
+++ b/packages/sdk/README.md
@@ -185,3 +185,20 @@ Incorporated material remains under the separate terms identified in
[LICENSES/](./LICENSES/). Keep all three payloads with source and binary distributions.
Thank you for being a part of the BSV Blockchain Libraries Project. Let's build the future of BSV Blockchain together!
+
+## Overlay lookup reliability
+
+SDK 3.0.0 applies shared reliability to the standard
+`LookupResolver.query`, `queryDetailed`, `query$`, and `queryReliable` methods for
+all overlay lookup services. It includes bounded parallel discovery and requests,
+advisory scoped reputation, cancellation, response limits, and explicit failure
+and completion evidence. No resolver opt-in or KV-specific import is needed.
+
+`query()` now throws a retryable `LookupUnavailableError` for an incomplete empty
+aggregate. See the [shared migration guide](docs/overlay-lookup-migration.md).
+Transport completion does not prove authoritative absence, freshness, or a
+service's cryptographic rules. Services can use `queryReliable` with their own
+validator; the optional `@bsv/sdk/kvstore/reliable` integration supplies KV-specific
+proof validation, spend reconciliation, write recovery, and UI state helpers.
+See the [design and recovery evidence](docs/globalkv-reliability-draft.md) for evidence
+and the service-specific guarantees.
diff --git a/packages/sdk/browser/tests/lookup-recovery.mjs b/packages/sdk/browser/tests/lookup-recovery.mjs
new file mode 100644
index 000000000..bee8f5cd4
--- /dev/null
+++ b/packages/sdk/browser/tests/lookup-recovery.mjs
@@ -0,0 +1,216 @@
+import assert from 'node:assert/strict'
+import { access, mkdtemp, readFile, rm } from 'node:fs/promises'
+import { createServer } from 'node:http'
+import { tmpdir } from 'node:os'
+import path from 'node:path'
+import { fileURLToPath } from 'node:url'
+
+import puppeteer from 'puppeteer-core'
+
+import { createCommandRunner } from '../../../../scripts/lib/command-runner.mjs'
+
+const packageDirectory = fileURLToPath(new URL('../../', import.meta.url))
+const run = createCommandRunner({ timeoutMs: 240_000, maxBufferBytes: 4 * 1024 * 1024 })
+const legacyKey = 'bsvsdk_overlay_host_reputation_v3'
+const currentKey = 'bsvsdk_overlay_host_reputation_v4'
+const services = ['ls_identity', 'ls_ship', 'ls_custom', 'ls_kvstore']
+const host = 'https://recovered.example'
+const temporary = await mkdtemp(path.join(tmpdir(), 'sdk-lookup-browser-'))
+
+async function chromePath() {
+ for (const candidate of [
+ '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
+ '/Applications/Chromium.app/Contents/MacOS/Chromium',
+ '/usr/bin/google-chrome',
+ '/usr/bin/chromium'
+ ]) {
+ try {
+ await access(candidate)
+ return candidate
+ } catch {}
+ }
+ throw new Error('Chrome or Chromium is required for lookup recovery tests')
+}
+
+function installHealthReader() {
+ globalThis.readHealth = key =>
+ new Promise((resolve, reject) => {
+ const open = indexedDB.open(key, 1)
+ open.onupgradeneeded = () => open.result.createObjectStore('state')
+ open.onerror = () => reject(new Error('Health database unavailable', { cause: open.error }))
+ open.onsuccess = () => {
+ const db = open.result
+ const tx = db.transaction('state')
+ const read = tx.objectStore('state').get(key)
+ read.onsuccess = () => resolve(JSON.parse(read.result ?? '{}'))
+ tx.oncomplete = () => db.close()
+ tx.onabort = () => {
+ db.close()
+ reject(new Error('Health read aborted', { cause: tx.error }))
+ }
+ }
+ })
+}
+
+async function preparePage(page, origin) {
+ await page.goto(origin)
+ await page.waitForFunction(() => globalThis.bsv?.LookupResolver !== undefined)
+ assert.equal(await page.evaluate(() => typeof indexedDB?.open), 'function')
+ await page.evaluate(installHealthReader)
+ await page.evaluate(
+ ({ services, host }) => {
+ const output = {
+ beef: new bsv.Transaction(
+ 1,
+ [],
+ [{ lockingScript: bsv.LockingScript.fromHex('51'), satoshis: 1 }],
+ 0
+ ).toBEEF(),
+ outputIndex: 0
+ }
+ globalThis.lookupFixture = {
+ up: false,
+ calls: 0,
+ resolver: new bsv.LookupResolver({
+ facilitator: {
+ async lookup(url) {
+ if (url !== host) return { type: 'output-list', outputs: [] }
+ globalThis.lookupFixture.calls++
+ if (!globalThis.lookupFixture.up) throw new Error('synthetic transport failure')
+ await new Promise(resolve => setTimeout(resolve, 25))
+ return { type: 'output-list', outputs: [output] }
+ }
+ },
+ hostOverrides: Object.fromEntries(
+ services.map(service => [service, ['https://empty.example', host]])
+ )
+ })
+ }
+ },
+ { services, host }
+ )
+}
+
+async function waitForHealth(page, pair, recovered) {
+ await page.waitForFunction(
+ ({ key, pair, host, recovered }) => {
+ return readHealth(key).then(state => {
+ const entries = state.entries ?? {}
+ return pair.every(service => {
+ const entry = entries[JSON.stringify(['mainnet', service, host])]
+ return entry !== undefined && (recovered ? entry.penalty === 0 : entry.penalty > 0)
+ })
+ })
+ },
+ { polling: 25, timeout: 5000 },
+ { key: currentKey, pair, host, recovered }
+ )
+}
+
+async function query(page, service, up) {
+ return await page.evaluate(
+ async ({ service, up }) => {
+ const fixture = globalThis.lookupFixture
+ fixture.up = up
+ const before = fixture.calls
+ try {
+ const answer = await fixture.resolver.query({ service, query: {} })
+ return { outputs: answer.outputs.length, probes: fixture.calls - before }
+ } catch (error) {
+ if (!(error instanceof bsv.LookupUnavailableError)) throw error
+ return { unavailable: error.retryable, probes: fixture.calls - before }
+ }
+ },
+ { service, up }
+ )
+}
+
+let browser
+let server
+try {
+ // Exercise the published UMD payload, extracted from a real package tarball.
+ const { stdout } = await run('pnpm', ['pack', '--json', '--pack-destination', temporary], {
+ cwd: packageDirectory,
+ env: { ...process.env, npm_config_ignore_scripts: 'true' }
+ })
+ await run('tar', ['-xzf', JSON.parse(stdout).filename, '-C', temporary])
+ const bundle = await readFile(path.join(temporary, 'package/dist/umd/bundle.js'))
+ server = createServer((request, response) => {
+ if (request.url === '/bundle.js') {
+ response.writeHead(200, { 'Content-Type': 'text/javascript' })
+ response.end(bundle)
+ } else {
+ response.writeHead(200, { 'Content-Type': 'text/html' })
+ response.end(
+ '