Beersy

Browse standards

161 standards in 12 topics. Press ⌘K to search.

appwalletrequestresponse
BRC-1

Transaction Creation

An application that wants to move money has to build a Bitcoin transaction, and building one correctly means handling keys, fees and change. This lets the application describe what it wants to happen and hand the actual work to a wallet, which already knows how to do it safely.

senderrecipientsharedchild
BRC-2

Data Encryption and Decryption

Two parties who want to exchange private data normally have to agree on a key first, and looking after that key is where most systems go wrong. This lets an application ask a wallet to encrypt something for one specific recipient without the application ever handling a key itself.

abcservice
BRC-3

Digital Signature Creation and Verification

Proving a message really came from you usually means keeping a signing key inside the application, which is both risky and easy to get wrong. This lets an application ask the wallet to sign on the user's behalf, and can produce a signature only the intended recipient is able to check.

inrulekept
BRC-4

Input Redemption

Spending money you already hold means pointing at the specific coins you own and proving you are allowed to spend them. This gives an application a way to name those coins when asking a wallet to build a transaction, along with everything the wallet needs to check the claim before it signs.

clientservercallresult
BRC-5

HTTP Wallet Communications Substrate

A wallet running on your own machine and a website open in your browser have no natural way to talk to each other. This defines one over ordinary web requests, so any application can reach any wallet on the same device without either side having been built for the other.

senderrecipientmessage
BRC-6

XDM Wallet Communications Substrate

Two web pages from different sites cannot safely reach into each other, which becomes a problem when one of them is your wallet. This uses the browser's own page-to-page messaging so an application can ask a wallet to act while each side stays sealed off from the other.

payerpayeeinvoicereceipt
BRC-7

Window Wallet Communication Substrate

Some wallets live inside the browser itself rather than running as a separate program. This gives applications one way to reach those, so a developer writes the same code regardless of where the user's wallet actually runs.

payerpayeeinvoicereceipt
BRC-50

Submitting Received Payments to a Wallet

An application that has received a payment on someone's behalf has no standard way to hand it over. This defines how a transaction and its proofs are submitted into a wallet, so the wallet recognises the funds as the user's own.

documentclaimsigned
BRC-53

Certificate Creation and Revelation

A is only useful if an application can ask for one and later prove you hold it. This defines the requests an application makes to a wallet to obtain a certificate and to reveal selected fields from it.

callerhostqueryreply
BRC-56

Unified Abstract Wallet-to-Application Messaging Layer

Every application wanting to use a wallet otherwise integrates with each one separately, making every wallet vendor a dependency. This proposes a single interface covering transactions, keys, encryption and identity, so either side can be replaced without rewriting the other.

Ty Everett +12023Wallet
basket
BRC-65

Transaction Labels and List Actions

A wallet holding hundreds of transactions with no way to tell them apart is hard to make sense of. This lets an application attach its own labels when a transaction is made, and later list transactions by those labels.

recordattributeseal
BRC-66

Output Basket Removal and Certificate Deletion

Anything an application can add to a wallet it should eventually be able to remove, or the wallet fills with things nobody needs. This adds the ability to drop outputs from a group and delete that are no longer wanted.

requestpolicyallowed
BRC-73

Group Permissions for App Access

An application asking the user for one permission at a time, over and over, teaches them to click yes without reading. This lets an application declare everything it needs up front, in one place, so the user makes one informed decision.

issuerholdersecretproof
BRC-109

PCW-1 : Peer Cash Wallet Protocol

Two people who want to pay each other directly still tend to route the payment through a service. This describes a wallet flow where the two devices negotiate between themselves and settle as several independent transactions.

No author credited2025Wallet
inrulekept
BRC-116

Wallet Permissions and Counterparty Trust

Wallets each decide in their own way what an application is allowed to do and how long consent lasts, so the same application behaves differently depending on the wallet. This specifies the whole lifecycle of a permission, without ambiguity.

inrulekept
BRC-219

Wallet Permission Prompt Liveness Contract

An application asking a wallet for permission gets an error if the person does not answer straight away, which is unfair to anyone who stepped away. This says the request waits for them rather than timing out.

envelopeprooftx
BRC-8

Everett-style Transaction Envelopes

Sending someone a transaction is not enough for them to trust it: they also need the earlier transactions and the proofs showing the money is real. This defines a single package carrying all of it, so software from two different vendors can exchange a payment the recipient can actually check.

root
BRC-9

Simplified Payment Verification

Confirming a payment traditionally means running a full copy of the blockchain, which is far too heavy for a phone or a web page. This describes how a recipient can satisfy themselves a payment is genuine using only block headers and a short proof.

