<>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

Install

Prerequisites

  • Node.js ≥ 22 — Check with node --version
  • npm, pnpm, or yarn
  • A BSV wallet browser extension (for browser apps — e.g. MetaNet Client)

Install @bsv/simple

The recommended entry point for most developers:

bash
npm install @bsv/simple @bsv/sdk

@bsv/sdk is a peer dependency and must be installed alongside @bsv/simple.

Entry Points

Import pathEnvironmentUse case
@bsv/simple/browserBrowserConnect to user's wallet extension
@bsv/simple/serverNode.jsSelf-custodial server wallet

Browser

typescript
import { createWallet, Certifier, DID, Overlay } from '@bsv/simple/browser'
import { CredentialSchema, CredentialIssuer, MemoryRevocationStore } from '@bsv/simple/browser'

Server

typescript
import { ServerWallet, FileRevocationStore } from '@bsv/simple/server'

In Next.js or frameworks with mixed SSR/browser bundling, use dynamic import to keep server-only deps out of the browser bundle:

typescript
const { ServerWallet } = await import('@bsv/simple/server')

TypeScript

No additional @types/ packages needed — @bsv/simple ships full TypeScript declarations.

typescript
import type { BrowserWallet } from '@bsv/simple/browser'
import type { PaymentOptions, TokenOptions } from '@bsv/simple'

Framework Notes

Next.js

Turbopack requires extra config to prevent server-only packages from being bundled for the browser. Add this to next.config.ts:

typescript
const nextConfig = {
  serverExternalPackages: ['@bsv/wallet-toolbox', '@bsv/simple']
}
export default nextConfig

Then import @bsv/simple/server only in Server Components or API routes. See the Next.js integration guide for the complete setup.

React / Vite

No special configuration needed. Import from @bsv/simple/browser in your components.

Vanilla TypeScript / Node.js

No special configuration needed. Use @bsv/simple/server for Node.js scripts and agents.

Protocol-Level Work

If you need direct access to cryptographic primitives, Script, transaction construction, or BEEF encoding — skip @bsv/simple and use the SDK directly:

bash
npm install @bsv/sdk

See @bsv/sdk for the full API surface.

Next Steps

  • Get Started — Connect a wallet and send your first payment
  • Choose Your Stack — Pick the right packages for your use case
  • Key Concepts — BEEF, BRC-100, wallets, overlays, identity