Choose Your Stack
Start from who controls the keys and how close you need to be to the protocol.
Browser app using a user's wallet?
-> @bsv/simple/browser
Backend agent with its own key?
-> @bsv/simple/server
Coming from another chain and want to build transactions explicitly?
-> @bsv/wallet-helper
Wallet implementation or wallet infrastructure?
-> @bsv/wallet-toolbox + BRC-100 spec
Protocol, crypto, scripts, transactions, BEEF, or conformance?
-> @bsv/sdkBrowser App
Use this when the user already has a local BRC-100 wallet such as BSV Desktop or BSV Browser.
npm install @bsv/simpleimport { createWallet } from '@bsv/simple/browser'
const wallet = await createWallet()
const recipientIdentityKey = '025706528f0f6894b2ba505007267ccff1133e004452a1f6b72ac716f246216366'
const result = await wallet.pay({
to: recipientIdentityKey,
satoshis: 1000
})
console.log(result.txid)The web app does not hold private keys. The wallet client finds an available substrate and forwards BRC-100 calls to the user's wallet application.
Transaction Builder
Use @bsv/wallet-helper when you want to construct transactions directly, but you do not want to drop all the way into raw WalletClient.createAction and signAction calls.
This is often the clearest starting point for developers coming from other blockchain stacks: you can think in terms of explicit transaction outputs, scripts, ordinals, metadata, inputs, and change, while the user's BRC-100 wallet still controls keys and signing.
npm install @bsv/wallet-helperRead this with the BRC-100 method reference when you need to understand what the builder sends to the wallet:
Server Agent
Use this for automated services, bots, funding agents, or test harnesses where the service owns a key.
npm install @bsv/simpleimport { ServerWallet } from '@bsv/simple/server'
const wallet = await ServerWallet.create({
privateKey: process.env.SERVER_PRIVATE_KEY!,
network: 'main',
storageUrl: 'https://store-us-1.bsvb.tech'
})Use a secret manager for SERVER_PRIVATE_KEY. Use a region-specific Wallet Infra endpoint when you operate your own deployment.
Wallet Builder
Use @bsv/wallet-toolbox when you are building a BRC-100 wallet, extending wallet storage, implementing permission UX, or porting the model to another language.
npm install @bsv/wallet-toolboxThe toolbox contains the reference pieces: Wallet, WalletStorageManager, storage providers, WalletSigner, Services, Monitor, key managers, permissions, and test utilities such as MockChain.
Read these together:
Protocol Engineer
Use @bsv/sdk for direct access to the core primitives.
npm install @bsv/sdkThe SDK provides secp256k1/r1 cryptography, hashing, scripts, transactions, BEEF (BRC-62), BUMP/Merkle paths (BRC-74), BRC-42 key derivation, ARC broadcasting, Chaintracks clients, BRC-100 interfaces, and wallet substrates.
Service Operator
Use the infrastructure docs when you need shared services rather than npm packages.
| Service | First page |
|---|---|
| Wallet state and UTXO storage | Wallet Infra |
| Store-and-forward encrypted messages | Message Box Server |
| Shared on-chain topic lookup | Overlay Server |
| Content-addressed files | UHRP servers |
| Wallet authentication backend | WAB |
| Block headers and Merkle roots | Chaintracks Server |
Decision Matrix
| What you're building | Start with | Usually adds |
|---|---|---|
| Browser app | @bsv/simple/browser | @bsv/message-box-client, overlays |
| Transaction-building app | @bsv/wallet-helper | @bsv/templates, BRC-100 method reference |
| Server agent | @bsv/simple/server | @bsv/402-pay, Message Box |
| BRC-100 wallet | @bsv/wallet-toolbox | Wallet Infra, WAB, Chaintracks |
| Protocol library | @bsv/sdk | Conformance vectors |
| Overlay node | @bsv/overlay, @bsv/overlay-express | @bsv/overlay-topics, GASP |
| Token system | @bsv/btms, @bsv/btms-permission-module | Overlay topics, wallet permissions |
| Authenticated API | @bsv/auth-express-middleware | BRC-100 wallet |
| Payment-gated API | @bsv/402-pay | @bsv/payment-express-middleware |
| File storage | @bsv/overlay-topics | UHRP server |
See Packages for the complete package list.