Concepts
Glossary
The BSV and create-bsv-app terms these docs use, each in one or two plain sentences.
Action#
The name a proof is signed for, such as login or create-note. Client and server must use the same one, so a proof for one route can't be used on another.
BRC#
"BSV Request for Comments": BSV's open standards, published at github.com/bitcoin-sv/BRCs (opens in a new tab).
BRC-100#
The standard interface between apps and wallets. @bsv/sdk exposes it as WalletInterface. Any BRC-100 wallet works with a generated app.
BRC-102#
"The deployment-info.json Specification": one file, deployment-info.json, that tells local and cloud tools how to build, run and deploy a BSV app. The two BRC-102 complete examples ship with it.
BRC-103#
Mutual authentication between peers. @bsv/auth implements the single-message proof the capabilities use.
BRC-42 / BRC-43#
How wallets derive a fresh key per purpose from an identity key, a protocol ID, a key ID and a counterparty.
Basket#
A named group a wallet uses to track the outputs that belong to one app or purpose, so the app can list and spend just its own.
Capability#
A feature the CLI wires into your project: wallet-connect, wallet-login or signed-requests. See Capabilities.
Complete example#
A starter that clones a maintained app from GitHub, as opposed to a generated starter.
Counterparty#
The other identity a key is derived with. For proofs it's the server's identity key, which is why a proof made for one server fails on another. 'self' and 'anyone' are special values.
Generated starter#
custom, react, express or full-stack: a fresh app the CLI builds and wires, ready for capabilities.
Identity key#
A user's public key, 66 hex characters starting 02 or 03. Stable per wallet and unforgeable. Use it as the user ID.
Manifest#
bsv-scaffold.json, the CLI's record of what it generated. See bsv-scaffold.json.
Micropayment#
A payment of a few satoshis, small enough to charge per request, per item or per second. BSV's low fees are what make them practical.
Nonce#
A random value inside every proof. The server records it and refuses to accept it twice. That's replay protection.
Overlay#
An overlay network or service: an index that watches the chain for just the transactions one app cares about, grouped under a topic, and answers lookups about them.
Proof#
The signed message a wallet produces: { action, identityKey, expiresAt, nonce }, plus the body's bytes when there is one. Valid for 2 minutes and accepted once.
Protocol ID#
[securityLevel, 'name'], which namespaces the keys a wallet derives for your app. Level 0 never prompts, 1 prompts once per app, 2 once per app and counterparty.
Relay#
The server-side service (@bsv/wallet-relay) that pairs a phone wallet with the web app over a QR code and a WebSocket.
Satoshi#
The smallest unit of BSV: one hundred-millionth of a coin.
sCrypt#
A TypeScript framework for writing BSV smart contracts: scripts that lock coins until their conditions are met.
Server identity#
The server's own key pair, from SERVER_PRIVATE_KEY, published at GET /api/identity. It must stay stable in production.
Signed request#
An API call that carries its own proof, bound to its action and exact body. No session needed. See signed-requests.
Teratestnet#
--network ttn: a free test network for Teranode, BSV's newer node software.
Testnet#
--network test, the default: a network with free, worthless coins for building and testing. Get some from the BSV Faucet (opens in a new tab).
Wallet connect#
The wallet-connect capability, in every generated starter: a Connect wallet button that finds a desktop wallet directly, or pairs a phone by QR code through the relay. It gives your app the wallet and the user's identity key.
Wallet login#
Passwordless login, the wallet-login capability: the wallet signs a one-time proof for the action login, and the server verifies it and learns the user's identity key. No password, no email, and no coins move.