<>ts-stack
Get StartedArchitecturePackagesSpecsGuides
⌘K
Reference
Home
Get StartedOverviewInstallChoose your stackKey concepts
ArchitectureOverviewStack layersBEEF (BRC-62)BRC-100 Wallet InterfaceIdentity & AuthConformance pipeline
PackagesOverviewSDKWalletNetworkOverlaysMessagingMiddlewareHelpers
InfrastructureOverviewmessage-box-serveroverlay-serveruhrp-server-basicuhrp-server-cloud-bucketwabwallet-infrachaintracks-server
SpecsOverviewBRC-100 Wallet InterfaceOverlay HTTPMessage-box HTTPAuthsocket (WebSocket)BRC-31 Auth HandshakeBRC-29 Peer PaymentBRC-121 / HTTP 402ARC BroadcastMerkle ServiceStorage AdapterGASP SyncUHRPAir-Gap Optical (BRC-141)
ConformanceOverviewVector catalogTS runnerContributing vectors
GuidesOverviewBuild a wallet-aware appRun an overlay nodePeer-to-peer messagingHTTP 402 payments
ReferenceOverviewBRC indexRepository health
AboutVersioningContributingDoc agentDocumentation sources
Loading…
Edit this page on GitHub
© 2026 BSV Blockchain. ts-stack is open-source.
GitHubContributingVersioning

Package API, Declarations, and Migration Ledger

This page is generated from all 31 public manifests, package documentation, and governance/package-release-notes.json. It records source candidates without publishing them. CI rejects a version change unless its release classification, summary, and migration guidance are updated at the same time.

The declaration targets below describe the packed manifest contract. The package pages remain the human API and usage authority; generated declarations and clean-consumer tests remain the executable type authority.

Current release boundary

Packagenpm baselineSourceCandidateAPIMigration
@bsv/402-pay0.2.10.2.4patchAPI and usageNo consumer migration is required; client and server exports, payment protocol behavior, and runtime defaults are unchanged.
@bsv/air-gap0.0.00.1.1minorAPI and usageNo 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/amountinator2.1.12.1.4patchAPI and usageNo consumer migration is required; this is a backward-compatible patch candidate.
@bsv/auth0.1.10.1.3patchAPI and usageNo consumer migration is required; authentication APIs, wire behavior, and runtime defaults are unchanged.
@bsv/auth-express-middleware2.2.02.2.2patchAPI and usageNo 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.
@bsv/authsocket2.1.12.1.6patchAPI and usageNo 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.
@bsv/authsocket-client2.1.12.1.5patchAPI and usageNo 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.
@bsv/btms1.1.11.2.1minorAPI and usageExisting 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-module1.1.11.1.3patchAPI and usageNo consumer migration is required; permission-module APIs and token semantics are unchanged.
@bsv/did0.2.10.2.4patchAPI and usageNo consumer migration is required; DID APIs, encodings, credential behavior, and supported import forms are unchanged.
@bsv/did-client1.2.11.3.0minorAPI and usageExisting local, mainnet, and testnet behavior is unchanged. TTN consumers select networkPreset teratestnet and use @bsv/sdk 2.4 or later.
@bsv/fund-wallet1.4.11.4.3patchAPI and usageNo consumer migration is required; wallet funding APIs and transaction behavior are unchanged.
@bsv/gasp1.3.11.3.5patchAPI and usageNo consumer migration is required; existing constructor calls, imports, synchronization behavior, and wire semantics are unchanged.
@bsv/message-box-client2.4.02.4.1patchAPI and usageNo 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.
@bsv/overlay2.2.12.3.0minorAPI and usageExisting 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.
@bsv/overlay-discovery-services2.1.12.2.0minorAPI and usageExisting mainnet and testnet advertisers are unchanged. TTN operators pass chain ttn and provision the staging storage and overlay endpoints before advertising.
@bsv/overlay-express2.5.02.6.0minorAPI and usageExisting mainnet and testnet servers are unchanged. TTN servers call configureNetwork('ttn'), configureArcade with the TTN endpoint, and configureChaintracks or configureChainTracker before engine initialization.
@bsv/overlay-topics1.6.101.7.0minorAPI and usageExisting 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/paymail2.4.22.4.6patchAPI and usageExisting 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.
@bsv/payment-express-middleware2.1.12.1.5patchAPI and usageNo 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.
@bsv/sdk2.4.02.4.1patchAPI and usageNo API migration is required. Historical number-array fast paths remain unchanged; consumers using JSON or WebView transports should upgrade both endpoints when possible, while mixed old/new wallet peers remain compatible through portable output and typed-boundary recovery. React Native hosts need no change: bridge injections, window.postMessage responses, host frames relaying on the document's own origin, and an exact configured wallet origin all continue to resolve.
@bsv/simple0.4.10.5.1minorAPI and usageExisting overlay configurations and number-array behavior are unchanged. TTN consumers select network teratestnet; all consumers should upgrade to @bsv/sdk 2.4.1 or later for byte-boundary compatibility.
@bsv/templates1.9.11.10.0minorAPI and usageNo 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.
@bsv/teranode-listener1.1.11.1.4patchAPI and usageNo consumer migration is required; listener APIs, topics, and network configuration are unchanged.
@bsv/verifast0.3.00.3.4patchAPI and usageNo consumer migration is required; exports, verification behavior, worker protocols, package paths, and runtime defaults are unchanged.
@bsv/wallet-helper0.1.10.1.6patchAPI and usageNo consumer migration is required; fluent builder APIs and transaction semantics are unchanged.
@bsv/wallet-relay0.2.20.3.5minorAPI and usageNo 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-toolbox2.10.02.10.3patchAPI and usageNo consumer migration is required. Canonical AtomicBEEF and existing number-array behavior are unchanged; upgrade to @bsv/sdk 2.4.1 or later for cross-version JSON and wallet-error compatibility. listOutputs callers now receive the full matching count on short and out-of-range pages instead of a page-local count.
@bsv/wallet-toolbox-client2.10.02.10.3patchAPI and usageNo consumer migration is required. Browser exports, wire types, and canonical AtomicBEEF behavior are unchanged; use @bsv/sdk 2.4.1 or later. IndexedDB listOutputs callers now receive the full matching count on every page.
@bsv/wallet-toolbox-mobile2.10.02.10.3patchAPI and usageNo consumer migration is required. React Native exports, wire types, and canonical AtomicBEEF behavior are unchanged; use @bsv/sdk 2.4.1 or later.
create-bsv-app1.0.21.1.0minorAPI and usageExisting mainnet and testnet scaffolds are unchanged. New TTN projects pass --network ttn or select TerraTestNet in the configurator.

