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.

action recordlabels arrayreference labe
BRC-153

Action Reference Labels for BRC-100 Wallets

When an app asks a wallet to build a transaction, the wallet hands back a temporary token needed to finish or cancel that transaction later. If the app crashes, loses memory, or the signing process gets interrupted before that token is used, there was previously no standard way to get it back, leaving the transaction stuck half-finished with no way to complete or cancel it.

root keysharereconstructed3 of 5
BRC-154

Pluggable Backup Services for BRC-140 Share Vaults

If you lose your wallet's key, recovery usually depends on either writing down a mnemonic yourself or trusting one company to hold the whole thing, which is a single point of failure. There was no shared way for a wallet to spread pieces of a recovery secret across several independent backup providers so that no single provider, or even a couple of colluding ones, could reconstruct your key alone. This makes it possible to enroll with multiple interchangeably and only get your key back once you have gathered enough pieces from enough of them.

addr1addr2addr3wallet
BRC-155

Pull-Based Receive Discovery

A wallet can hand out a fresh receive address to anyone, but if that sender is a custodial exchange, swap service, or anyone who just sends money without telling the wallet, there is no way for the wallet to notice the payment arrived. Watching every possible address the wallet could ever generate is slow, leaks privacy, and can still miss late payments. This lets a wallet reliably notice payments to addresses it gave out, without the sender's cooperation and without scanning forever.

wallet tagsid: keyother tags::ffff
BRC-164

Output Identity Tags for BRC-100 Wallets

Wallet apps often need to find one specific coin they are holding again later, for example after a restart, or to spend exactly that one and not another, but the usual way to look through a wallet's holdings means scanning everything and hoping the details still match. There was no agreed, simple way to give a single held item a durable nickname that a lookup could search for directly.

noSend actionexpiry deadlinreclaim or bro
BRC-177

Wallet-Enforced Expiry for `noSend` Actions

Handing an unbroadcast payment transaction to someone else means the money it uses is locked up in your wallet with no way to get it back until that person decides to broadcast it, or never does. Application-level timers cannot undo a transaction that already exists in someone else's hands. This makes it possible to offer a payment with a real, wallet-enforced deadline: if it is not broadcast in time, the wallet reclaims the funds itself.

method callmanifest+tierallow/deny
BRC-179

Signed Capability Manifest for Wallet and Tool-Server Method Exposure

A wallet or agent tool-server ships with a big list of methods, and the moment someone registers a new one on the server, it's live, whether or not anyone meant to expose it. There's no signed, checkable list of exactly which methods a given build actually allows, so an operator or auditor can't tell what surface they're exposing versus what quietly crept in. This makes it hard to reason about what an autonomous agent wallet can actually touch.

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.

pointHex + opevalidation + ed·P or d⁻¹·P
BRC-229

Wallet-Native Elliptic Curve Point Multiplication as a BRC-98 Module

