Bitcoin Cash Standards

An overview of standards in Bitcoin Cash

Bitcoin Cash Protocol

The Bitcoin Cash Protocol is documented on documentation.cash.
Additional resources: bitcoincashresearch.org and cash.coin.dance.

Ticker symbol & currency code

The ticker symbol and de facto currency code for Bitcoin Cash is: BCH.
BCH is not compatible with ISO 4217, and while XBC is in conflict with European Unit of Account 9, BCH is already widely adopted and accepted as a "standard".

Units

BCH is a standard in practice, but no formal agency for units is in place.

Abbreviation Unit Fraction (BCH)
BCH bitcoin-cash 1
mBCH milli-bitcoin-cash 0.001
sat (plural: sats) satoshi (plural: satoshis) 0.000 00001

Logo

The Bitcoin logo is tilted -20 degrees (instead of +20 degrees Bitcoin Core uses). bch.info recommends a green logo (HTML color: #0AC18E). Example:

Light green Bitcoin Cash logo

Transaction fees

Transaction fees are not standardized, but the recommended and most widely used transaction fee setting is 1 sat/byte (one satoshi per byte).

URI scheme

The URI Scheme syntax for Bitcoin Cash is:
Syntax: bitcoincash:<address>[?[amount=<size>][&][label=<label>][&][message=<message>]]
Sample: bitcoincash:qze75dks3vtgr3ezeg0jgkmezl2ttvpylyrk26dlsq?amount=0.02&label=URI%20Scheme%20Test
IANA assignment

The URI Scheme syntax for SLP tokens on the Bitcoin Cash blockchain is:
Syntax: simpleledger:address?field1=param1&field2=param2
Sample: simpleledger:qze75dks3vtgr3ezeg0jgkmezl2ttvpyly0dppclw7
IANA assignment

A proposal for a URI Scheme for Cash Accounts exists, but there is no official IANA assignment. The syntax is similar to the bitcoincash URI Scheme.
Syntax: cashacct:<cashaccount>[?[amount=<size>][&][label=<label>][&][message=<message>]]
Sample: cashacct:GeorgEngelmann#119777?amount=0.01&label=0.01%20BCH%20for%20Georg%20Engelmann

Non-standard parameters such as op_return and op_return_raw have been implemented in Electron Cash and other wallets.

CashAddr format

The CashAddr format is the standard address format for Bitcoin Cash addresses. CashAddr was created to avoid confusion. Some wallets use the CashAddr format while others use the Legacy format.
The specification is available on GitHub.

Payment requests

Payment Requests are requests for specific amounts typically used in merchant transactions.
The specification is available on GitHub.

Cash Accounts

Cash Accounts are used to attach a human readable name to Bitcoin Cash addresses. The Cash Accounts specification is available on GitLab.
For more information about Cash Accounts visit cashaccount.info.

CashShuffle

CashShuffle is a fully decentralized privacy enhancing protocol for Bitcoin Cash. The CashShuffle specification is available on GitHub.
For more information about CashShuffle visit cashshuffle.com.

CashFusion

CashFusion provides high levels of privacy via a flexible scheme that allows an arbitrary number of inputs and outputs of non-standard amounts. It provides anonymous, trustless coordination with usually zero-knowledge of linkages revealed to other players or the server. The CashFusion specification is available on GitHub.
For more information about CashFusion visit: cashfusion.org.

CashChannels

CashChannels let users pre-approve future transactions, valued in any currency, to another person or company.
The first draft of a CashChannels authentication template is available on GitHub.

Simple Ledger Protocol

Simple Ledger Protocol (SLP) is a simple token system. It is comparable with Ethereum's ERC-20 Token Standard and provides greater integrity and transparency than traditional forms of asset accounting and trading. Anyone can use SLP to create their own token on the Bitcoin Cash blockchain.
The specifications are available on GitHub for SLP Type 1 and SLP NFT Type 1.
For more information about Simple Ledger Protocol visit slp.dev.

Memo protocol

Memo protocol is a protocol for sending messages/attaching text on the Bitcoin Cash blockchain.
The protocol specification is available on memo.cash.
Additional protocol codes have been implemented by Member and are available on GitHub.

CashScript

CashScript is a high level language enabling basic smart contract functionality on Bitcoin Cash. While these cash contracts are less powerful than Ethereum's smart contracts, CashScript was in many ways inspired by Ethereum's development ecosystem. Ethereum has always had one of the most accessible development ecosystems in terms of tooling, and with CashScript we want to bring that accessibility to Bitcoin Cash.
The CashScript documentation is available on cashscript.org.

CashID

CashID is an open protocol that allows secure authentication based on the public key cryptography infrastructure that is currently present in the Bitcoin Cash ecosystem.
The CashID specification is available on GitLab.

CashTokens

A proposal to enable two new primitives on Bitcoin Cash: fungible tokens and non-fungible tokens.
The CashTokens specification is available on GitHub.

Bitcoin Cash Metadata Registry

Bitcoin Cash Metadata Registry (BCMR) is an authenticated JSON file containing metadata about tokens, individual and organizational identities, contract applications, and other on-chain artifacts.
The BCMR specification is available on GitHub.

Reusable Payment Addresses (RPA)

Reusable Payment Addresses (RPA) allows receiving BCH on fresh addresses for each transaction without having to share your payment information multiple times.
The RPA specification is available on GitHub.