none means the source manifest matches the recorded npm baseline. Any other value is an unpublished candidate. Publication, tags, releases, registry reconciliation, and infrastructure dependency synchronization remain separate, explicitly authorized operations.

Package entry points

@bsv/402-pay

  • Package documentation: docs/packages/middleware/402-pay.md
  • Source: 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.
  • Migration: No consumer migration is required; client and server exports, payment protocol behavior, and runtime defaults are unchanged.
Public subpathRuntime target(s)Declaration target(s)
../dist/index.mjs./dist/index.cjs./dist/index.d.mts./dist/index.d.cts
./server./dist/server.mjs./dist/server.cjs./dist/server.d.mts./dist/server.d.cts
./client./dist/client.mjs./dist/client.cjs./dist/client.d.mts./dist/client.d.cts

@bsv/air-gap

  • Package documentation: docs/packages/helpers/air-gap.md
  • Source: packages/helpers/air-gap
  • Release note: Introduces the zero-dependency one-directional optical air-gap transport, wire protocol v1 (BRC-141): a versioned 23-byte header with an 8-byte session identity, exact-integer ideal-soliton fountain coding, a resource-bounded camera-safe decoder with session locking that never throws, CRC32 payload integrity, browser and Node consumers, and shared conformance vectors under conformance/vectors/transport/.
  • Migration: 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.
Public subpathRuntime target(s)Declaration target(s)
../dist/index.mjs./dist/index.cjs./dist/index.d.mts./dist/index.d.cts

@bsv/amountinator

  • Package documentation: docs/packages/helpers/amountinator.md
  • Source: packages/helpers/amountinator
  • Release note: Adds the strict package and artifact contract and hardens amount formatting without changing the public API.
  • Migration: No consumer migration is required; this is a backward-compatible patch candidate.
Public subpathRuntime target(s)Declaration target(s)
../dist/index.mjs./dist/index.cjs./dist/index.d.mts./dist/index.d.cts

@bsv/auth

  • Package documentation: docs/packages/middleware/auth.md
  • Source: packages/middleware/auth
  • Release note: Adopts the governed strict TypeScript profile and repository-wide zero-warning lint and formatting contract.
  • Migration: No consumer migration is required; authentication APIs, wire behavior, and runtime defaults are unchanged.
Public subpathRuntime target(s)Declaration target(s)
../dist/index.mjs./dist/index.cjs./dist/index.d.mts./dist/index.d.cts

@bsv/auth-express-middleware

  • Package documentation: docs/packages/middleware/auth-express-middleware.md
  • Source: 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.
  • 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.
Public subpathRuntime target(s)Declaration target(s)
../dist/mod.mjs./dist/mod.cjs./dist/mod.d.mts./dist/mod.d.cts
./package.json./package.json—

@bsv/authsocket

  • Package documentation: docs/packages/messaging/authsocket.md
  • Source: 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.
  • 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.
Public subpathRuntime target(s)Declaration target(s)
../dist/mod.mjs./dist/mod.cjs./dist/mod.d.mts./dist/mod.d.cts
./package.json./package.json—

@bsv/authsocket-client

  • Package documentation: docs/packages/messaging/authsocket-client.md
  • Source: packages/messaging/authsocket-client
  • Release note: Contains authentication and application callback failures, caps authentication concurrency, serializes real typed arrays portably, and preserves arbitrary signed event JSON exactly.
  • 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.
Public subpathRuntime target(s)Declaration target(s)
../dist/mod.js./dist/mod.cjs./dist/mod.d.ts./dist/mod.d.cts
./package.json./package.json—

@bsv/btms

  • Package documentation: docs/packages/wallet/btms.md
  • Source: 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.
  • 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.
Public subpathRuntime target(s)Declaration target(s)
../dist/index.mjs./dist/index.cjs./dist/index.d.mts./dist/index.d.cts