Some multiplayer protocols, like shuffling encrypted playing cards among several parties, need each participant to secretly multiply and later un-multiply shared points by a personal number that nobody else, including the app, is ever allowed to see. Wallets could derive keys and sign things, but had no way to just take a point you hand them and multiply it by a hidden number and hand back the result, then later undo it. Without that, these masking protocols could not be built without asking someone to expose or approximate the secret scalar.

  • 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 Reference Labels for BRC-100 Wallets

    When an app asks a wallet to build a transaction, the wallet hands back a temporary token needed to finish or cancel that transaction later. If the app crashes, loses memory, or the signing process gets interrupted before that token is used, there was previously no standard way to get it back, leaving the transaction stuck half-finished with no way to complete or cancel it.

  • 154

    Pluggable Backup Services for BRC-140 Share Vaults

    If you lose your wallet's key, recovery usually depends on either writing down a mnemonic yourself or trusting one company to hold the whole thing, which is a single point of failure. There was no shared way for a wallet to spread pieces of a recovery secret across several independent backup providers so that no single provider, or even a couple of colluding ones, could reconstruct your key alone. This makes it possible to enroll with multiple backup services interchangeably and only get your key back once you have gathered enough pieces from enough of them.

  • 155

    Pull-Based Receive Discovery

    A wallet can hand out a fresh receive address to anyone, but if that sender is a custodial exchange, swap service, or anyone who just sends money without telling the wallet, there is no way for the wallet to notice the payment arrived. Watching every possible address the wallet could ever generate is slow, leaks privacy, and can still miss late payments. This lets a wallet reliably notice payments to addresses it gave out, without the sender's cooperation and without scanning forever.

  • 164

    Output Identity Tags for BRC-100 Wallets

    Wallet apps often need to find one specific coin they are holding again later, for example after a restart, or to spend exactly that one and not another, but the usual way to look through a wallet's holdings means scanning everything and hoping the details still match. There was no agreed, simple way to give a single held item a durable nickname that a lookup could search for directly.

  • 177

    Wallet-Enforced Expiry for `noSend` Actions

    Handing an unbroadcast payment transaction to someone else means the money it uses is locked up in your wallet with no way to get it back until that person decides to broadcast it, or never does. Application-level timers cannot undo a transaction that already exists in someone else's hands. This makes it possible to offer a payment with a real, wallet-enforced deadline: if it is not broadcast in time, the wallet reclaims the funds itself.

  • 179

    Signed Capability Manifest for Wallet and Tool-Server Method Exposure

    A wallet or agent tool-server ships with a big list of methods, and the moment someone registers a new one on the server, it's live, whether or not anyone meant to expose it. There's no signed, checkable list of exactly which methods a given build actually allows, so an operator or auditor can't tell what surface they're exposing versus what quietly crept in. This makes it hard to reason about what an autonomous agent wallet can actually touch.

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

  • 229

    Wallet-Native Elliptic Curve Point Multiplication as a BRC-98 Module

    Some multiplayer protocols, like shuffling encrypted playing cards among several parties, need each participant to secretly multiply and later un-multiply shared points by a personal number that nobody else, including the app, is ever allowed to see. Wallets could derive keys and sign things, but had no way to just take a point you hand them and multiply it by a hidden number and hand back the result, then later undo it. Without that, these masking protocols could not be built without asking someone to expose or approximate the secret scalar.

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.

transactionspv checksverified
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.

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.

outpoint beefbeef bundletransactions
BRC-158

Outpoint BEEF

Sometimes you need to prove something about one specific piece of a transaction, like a single stamped token, rather than the whole transaction. Existing proof formats everything needed to trust a transaction, but they assume the thing you care about is the transaction itself, not one output buried inside it. Without a way to say "prove this particular output," you either send far more data than needed or leave out the odd extra transactions a token proof actually depends on.

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

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

  • 10

    Merkle proof standardised format

    Several documents refer to the same existing merkle proof 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
  • 11

    TSC Proof Format with Heights

    Merkle proofs 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.

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

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

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

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

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

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

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

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

  • 158

    Outpoint BEEF

    Sometimes you need to prove something about one specific piece of a transaction, like a single stamped token, rather than the whole transaction. Existing proof formats bundle everything needed to trust a transaction, but they assume the thing you care about is the transaction itself, not one output buried inside it. Without a way to say "prove this particular output," you either send far more data than needed or leave out the odd extra transactions a token proof actually depends on.

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

mnemonicsharesentropyroot key
BRC-157

Entropy-Rooted Backup and Recovery with Mnemonics and Backup Shares

Wallet users end up locked into one backup method forever. If your wallet was set up with a written-down word phrase, you cannot later split your backup into shares you hand to trusted people, and if it was set up with shares, you cannot get a word phrase out of it. Someone switching wallets or wanting both options at once has been stuck picking one at creation time.

Search Beersy

Search standards by number, title, author or topic