merkle root
BRC-10

Merkle proof standardised format

Several documents refer to the same existing format, and calling it different things invites confusion. This gives that format a number in this series so other proposals can point at it without ambiguity.

No author credited2023Transactions
commitment
BRC-11

TSC Proof Format with Heights

identify the block they belong to by its hash, which means anyone checking one has to keep every block hash to look it up. This argues for using the block's height instead, roughly halving what a lightweight client needs to store.

versionbodylocktime
BRC-12

Raw Transaction Format

Bitcoin transactions travel as raw bytes, and anyone writing software that reads or builds them needs to know exactly what those bytes mean. This documents that layout, field by field.

No author credited2023Transactions
outerbodypayload
BRC-13

TXO Transaction Object Format

Raw transaction bytes are compact but almost impossible to search or filter. This describes a structured representation of the same data that can be stored in an ordinary document database and queried like any other record.

formatheaderdata
BRC-30

Transaction Extended Format (EF)

A transaction on its own does not carry enough to check that its signatures are valid: the amounts and locks being spent live in earlier transactions. This adds those missing pieces, so a service can validate what it is given without looking anything up.

No author credited2023Transactions
root
BRC-58

Merkle Path JSON format

A lightweight client asking a service for proof that a transaction is in a block needs that proof in a form it can read over an ordinary web request. This gives it a plain readable shape rather than raw bytes.

commitment
BRC-67

Simplified Payment Verification

Earlier descriptions of how a light client checks a payment were spread across documents and leaned on each other. This states the process on its own terms so it can be read and implemented without following a trail of references.

No author credited2023Transactions
merkle root
BRC-76

Graph Aware Sync Protocol

Two parties who each hold part of a transaction history need to reconcile without sending each other everything. This describes a back-and-forth that works out exactly what is missing and fills only the gaps.

outerbodypayload
BRC-95

Atomic BEEF Transactions

A bundle carrying several transactions leaves the recipient guessing which one is the subject and which are supporting evidence. This constrains the bundle to a single subject transaction so there is nothing to guess.

formatheaderdata
BRC-96

BEEF V2 Txid Only Extension

Two parties who have already exchanged proofs for a transaction resend all of it every time it comes up again. This lets a bundle name a transaction the other side already has instead of repeating it.

vertypelenpayload0
BRC-124

Multicast Transaction Frame Format

Sending transactions across a network at high volume needs an agreed wire format, and the old one carries too little information to route or reorder anything. This adds the fields needed to identify a flow and track position within it.

address spacegroupgroupgroup::ffff
BRC-129

IPv6 Multicast Group Address Assignments

Splitting traffic across many network groups only works if everyone agrees which group is which. This assigns the address ranges, separating the groups carrying data from those carrying control messages.

magicseqflagsbody0
BRC-143

Subtree Data Frame Format

The list of transaction hashes making up a subtree also needs to travel over an ordinary byte stream, not just one-to-many delivery. This defines that form and how a receiver takes it in.

hdrgroupsizedata0
BRC-144

Block Frame Format

A block pushed over a stream connection needs an agreed layout for its header, its parts and its first transaction. This defines it.

absecretkey
BRC-32

BIP32 Key Derivation Scheme

Keeping a separate backup for every key is impractical, so wallets generate many keys from a single seed. This documents the long-established scheme for doing that, along with the limitations worth understanding before adopting it.

No author credited2023Key derivation
partypartyECDHderived
BRC-42

BSV Key Derivation Scheme (BKDS)

Reusing one key for everything links all your activity together, and agreeing a fresh key for every interaction is impractical. This lets two parties generate an unlimited supply of keys for each other, where the sender can produce a key only the recipient can later unlock.

absecretkey
BRC-69

Revealing Key Linkages

Keys derived between two parties are deliberately unlinkable, which is usually the point and occasionally a problem when someone has to audit a relationship. This describes two ways to deliberately reveal that link, and is clear about how much each one gives away.

e0e1e2
BRC-75

Mnemonic For Master Private Key

A master key is a long string nobody can write down reliably, and losing it loses everything. This adapts the familiar twelve-to-twenty-four word phrase so a single key can be recorded as words and restored from them.

No author credited2023Key derivation
issuerholdersecretproof
BRC-84

Linked Key Derivation Scheme

Deriving a shared key normally needs one party's private key, which rules out cases where neither side can act. This extends the derivation so a key can be worked out from both parties' public keys alone.

Search Beersy

Search standards by number, title, author or topic