@bsv/btms-permission-module

  • Package documentation: docs/packages/wallet/btms-permission-module.md
  • Source: packages/wallet/btms-permission-module
  • Release note: Adopts the governed strict TypeScript profile and repository-wide zero-warning lint and formatting contract.
  • Migration: No consumer migration is required; permission-module APIs and token semantics are unchanged.
Public subpathRuntime target(s)Declaration target(s)
../dist/index.mjs./dist/index.d.mts

@bsv/did

  • Package documentation: docs/packages/helpers/did.md
  • Source: 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.
  • Migration: No consumer migration is required; DID APIs, encodings, credential behavior, and supported import forms are unchanged.
Public subpathRuntime target(s)Declaration target(s)
../dist/mod.js./dist/mod.cjs./dist/mod.d.ts./dist/mod.d.cts
./*.ts./dist/src/*.js./dist/src/*.cjs./dist/src/*.d.ts./dist/src/*.d.cts

@bsv/did-client

  • Package documentation: docs/packages/helpers/did-client.md
  • Source: packages/helpers/did-client
  • Release note: Adds TerraTestNet as an explicit DID overlay-network preset and retains the governed package-quality contract.
  • Migration: Existing local, mainnet, and testnet behavior is unchanged. TTN consumers select networkPreset teratestnet and use @bsv/sdk 2.4 or later.
Public subpathRuntime target(s)Declaration target(s)
../dist/mod.js./dist/mod.cjs./dist/mod.d.ts./dist/mod.d.cts
./*.ts./dist/src/*.js./dist/src/*.cjs./dist/src/*.d.ts./dist/src/*.d.cts
./package.json./package.json—

@bsv/fund-wallet

  • Package documentation: docs/packages/helpers/fund-wallet.md
  • Source: packages/helpers/fund-wallet
  • Release note: Adopts the governed strict TypeScript profile and repository-wide zero-warning lint and formatting contract.
  • Migration: No consumer migration is required; wallet funding APIs and transaction behavior are unchanged.

CLI entry points: {"fund-metanet":"./dist/index.mjs"}.

Public subpathRuntime target(s)Declaration target(s)
.——

@bsv/gasp

  • Package documentation: docs/packages/overlays/gasp.md
  • Source: 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.
  • Migration: No consumer migration is required; existing constructor calls, imports, synchronization behavior, and wire semantics are unchanged.
Public subpathRuntime target(s)Declaration target(s)
../dist/esm/mod.js./dist/cjs/mod.js./dist/types/mod.d.ts./dist/cjs/mod.d.ts
./*.ts./dist/esm/src/*.js./dist/cjs/src/*.js./dist/types/src/*.d.ts./dist/cjs/src/*.d.ts

@bsv/message-box-client

  • Package documentation: docs/packages/messaging/message-box-client.md
  • Source: 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, with strict rejection of sparse or invalid byte records.
  • 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.
Public subpathRuntime target(s)Declaration target(s)
../dist/mod.js./dist/mod.cjs./dist/mod.d.ts./dist/mod.d.cts
./package.json./package.json—

@bsv/overlay

  • Package documentation: docs/packages/overlays/overlay.md
  • Source: 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.
  • 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.
Public subpathRuntime target(s)Declaration target(s)
../dist/esm/mod.js./dist/cjs/mod.js./dist/types/mod.d.ts./dist/cjs/mod.d.ts
./*.ts./dist/esm/src/*.js./dist/cjs/src/*.js./dist/types/src/*.d.ts./dist/cjs/src/*.d.ts
./storage./dist/esm/src/storage/Storage.js./dist/cjs/src/storage/Storage.js./dist/types/src/storage/Storage.d.ts./dist/cjs/src/storage/Storage.d.ts
./storage/*.ts./dist/esm/src/storage/*.js./dist/cjs/src/storage/*.js./dist/types/src/storage/*.d.ts./dist/cjs/src/storage/*.d.ts
./storage/*./dist/esm/src/storage/*.js./dist/cjs/src/storage/*.js./dist/types/src/storage/*.d.ts./dist/cjs/src/storage/*.d.ts

@bsv/overlay-discovery-services

  • Package documentation: docs/packages/overlays/overlay-discovery-services.md
  • Source: packages/overlays/overlay-discovery-services
  • Release note: Extends WalletAdvertiser to TerraTestNet with chain-isolated SHIP/SLAP resolution and TTN wallet services.
  • Migration: Existing mainnet and testnet advertisers are unchanged. TTN operators pass chain ttn and provision the staging storage and overlay endpoints before advertising.
Public subpathRuntime target(s)Declaration target(s)
../dist/esm/mod.js./dist/cjs/mod.js./dist/types/mod.d.ts./dist/cjs/mod.d.ts
./*.ts./dist/esm/src/*.js./dist/cjs/src/*.js./dist/types/src/*.d.ts./dist/cjs/src/*.d.ts

@bsv/overlay-express

  • Package documentation: docs/packages/overlays/overlay-express.md
  • Source: 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.
  • 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.
Public subpathRuntime target(s)Declaration target(s)
../dist/esm/mod.js./dist/cjs/mod.js./dist/types/mod.d.ts./dist/cjs/mod.d.ts
./*.ts./dist/esm/src/*.js./dist/cjs/src/*.js./dist/types/src/*.d.ts./dist/cjs/src/*.d.ts

@bsv/overlay-topics

  • Package documentation: docs/packages/overlays/overlay-topics.md
  • Source: 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.
  • 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.
Public subpathRuntime target(s)Declaration target(s)
../dist/index.js./dist/index.js./dist/index.d.ts

@bsv/paymail

  • Package documentation: docs/packages/messaging/paymail.md
  • Source: 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.
  • 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.
Public subpathRuntime target(s)Declaration target(s)
../dist/mod.browser.js./dist/mod.js./dist/mod.cjs./dist/mod.browser.d.ts./dist/mod.d.ts./dist/mod.d.cts
./client./dist/src/paymailClient/index.js./dist/src/paymailClient/index.cjs./dist/src/paymailClient/index.d.ts./dist/src/paymailClient/index.d.cts
./client/*./dist/src/paymailClient/*.js./dist/src/paymailClient/*.cjs./dist/src/paymailClient/*.d.ts./dist/src/paymailClient/*.d.cts
./capability./dist/src/capability/index.js./dist/src/capability/index.cjs./dist/src/capability/index.d.ts./dist/src/capability/index.d.cts
./capability/*./dist/src/capability/*.js./dist/src/capability/*.cjs./dist/src/capability/*.d.ts./dist/src/capability/*.d.cts
./router./dist/src/paymailRouter/index.js./dist/src/paymailRouter/index.cjs./dist/src/paymailRouter/index.d.ts./dist/src/paymailRouter/index.d.cts
./router/*./dist/src/paymailRouter/*.js./dist/src/paymailRouter/*.cjs./dist/src/paymailRouter/*.d.ts./dist/src/paymailRouter/*.d.cts
./errors./dist/src/errors/index.js./dist/src/errors/index.cjs./dist/src/errors/index.d.ts./dist/src/errors/index.d.cts
./errors/*./dist/src/errors/*.js./dist/src/errors/*.cjs./dist/src/errors/*.d.ts./dist/src/errors/*.d.cts
./package.json./package.json—

@bsv/payment-express-middleware

  • Package documentation: docs/packages/middleware/payment-express-middleware.md
  • Source: 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.
  • 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.
Public subpathRuntime target(s)Declaration target(s)
../dist/mod.mjs./dist/mod.cjs./dist/mod.d.mts./dist/mod.d.cts
./package.json./package.json—

@bsv/sdk

  • Package documentation: docs/packages/sdk/bsv-sdk.md
  • Source: packages/sdk
  • Release note: Adds one strict BRC-100 byte-boundary contract: real typed arrays serialize portably, historical bytes recover only at typed protocol fields, arbitrary JSON round-trips unchanged, and React Native discovery remains compatible and bounded. React Native WebView responses are additionally verified as bridge-delivered before their payload is read, so framed, opener, and sandboxed browsing contexts can no longer answer a wallet invocation.
  • Migration: No API migration is required. Historical number-array fast paths remain unchanged; consumers using JSON or WebView transports should upgrade both endpoints when possible, while mixed old/new wallet peers remain compatible through portable output and typed-boundary recovery. React Native hosts need no change: bridge injections, window.postMessage responses, host frames relaying on the document's own origin, and an exact configured wallet origin all continue to resolve.
Public subpathRuntime target(s)Declaration target(s)
../dist/esm/mod.js./dist/cjs/mod.js./dist/types/mod.d.ts./dist/cjs/mod.d.ts
./*.ts./dist/esm/src/*.js./dist/cjs/src/*.js./dist/types/src/*.d.ts./dist/cjs/src/*.d.ts
./primitives./dist/esm/src/primitives/index.js./dist/cjs/src/primitives/index.js./dist/types/src/primitives/index.d.ts./dist/cjs/src/primitives/index.d.ts
./primitives/*.ts./dist/esm/src/primitives/*.js./dist/cjs/src/primitives/*.js./dist/types/src/primitives/*.d.ts./dist/cjs/src/primitives/*.d.ts
./primitives/*./dist/esm/src/primitives/*.js./dist/cjs/src/primitives/*.js./dist/types/src/primitives/*.d.ts./dist/cjs/src/primitives/*.d.ts
./script./dist/esm/src/script/index.js./dist/cjs/src/script/index.js./dist/types/src/script/index.d.ts./dist/cjs/src/script/index.d.ts
./script/*.ts./dist/esm/src/script/*.js./dist/cjs/src/script/*.js./dist/types/src/script/*.d.ts./dist/cjs/src/script/*.d.ts
./script/*./dist/esm/src/script/*.js./dist/cjs/src/script/*.js./dist/types/src/script/*.d.ts./dist/cjs/src/script/*.d.ts
./script/templates./dist/esm/src/script/templates/index.js./dist/cjs/src/script/templates/index.js./dist/types/src/script/templates/index.d.ts./dist/cjs/src/script/templates/index.d.ts
./script/templates/*.ts./dist/esm/src/script/templates/*.js./dist/cjs/src/script/templates/*.js./dist/types/src/script/templates/*.d.ts./dist/cjs/src/script/templates/*.d.ts
./script/templates/*./dist/esm/src/script/templates/*.js./dist/cjs/src/script/templates/*.js./dist/types/src/script/templates/*.d.ts./dist/cjs/src/script/templates/*.d.ts
./transaction./dist/esm/src/transaction/index.js./dist/cjs/src/transaction/index.js./dist/types/src/transaction/index.d.ts./dist/cjs/src/transaction/index.d.ts
./transaction/*.ts./dist/esm/src/transaction/*.js./dist/cjs/src/transaction/*.js./dist/types/src/transaction/*.d.ts./dist/cjs/src/transaction/*.d.ts
./transaction/*./dist/esm/src/transaction/*.js./dist/cjs/src/transaction/*.js./dist/types/src/transaction/*.d.ts./dist/cjs/src/transaction/*.d.ts
./transaction/broadcaster./dist/esm/src/transaction/broadcasters/index.js./dist/cjs/src/transaction/broadcasters/index.js./dist/types/src/transaction/broadcasters/index.d.ts./dist/cjs/src/transaction/broadcasters/index.d.ts
./transaction/broadcaster/*.ts./dist/esm/src/transaction/broadcasters/*.js./dist/cjs/src/transaction/broadcasters/*.js./dist/types/src/transaction/broadcasters/*.d.ts./dist/cjs/src/transaction/broadcasters/*.d.ts
./transaction/broadcaster/*./dist/esm/src/transaction/broadcasters/*.js./dist/cjs/src/transaction/broadcasters/*.js./dist/types/src/transaction/broadcasters/*.d.ts./dist/cjs/src/transaction/broadcasters/*.d.ts
./transaction/broadcasters./dist/esm/src/transaction/broadcasters/index.js./dist/cjs/src/transaction/broadcasters/index.js./dist/types/src/transaction/broadcasters/index.d.ts./dist/cjs/src/transaction/broadcasters/index.d.ts
./transaction/broadcasters/*.ts./dist/esm/src/transaction/broadcasters/*.js./dist/cjs/src/transaction/broadcasters/*.js./dist/types/src/transaction/broadcasters/*.d.ts./dist/cjs/src/transaction/broadcasters/*.d.ts
./transaction/broadcasters/*./dist/esm/src/transaction/broadcasters/*.js./dist/cjs/src/transaction/broadcasters/*.js./dist/types/src/transaction/broadcasters/*.d.ts./dist/cjs/src/transaction/broadcasters/*.d.ts
./transaction/chaintrackers./dist/esm/src/transaction/chaintrackers/index.js./dist/cjs/src/transaction/chaintrackers/index.js./dist/types/src/transaction/chaintrackers/index.d.ts./dist/cjs/src/transaction/chaintrackers/index.d.ts
./transaction/chaintrackers/*.ts./dist/esm/src/transaction/chaintrackers/*.js./dist/cjs/src/transaction/chaintrackers/*.js./dist/types/src/transaction/chaintrackers/*.d.ts./dist/cjs/src/transaction/chaintrackers/*.d.ts
./transaction/chaintrackers/*./dist/esm/src/transaction/chaintrackers/*.js./dist/cjs/src/transaction/chaintrackers/*.js./dist/types/src/transaction/chaintrackers/*.d.ts./dist/cjs/src/transaction/chaintrackers/*.d.ts
./transaction/http./dist/esm/src/transaction/http/index.js./dist/cjs/src/transaction/http/index.js./dist/types/src/transaction/http/index.d.ts./dist/cjs/src/transaction/http/index.d.ts
./transaction/http/*.ts./dist/esm/src/transaction/http/*.js./dist/cjs/src/transaction/http/*.js./dist/types/src/transaction/http/*.d.ts./dist/cjs/src/transaction/http/*.d.ts
./transaction/http/*./dist/esm/src/transaction/http/*.js./dist/cjs/src/transaction/http/*.js./dist/types/src/transaction/http/*.d.ts./dist/cjs/src/transaction/http/*.d.ts
./transaction/fee-model./dist/esm/src/transaction/fee-models/index.js./dist/cjs/src/transaction/fee-models/index.js./dist/types/src/transaction/fee-models/index.d.ts./dist/cjs/src/transaction/fee-models/index.d.ts
./transaction/fee-model/*.ts./dist/esm/src/transaction/fee-models/*.js./dist/cjs/src/transaction/fee-models/*.js./dist/types/src/transaction/fee-models/*.d.ts./dist/cjs/src/transaction/fee-models/*.d.ts
./transaction/fee-model/*./dist/esm/src/transaction/fee-models/*.js./dist/cjs/src/transaction/fee-models/*.js./dist/types/src/transaction/fee-models/*.d.ts./dist/cjs/src/transaction/fee-models/*.d.ts
./transaction/fee-models./dist/esm/src/transaction/fee-models/index.js./dist/cjs/src/transaction/fee-models/index.js./dist/types/src/transaction/fee-models/index.d.ts./dist/cjs/src/transaction/fee-models/index.d.ts
./transaction/fee-models/*.ts./dist/esm/src/transaction/fee-models/*.js./dist/cjs/src/transaction/fee-models/*.js./dist/types/src/transaction/fee-models/*.d.ts./dist/cjs/src/transaction/fee-models/*.d.ts
./transaction/fee-models/*./dist/esm/src/transaction/fee-models/*.js./dist/cjs/src/transaction/fee-models/*.js./dist/types/src/transaction/fee-models/*.d.ts./dist/cjs/src/transaction/fee-models/*.d.ts
./messages./dist/esm/src/messages/index.js./dist/cjs/src/messages/index.js./dist/types/src/messages/index.d.ts./dist/cjs/src/messages/index.d.ts
./messages/*.ts./dist/esm/src/messages/*.js./dist/cjs/src/messages/*.js./dist/types/src/messages/*.d.ts./dist/cjs/src/messages/*.d.ts
./messages/*./dist/esm/src/messages/*.js./dist/cjs/src/messages/*.js./dist/types/src/messages/*.d.ts./dist/cjs/src/messages/*.d.ts
./compat./dist/esm/src/compat/index.js./dist/cjs/src/compat/index.js./dist/types/src/compat/index.d.ts./dist/cjs/src/compat/index.d.ts
./compat/*.ts./dist/esm/src/compat/*.js./dist/cjs/src/compat/*.js./dist/types/src/compat/*.d.ts./dist/cjs/src/compat/*.d.ts
./compat/*./dist/esm/src/compat/*.js./dist/cjs/src/compat/*.js./dist/types/src/compat/*.d.ts./dist/cjs/src/compat/*.d.ts
./totp./dist/esm/src/totp/index.js./dist/cjs/src/totp/index.js./dist/types/src/totp/index.d.ts./dist/cjs/src/totp/index.d.ts
./totp/*.ts./dist/esm/src/totp/*.js./dist/cjs/src/totp/*.js./dist/types/src/totp/*.d.ts./dist/cjs/src/totp/*.d.ts
./totp/*./dist/esm/src/totp/*.js./dist/cjs/src/totp/*.js./dist/types/src/totp/*.d.ts./dist/cjs/src/totp/*.d.ts
./wallet./dist/esm/src/wallet/index.js./dist/cjs/src/wallet/index.js./dist/types/src/wallet/index.d.ts./dist/cjs/src/wallet/index.d.ts
./wallet/*.ts./dist/esm/src/wallet/*.js./dist/cjs/src/wallet/*.js./dist/types/src/wallet/*.d.ts./dist/cjs/src/wallet/*.d.ts
./wallet/*./dist/esm/src/wallet/*.js./dist/cjs/src/wallet/*.js./dist/types/src/wallet/*.d.ts./dist/cjs/src/wallet/*.d.ts
./wallet/substrates./dist/esm/src/wallet/substrates/index.js./dist/cjs/src/wallet/substrates/index.js./dist/types/src/wallet/substrates/index.d.ts./dist/cjs/src/wallet/substrates/index.d.ts
./wallet/substrates/*.ts./dist/esm/src/wallet/substrates/*.js./dist/cjs/src/wallet/substrates/*.js./dist/types/src/wallet/substrates/*.d.ts./dist/cjs/src/wallet/substrates/*.d.ts
./wallet/substrates/*./dist/esm/src/wallet/substrates/*.js./dist/cjs/src/wallet/substrates/*.js./dist/types/src/wallet/substrates/*.d.ts./dist/cjs/src/wallet/substrates/*.d.ts
./auth./dist/esm/src/auth/index.js./dist/cjs/src/auth/index.js./dist/types/src/auth/index.d.ts./dist/cjs/src/auth/index.d.ts
./auth/*.ts./dist/esm/src/auth/*.js./dist/cjs/src/auth/*.js./dist/types/src/auth/*.d.ts./dist/cjs/src/auth/*.d.ts
./auth/*./dist/esm/src/auth/*.js./dist/cjs/src/auth/*.js./dist/types/src/auth/*.d.ts./dist/cjs/src/auth/*.d.ts
./auth/certificate./dist/esm/src/auth/certificates/index.js./dist/cjs/src/auth/certificates/index.js./dist/types/src/auth/certificates/index.d.ts./dist/cjs/src/auth/certificates/index.d.ts
./auth/certificate/*.ts./dist/esm/src/auth/certificates/*.js./dist/cjs/src/auth/certificates/*.js./dist/types/src/auth/certificates/*.d.ts./dist/cjs/src/auth/certificates/*.d.ts
./auth/certificate/*./dist/esm/src/auth/certificates/*.js./dist/cjs/src/auth/certificates/*.js./dist/types/src/auth/certificates/*.d.ts./dist/cjs/src/auth/certificates/*.d.ts
./auth/certificates./dist/esm/src/auth/certificates/index.js./dist/cjs/src/auth/certificates/index.js./dist/types/src/auth/certificates/index.d.ts./dist/cjs/src/auth/certificates/index.d.ts
./auth/certificates/*.ts./dist/esm/src/auth/certificates/*.js./dist/cjs/src/auth/certificates/*.js./dist/types/src/auth/certificates/*.d.ts./dist/cjs/src/auth/certificates/*.d.ts
./auth/certificates/*./dist/esm/src/auth/certificates/*.js./dist/cjs/src/auth/certificates/*.js./dist/types/src/auth/certificates/*.d.ts./dist/cjs/src/auth/certificates/*.d.ts
./overlay-tools./dist/esm/src/overlay-tools/index.js./dist/cjs/src/overlay-tools/index.js./dist/types/src/overlay-tools/index.d.ts./dist/cjs/src/overlay-tools/index.d.ts
./overlay-tools/*.ts./dist/esm/src/overlay-tools/*.js./dist/cjs/src/overlay-tools/*.js./dist/types/src/overlay-tools/*.d.ts./dist/cjs/src/overlay-tools/*.d.ts
./overlay-tools/*./dist/esm/src/overlay-tools/*.js./dist/cjs/src/overlay-tools/*.js./dist/types/src/overlay-tools/*.d.ts./dist/cjs/src/overlay-tools/*.d.ts
./telemetry./dist/esm/src/telemetry/index.js./dist/cjs/src/telemetry/index.js./dist/types/src/telemetry/index.d.ts./dist/cjs/src/telemetry/index.d.ts
./telemetry/*.ts./dist/esm/src/telemetry/*.js./dist/cjs/src/telemetry/*.js./dist/types/src/telemetry/*.d.ts./dist/cjs/src/telemetry/*.d.ts
./telemetry/*./dist/esm/src/telemetry/*.js./dist/cjs/src/telemetry/*.js./dist/types/src/telemetry/*.d.ts./dist/cjs/src/telemetry/*.d.ts
./storage./dist/esm/src/storage/index.js./dist/cjs/src/storage/index.js./dist/types/src/storage/index.d.ts./dist/cjs/src/storage/index.d.ts
./storage/*.ts./dist/esm/src/storage/*.js./dist/cjs/src/storage/*.js./dist/types/src/storage/*.d.ts./dist/cjs/src/storage/*.d.ts
./storage/*./dist/esm/src/storage/*.js./dist/cjs/src/storage/*.js./dist/types/src/storage/*.d.ts./dist/cjs/src/storage/*.d.ts
./kvstore./dist/esm/src/kvstore/index.js./dist/cjs/src/kvstore/index.js./dist/types/src/kvstore/index.d.ts./dist/cjs/src/kvstore/index.d.ts
./kvstore/*.ts./dist/esm/src/kvstore/*.js./dist/cjs/src/kvstore/*.js./dist/types/src/kvstore/*.d.ts./dist/cjs/src/kvstore/*.d.ts
./kvstore/*./dist/esm/src/kvstore/*.js./dist/cjs/src/kvstore/*.js./dist/types/src/kvstore/*.d.ts./dist/cjs/src/kvstore/*.d.ts
./remittance./dist/esm/src/remittance/index.js./dist/cjs/src/remittance/index.js./dist/types/src/remittance/index.d.ts./dist/cjs/src/remittance/index.d.ts
./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

@bsv/simple

  • Package documentation: docs/packages/helpers/simple.md
  • Source: packages/helpers/simple
  • Release note: Adds TerraTestNet and preserves Message Box, token send/receive, and server-adapter transaction bytes across number-array, Uint8Array, and historical numeric-key JSON wallet runtimes.
  • Migration: Existing overlay configurations and number-array behavior are unchanged. TTN consumers select network teratestnet; all consumers should upgrade to @bsv/sdk 2.4.1 or later for byte-boundary compatibility.
Public subpathRuntime target(s)Declaration target(s)
../dist/index.mjs./dist/index.cjs./dist/index.d.mts./dist/index.d.cts
./browser./dist/browser.mjs./dist/browser.cjs./dist/browser.d.mts./dist/browser.d.cts
./server./dist/server.mjs./dist/server.cjs./dist/server.d.mts./dist/server.d.cts

@bsv/templates

  • Package documentation: docs/packages/helpers/templates.md
  • Source: 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.
  • 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.
Public subpathRuntime target(s)Declaration target(s)
../dist/mod.js./dist/mod.cjs./dist/mod.d.ts./dist/mod.d.cts
./*.ts./dist/src/*.js./dist/src/*.cjs./dist/src/*.d.ts./dist/src/*.d.cts

@bsv/teranode-listener

  • Package documentation: docs/packages/network/teranode-listener.md
  • Source: packages/network/ts-p2p
  • Release note: Refreshes the compatible libp2p transport, discovery, identification, DHT, peer-ID, ping, and private-network dependency set.
  • Migration: No consumer migration is required; listener APIs, topics, and network configuration are unchanged.
Public subpathRuntime target(s)Declaration target(s)
../dist/index.js./dist/index.js./dist/index.d.ts
./package.json./package.json—

@bsv/verifast

  • Package documentation: docs/packages/sdk/verifast.md
  • Source: packages/verifast
  • Release note: Adds exact-tarball browser, WASM, worker, strict-CSP, streaming-fallback, UMD source-map, and raw/gzip/Brotli bundle contracts.
  • Migration: No consumer migration is required; exports, verification behavior, worker protocols, package paths, and runtime defaults are unchanged.
Public subpathRuntime target(s)Declaration target(s)
../dist/mod.browser.js./dist/mod.js./dist/cjs/mod.cjs./dist/mod.js./dist/mod.browser.d.ts./dist/mod.d.ts./dist/mod.d.cts
./umd./dist/umd/verifast.js./dist/umd.js./dist/umd/verifast.cjs./dist/umd.js./dist/umd.d.ts./dist/umd.d.cts
./wasm/bdk-core.umd.js./dist/src/wasm/bdk-core.umd.js—
./wasm/bdk-core.umd.wasm./dist/src/wasm/bdk-core.umd.wasm—
./wasm/bdk-core.wasm./dist/src/wasm/bdk-core.wasm—

@bsv/wallet-helper

  • Package documentation: docs/packages/helpers/wallet-helper.md
  • Source: packages/helpers/bsv-wallet-helper
  • Release note: Adds strict package contracts and hardens transaction-builder and OP_RETURN validation behavior.
  • Migration: No consumer migration is required; fluent builder APIs and transaction semantics are unchanged.
Public subpathRuntime target(s)Declaration target(s)
../dist/index.mjs./dist/index.cjs./dist/index.d.mts./dist/index.d.cts

@bsv/wallet-relay

  • Package documentation: docs/packages/wallet/wallet-relay.md
  • Source: 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.
  • 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.

CLI entry points: {"wallet-relay":"./bin/init.mjs"}.

Public subpathRuntime target(s)Declaration target(s)
../dist/index.js./dist/index.cjs./dist/index.d.ts./dist/index.d.cts
./client./dist/client.js./dist/client.cjs./dist/client.d.ts./dist/client.d.cts
./react./dist/react.js./dist/react.cjs./dist/react.d.ts./dist/react.d.cts
./package.json./package.json—

@bsv/wallet-toolbox

  • Package documentation: docs/packages/wallet/wallet-toolbox.md
  • Source: packages/wallet/wallet-toolbox
  • Release note: Retains BRC-95 internalization compatibility, preserves typed AtomicBEEF, competing BEEF, and wallet review errors across portable and historical wallet JSON representations, leaves opaque WAB response JSON unchanged, keeps listOutputs totalOutputs stable across every Knex and IndexedDB page, and keeps balanceAndUtxos paging bounded under that stable-total contract.
  • Migration: No consumer migration is required. Canonical AtomicBEEF and existing number-array behavior are unchanged; upgrade to @bsv/sdk 2.4.1 or later for cross-version JSON and wallet-error compatibility. listOutputs callers now receive the full matching count on short and out-of-range pages instead of a page-local count.
Public subpathRuntime target(s)Declaration target(s)
../out/src/index.js./out/src/index.js./out/src/index.d.ts
./out/src/sdk./out/src/sdk/index.js./out/src/sdk/index.js./out/src/sdk/index.d.ts
./out/src/*./out/src/*.js./out/src/*.d.ts
./package.json./package.json—

@bsv/wallet-toolbox-client

  • Package documentation: docs/packages/wallet/wallet-toolbox-client.md
  • Source: packages/wallet/wallet-toolbox/client
  • Release note: Carries the browser Wallet Toolbox internalization and BRC-100 JSON byte-boundary compatibility fixes, including portable wallet review errors, historical response recovery, and stable listOutputs totals for IndexedDB pagination.
  • Migration: No consumer migration is required. Browser exports, wire types, and canonical AtomicBEEF behavior are unchanged; use @bsv/sdk 2.4.1 or later. IndexedDB listOutputs callers now receive the full matching count on every page.
Public subpathRuntime target(s)Declaration target(s)
../out/index.client.mjs./out/index.client.mjs./out/index.client.cjs./out/index.client.d.mts./out/index.client.d.mts./out/index.client.d.cts
./package.json./package.json—

@bsv/wallet-toolbox-mobile

  • Package documentation: docs/packages/wallet/wallet-toolbox-mobile.md
  • Source: packages/wallet/wallet-toolbox/mobile
  • Release note: Carries the mobile Wallet Toolbox internalization and BRC-100 JSON byte-boundary compatibility fixes, including portable wallet review errors and historical response recovery.
  • Migration: No consumer migration is required. React Native exports, wire types, and canonical AtomicBEEF behavior are unchanged; use @bsv/sdk 2.4.1 or later.
Public subpathRuntime target(s)Declaration target(s)
../out/index.mobile.mjs./out/index.mobile.mjs./out/index.mobile.cjs./out/index.mobile.d.mts./out/index.mobile.d.mts./out/index.mobile.d.cts
./package.json./package.json—

create-bsv-app

  • Package documentation: docs/packages/helpers/create-bsv-app.md
  • Source: packages/helpers/create-bsv-app
  • Release note: Adds TTN to the CLI, browser configurator, configuration model, and persisted project-manifest network choices.
  • Migration: Existing mainnet and testnet scaffolds are unchanged. New TTN projects pass --network ttn or select TerraTestNet in the configurator.

CLI entry points: {"create-bsv-app":"dist/index.js"}.

Public subpathRuntime target(s)Declaration target(s)
../dist/index.js./dist/index.d.ts

Change procedure

  1. Change the public package and select the SemVer impact from its packed API, runtime, wire, persistence, and declaration changes.
  2. Bump only affected package manifests and first-party dependents whose packed contract changes.
  3. Update the matching entry in governance/package-release-notes.json, including explicit migration guidance even when no consumer action is required.
  4. Run pnpm docs:packages, pnpm docs:packages:check, pnpm check-versions, packed-consumer checks, and the full release gates.
  5. After an authorized publication, update publishedVersion to the registry result and set releaseType to none only when source and npm match.