Beersy

appwalletcreation requecreation respo
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.

senderrecipientshared secretAES key
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.

signerverifiershared secretchild key
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.

utxoproof + unlockspent input
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.

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

app pagewallet pagecreateActionencryptgetVersion
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.

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

appwalletpayment submispayment acknow
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.

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

paymentsencryptioncertificateswallet
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
actionlabel filtermatched action
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 when a transaction is made, and later list transactions by those labels.

removal requeswallet permissremoved or err
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.

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

payerrecipientshared secretnote address
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
api callpermission rulallow or promp
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.

referenceuniqueness+peraction or erro
BRC-153

Action References for BRC-100 Wallets

Once a wallet starts building a payment, it hands back a token needed to finish signing or to cancel it. If an app crashes, loses that token, or is in the middle of a multi-step approval when something goes wrong, there was previously no standard way to find that in-progress payment again or look it up by ID. This makes it possible to recover, resume, or safely abort a payment the app can no longer locate.

permission requser decisiongrant or deny
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.

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

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

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

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

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

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

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

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

  • 53

    Certificate Creation and Revelation

    A certificate 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.

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

  • 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 certificates that are no longer wanted.

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

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

    Action References for BRC-100 Wallets

    Once a wallet starts building a payment, it hands back a token needed to finish signing or to cancel it. If an app crashes, loses that token, or is in the middle of a multi-step approval when something goes wrong, there was previously no standard way to find that in-progress payment again or look it up by ID. This makes it possible to recover, resume, or safely abort a payment the app can no longer locate.

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

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

transactionspv checklistverified payme
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 and a short proof.

transaction
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
target valuematch header averified block
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.

magic+versiontxid+lengthpayloadpayload0
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
txo jsonraw transactio
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.

ef markerinput with pre
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
txid
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.

received txspv checklistverified tx
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
alicebobbloom filterinv
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.

candidate txsbelongs to subatomic beef
BRC-95

Atomic BEEF Transactions

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

beef v2bump datatxid only entr
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 name a transaction the other side already has instead of repeating it.

hashkeyseqnumsubtree idpayload0
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.

FF0X::B spaceshard groupscontrol groups::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.

SubtreeIDMsgTypePayloadLenhashes+fees0
BRC-132

Multicast Subtree Data Frame Format

Knowing a exists is not the same as having the transaction hashes in it. This defines a frame carrying those contents to everyone subscribed, so nobody has to request them.

rootnodecountnodehashespayload0
BRC-143

Subtree Data Frame Format

The list of transaction hashes making up a 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.

header+countssubtrees+coinbheightpayload0
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.

master seed
BRC-32

BIP32 Key Derivation Scheme

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

No author credited2023Key derivation
senderrecipientshared secretchild key
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.

shared secretaudit scoperevealed link
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.

mnemonicseedsha256private key
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
master pubcounterparty phmac scalarlinked pub
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