BRC Standards Index

All Bitcoin Request for Comments (BRC) standards referenced in ts-stack source, specs, and conformance vectors.

Core Standards in ts-stack

BRCTitleDomainSpecKey Packages
BRC-14Script Evaluation & SighashScripts@bsv/sdk (5,116 conformance vectors)
BRC-29Peer-to-Peer Payment ProtocolPaymentsspec@bsv/paymail, @bsv/message-box-client
BRC-31HTTP Mutual Authentication HandshakeAuthspec@bsv/auth-express-middleware, @bsv/authsocket
BRC-42Key Derivation Scheme (BKDS)Crypto@bsv/sdk, @bsv/wallet-toolbox (heavy BRC-42 vector coverage in sdk/keys + wallet/brc100)
BRC-43Security Levels for BKDSCrypto@bsv/sdk
BRC-48PushDrop Token ProtocolTokens@bsv/overlay-topics, @bsv/btms
BRC-62BEEF — Background Evaluation Extended FormatTransactions@bsv/sdk
BRC-74BUMP — BSV Unified Merkle PathTransactions@bsv/sdk
BRC-95BEEF V2Transactions@bsv/sdk
BRC-62BEEF — Background Evaluation Extended FormatTransactions@bsv/sdk (conformance vectors)
BRC-74BUMP — BSV Unified Merkle PathTransactions@bsv/sdk (conformance vectors)
BRC-77Bitcoin Signed Message (BSM) CompatibilityCrypto@bsv/sdk (conformance vectors)
BRC-100BRC-100 Wallet InterfaceWalletspec@bsv/wallet-toolbox, @bsv/sdk (~950 vectors)
BRC-101Wallet storage adapterWalletspec@bsv/wallet-toolbox
BRC-103Peer Mutual Authentication FrameworkAuth@bsv/authsocket, @bsv/auth-express-middleware
BRC-104Message-Layer TransportAuth@bsv/authsocket
BRC-121HTTP 402 Payment ProtocolPaymentsspec@bsv/402-pay, @bsv/payment-express-middleware

Additional Referenced Standards

These BRCs appear in the codebase, specs, or conformance vectors:

BRCTitle / Purpose
BRC-1Transaction format
BRC-2Script encoding
BRC-3Address format
BRC-10Script templates
BRC-18Message signing (BSM)
BRC-22Output description
BRC-24Derivation path metadata
BRC-26UHRP — Universal Hash Resolution Protocol
BRC-30Output script hash
BRC-45Merkle service HTTP
BRC-52Script hash encoding
BRC-56Wallet authentication protocol
BRC-69Key derivation for encryption
BRC-73HD key encoding
BRC-76Wallet relay transport
BRC-77Bitcoin Signed Message (BSM) compat
BRC-78Transaction output locking
BRC-87Overlay host discovery
BRC-96Overlay sync
BRC-98Token permission hooks
BRC-99Token permission module
BRC-111Auth certificate
BRC-112Certificate field disclosure
BRC-114Credential schema
BRC-115Wallet storage

Standard Details

BRC-29: Peer-to-Peer Payment Protocol

Defines the minimum data required for passing a transaction from one person to another: a transaction derivation prefix, suffix, and sender public key. Transport-agnostic — works over Bluetooth, HTTP, WebSocket, or animated QR codes. The 402 Pay library (BRC-121) uses BRC-29 as its payment data structure.

Implementations: @bsv/paymail, @bsv/message-box-client, @bsv/402-pay

Conformance vectors: conformance/vectors/wallet/brc29/

BRC-31: HTTP Mutual Authentication Handshake

Specifies the x-bsv-auth-* HTTP headers that implement mutual-auth challenge-response over standard HTTP. Built on the BRC-103 Peer framework.

Implementations: @bsv/auth-express-middleware, @bsv/authsocket

Spec: specs/auth/brc31-handshake.yaml

BRC-42: Key Derivation Scheme (BKDS)

Deterministic key derivation for BSV wallets. All BRC-100 wallet keys are derived via BRC-42.

Implementations: @bsv/sdk (core), @bsv/wallet-toolbox (wallet context)

Conformance vectors: conformance/vectors/sdk/keys/key-derivation.json

BRC-48: PushDrop Token Protocol

Encodes token data in a Bitcoin output using OP_DROP followed by OP_CHECKSIG. Used by BTMS and overlay topics.

Implementations: @bsv/overlay-topics, @bsv/btms, @bsv/btms-backend

BRC-62: BEEF — Background Evaluation Extended Format

Binary format for peer-to-peer transaction exchange. Begins with 0100BEEF. Ordered: Merkle paths → ancestor transactions → final transaction, enabling streaming SPV validation.

Implementations: @bsv/sdk (Beef class)

BRC-74: BUMP — BSV Unified Merkle Path

Optimized Merkle proof format using block height as a lookup target. Supports compounding multiple paths into one structure.

Implementations: @bsv/sdk (MerklePath class)

Conformance vectors: conformance/vectors/sdk/transactions/merklepath.json

BRC-100: Wallet Interface

Standard RPC interface separating application logic from wallet/key management. Defines createAction, signAction, listActions, listOutputs, internalizeAction, getPublicKey, encrypt, decrypt, createHmac, verifyHmac, createSignature, verifySignature, certificate methods, and more.

Implementations: @bsv/wallet-toolbox (full implementation), @bsv/sdk (substrate types)

Spec: specs/sdk/brc-100-wallet.json

Conformance vectors: conformance/vectors/wallet/brc100/

BRC-103: Peer Mutual Authentication Framework

Underlying mutual-auth primitive. Defines a Peer abstraction that operates over WebSocket, HTTP, or direct byte streams.

Implementations: @bsv/authsocket, @bsv/auth-express-middleware, @bsv/message-box-client

BRC-104: Message-Layer Transport

Transport option for BRC-103 Peer sessions.

BRC-121: HTTP 402 Payment Protocol

Stateless settlement-gated HTTP. Server responds 402 Payment Required; client resends with a BEEF-encoded micropayment in headers. Single round-trip. Uses BRC-29 as its payment data structure. "Simple payments without any authentication other than HTTPS itself" — distinct from AuthExpress/PaymentExpress which require a mutual-auth handshake.

Implementations: @bsv/402-pay (client), @bsv/payment-express-middleware (server)

Spec: specs/payments/brc121.yaml

Finding Implementations

bash
# Packages implementing BRC-100
grep -r "BRC-100" docs/packages/

# Conformance vectors for BRC-42
ls conformance/vectors/sdk/keys/

Conformance Testing

Each core BRC is validated against JSON test vectors in conformance/vectors/. The TypeScript implementation generates these vectors; Go, Python, and Rust implementations validate against them.

BRCVector path
BRC-42conformance/vectors/sdk/keys/
BRC-74conformance/vectors/sdk/transactions/
BRC-29conformance/vectors/wallet/brc29/
BRC-31conformance/vectors/messaging/brc31/
BRC-100conformance/vectors/wallet/brc100/

See Conformance Testing for how to run the test suite.