For the complete documentation index, see llms.txt. This page is also available as Markdown.

README

A repository for submitting, discussing, sharing, and indexing technical proposals for use across the Bitcoin ecosystem. Data models, user interfaces, script templates, encoding formats, communication protocols, and constructive critique of existing industry practice are all welcome. The goal is to provide a platform for sharing ideas without any bureaucratic overhead.

Contributing

Contributions from all builders are welcome and encouraged. To propose a new BRC, fork the repo and create a new markdown file using EXAMPLE.md as the template. The common structure is outlined below, which is a guideline to aid you rather than a strict requirement. Once your proposal is ready to share, submit a pull request so that others can review and discuss it.

To participate in discussions about existing proposals, simply open an issue and link back to the BRC file in question.

Iterative improvement

We believe in encouraging discussion and iterative improvement of proposals, resulting in incremental improvement within the bounds of the Bitcoin protocol. We welcome suggestions for improvement and are committed to working with contributors to improve proposals and ensure that they align with our guidelines.

Note that substantial revisions to standards (beyond fixing typos, adding context or wording) should go into a new standard that extends or revises the old one, so as not to disrupt existing implementations.

We look forward to your contributions and helping to create a world where transactions are seamlessly formed, and applications interact with each other with ease.

Read more about areas of interest on OpenStandards.cash

Current implementation map

The standards in this repository are vendor-neutral. Current BSV Association reference implementations include:

  • @bsv/sdk for TypeScript SDK primitives, transactions, identities, overlays, storage, and the BRC-100 WalletClient interface.

  • @bsv/wallet-toolbox for BRC-100 wallet storage, services, signing, monitoring, and wallet implementation tooling.

  • BSV Desktop and BSV Browser as BSV Association reference wallet/browser applications for the BRC-100 interface.

  • Overlay service implementations in bsv-blockchain/overlay-services, bsv-blockchain/overlay-express, and related overlay example repositories.

Vendor distributions can implement the same standards with their own branding and hosted service defaults. Examples include Babbage's Metanet Desktop / Metanet Explorer as well as the Hudos Browser built by Matt Archbold.

Structure

The BRCs repository is organized into directories, each representing a different category of proposal. Categories may include, but are not limited to:

  • Transaction Templates

  • Bitcoin Script Templates

  • Communication Protocols

Each proposal should be written as a markdown file and should loosely adhere to the following:

  • Title: A descriptive title for the standard being defined.

  • Author(s): Who wrote the standard and where did it come from? How can they be reached?

  • Abstract: A brief description of the proposed standard or template.

  • Motivation: The reasoning behind the proposal and why it is needed.

  • Specification: A detailed technical specification of the proposal.

  • Implementations: Information on how the proposal has been or can be implemented.

  • References: Any relevant literature or external resources related to the proposal.

Note that additional relevant content, identifiers or other information may be added to the document. Documents that already existed before the repository may not follow these requirements.

Things that help depict and understand the document, such as media, may also be added in a media subdirectory where appropriate.

Refer to the Banana-Powered Bitcoin Wallet Control Protocol for a fun example template you can copy when proposing your own standards.

Interpreting the Repository

This repository contains both active interoperability specifications and historical design context.

Use the directory README files and in-spec status notes to determine which documents currently define interoperable behavior in a given area. Where a newer BRC narrows, extends, or authoritatively re-specifies behavior, implementers should follow the newer normative document rather than inferring precedence from chronology alone.

Standards

BRC
Standard

0

1

Transaction Creation

2

3

4

Input Redemption

5

6

7

8

9

10

11

12

Raw Transaction Format

13

14

15

16

Pay to Public Key Hash

17

Pay to R Puzzle Hash

18

Pay to False Return

19

Pay to True Return

20

There is no BRC-20

21

Push TX

22

23

24

25

26

27

28

29

30

31

32

33

34

36

38

User Wallet Data Format

39

40

41

42

44

45

46

47

Bare Multi-Signature

48

Pay to Push Drop

49

50

51

List of user experiences

52

Identity Certificates

53

54

55

56

57

Legitimate Uses for mAPI

58

Merkle Path JSON format

60

61

63

64

65

66

67

68

69

Revealing Key Linkages

70

Paymail BEEF Transaction

71

Merkle Path Binary Format

72

73

74

75

76

Graph Aware Sync Protocol

77

78

80

81

83

84

85

88

89

90

91

92

Mandala Token Protocol

93

95

Atomic BEEF Transactions

96

102

104

105

106

Bitcoin Script ASM Format

107

108

109

113

Merkle Proof Token

116

117

118

119

120

121

Simple 402 Payments

122

123

124

125

126

127

128

129

130

131

132

133

134

135

138

139

License

Everything in this repository is subject to the Open BSV License.

Terms and Conditions

Terms and Conditions

Last updated