BitPay recently launched a public beta for Bitcoin Cash support in our Copay bitcoin wallet. To prevent users from accidentally sending Bitcoin Cash to a Bitcoin wallet and vice versa, BitPay is adopting a few new conventions for addresses, payment URIs, and BIP70 payment requests. We will follow these conventions in all of our software that supports the Bitcoin Cash block chain.
Like Bitcoin, Bitcoin Cash supports pay to public key hash (p2pkh) and pay to script hash (p2sh) addresses. These addresses include a version byte. To prevent users from unintentionally sending BCH to a BTC wallet or BTC to a BCH wallet, we will use a distinct version byte for BCH addresses. The version byte is set to 28 for p2pkh addresses and 40 for p2sh addresses.
All BitPay software, including block explorers, will use these new address versions. Historical data extending back prior to the BCH fork will also be presented using these new conventions. This means that in some circumstances when researching history of both BTC and BCH, it may be necessary to convert addresses between formats.
If you wish to translate a BCH address with the current format to the new address convention, you can use our new Address Translator tool: https://bitpay.github.io/address-translator/
We will use the new protocol specifier “bitcoincash:” for payment URIs. When generating a BCH URI, addresses will be specified using the new address formats. When decoding a BCH URI, we will only accept addresses using the Bitcoin Cash address formats.
For short term compatibility reasons, we will allow a BTC address to be used in a BCH URI. This would allow our wallet software to send BCH to an address obtained from a wallet or exchange that does not yet support these new conventions. Conversely, we will offer a means of creating a BCH URI using a BTC address to receive a payment from a wallet or service that has not yet adopted these new conventions. Once it appears that most wallets and services will adopt these new conventions in the near future, it will not be necessary for us to maintain these compatibility features.
BIP-70 Payment Requests
Payment requests as specified by BIP-70 include a network field. For BCH payment requests, the network field will be set to “bitcoincash”.