Uppercasing BECH32 address and schema in QR code
See original GitHub issueUppercase QR codes are easier to scan, so we should make the effort to uppercase whatever characters we can in the URI.
Since Bech32 addresses are already uppercased by default in Bitcoin Core I expect that shouldn’t be a problem. Upper-casing the schema could be a different beast… but so far in my testing it seems that only CashApp implemented this in a wrong fashion. Also, before I changed it last year, BtcPayServer was uppercasing schema component of QR Code URI.
To make sure we’re not creating problems for merchants, this time I would prefer we first test which wallets support different format and then decide whether:
- We will uppercase BECH32
- We will uppercase schema
- We will do both
List of tested wallets
Here is the list of wallets tested so far, feel free to contribute by testing with wallets you have.
Wallet Name | BITCOIN:BECH32 | BITCOIN:bech32 | bitcoin:BECH32 | bitcoin:bech32 | Validated By |
---|---|---|---|---|---|
Atomic Wallet | ✔️ | ✔️ | ✔️ | ✔️ | @brijananand |
BitBoxApp | ✔️ | ✔️ | ✔️ | ✔️ | @Stadicus |
BitBoxApp for Android | ✔️ | ✔️ | ✔️ | ✔️ | @Stadicus |
Bitcoin Wallet Android (Schildbach) | ✔️ | ✔️ | ✔️ | ✔️ | @freerko |
Blockchain Info | ❌ | ❌ | ❌ | ❌ | @pavlenex |
Blockstream Green | ✔️ | ✔️ | ✔️ | ✔️ | @britttttk |
BlueWallet | ✔️ | ✔️ | ✔️ | ✔️ | @britttttk |
BLW Android | ✔️ | ✔️ | ✔️ | ✔️ | @anitaposch |
BRD | ❌ | ❌ | ✔️ | ✔️ | @pavlenex |
Breze | ✔️ | ✔️ | ✔️ | ✔️ | @Kixunil @brijananand |
BTCPay Server | ✔️ | ✔️ | ✔️ | ✔️ | @pavlenex |
Casa | ✔️ | ✔️ | ✔️ | ✔️ | @jlopp |
CashApp | ✔️ | ✔️ | ✔️ | ✔️ | @britttttk |
Coinbase Wallet | ❌ | ❌ | ✔️ | ✔️ | @Fichte42 |
Coinomi | ✔️ | ✔️ | ✔️ | ✔️ | @rockstardev |
Copay | ❌ | ❌ | ❌ | ❌ | @anitaposch |
Eclair | ✔️ | ✔️ | ✔️ | ✔️ | @rockstardev |
Edge | ✔️ | ✔️ | ✔️ | ✔️ | @pavlenex |
Electrum 4.0.8 | ✔️ | ✔️ | ✔️ | ✔️ | @pavlenex |
Electrum Android | ❌ | ❌ | ✔️ | ✔️ | @LinoxBE @anitaposch |
Exodus | ✔️ | ✔️ | ✔️ | ✔️ | @Fichte42 |
Fully Noded | ❌ | ✔️ | ❌ | ✔️ | @pedromvpg |
Hexa Wallet | ❌ | ❌ | ✔️ | ✔️ | @mutatrum |
Ledger Live Desktop | ❌ | ✔️ | ❌ | ✔️ | @onyb |
Ledger Live iOS | ❌ | ✔️ | ❌ | ✔️ | @woutersamaey |
Lighting by L.Labs | ❌ | ❌ | ❌ | ❌ | @brijananand |
Moonshine | ✔️ | ✔️ | ✔️ | ✔️ | @pedromvpg |
Muun | ✔️ | ✔️ | ✔️ | ✔️ | @Fichte42 |
Mycelium iOS | ❌ | ❌ | ❌ | ❌ | @britttttk |
Mycelium 3.7.0.5 - Android | ✔️ | ✔️ | ✔️ | ✔️ | @vjsingh-lite |
Phoenix | ✔️ | ✔️ | ✔️ | ✔️ | @Kixunil |
Samourai | ❌ | ❌ | ✔️ | ✔️ | @Kixunil |
Shakepay | ✔️ | ✔️ | ✔️ | ✔️ | @aiouy |
Specter Desktop | ❌ | ❌ | ❌ | ❌ | @mutatrum |
Strike | ✔️ | ✔️ | ✔️ | ✔️ | @rockstardev |
Trezor (wallet.trezor.io) | ❌ | ❌ | ✔️ | ✔️ | @schulzemic |
Trezor Suite | ✔️ | ✔️ | ✔️ | ✔️ | @prusnak |
Trust | ✔️ | ✔️ | ✔️ | ✔️ | @Fichte42 |
Wallet of Satoshi | ✔️ | ✔️ | ✔️ | ✔️ | @Kixunil |
Wasabi | ✔️ | ✔️ | ✔️ | ✔️ | @johnsBeharry |
Zap | ✔️ | ✔️ | ✔️ | ✔️ | @britttttk |
Zeus | ❌ | ❌ | ❌ | ✔️ | @davterra |
Bitcoin.com (owned by Roger Ver, scammer) | ❌ | ❌ | ✔️ | ✔️ | @pavlenex |
How to test
A) Scan the following QR codes from your wallet.
1. BITCOIN:BECH32
BITCOIN:BC1Q6APR55WRXTDTK3CJ6M69MXAYW99VVGTVDNVUNT?amount=0.00005142
2. BITCOIN:bech32
BITCOIN:bc1q6apr55wrxtdtk3cj6m69mxayw99vvgtvdnvunt?amount=0.00005142
3. bitcoin:BECH32
bitcoin:BC1Q6APR55WRXTDTK3CJ6M69MXAYW99VVGTVDNVUNT?amount=0.00005142
4. bitcoin:bech32
bitcoin:bc1q6apr55wrxtdtk3cj6m69mxayw99vvgtvdnvunt?amount=0.00005142
B) Report results in the comments in table view if possible. For example
Wallet| No | Yes | Yes | Yes |
DO NOT SENT ANY FUNDS. Just test if the QR codes above can be scanned and report.
Issue Analytics
- State:
- Created 3 years ago
- Reactions:9
- Comments:68 (28 by maintainers)
Top GitHub Comments
All right gents, I’ll open PR for uppercasing BECH32 by the end of the week, but rollout will go easy and slow as we build awareness… and keep an eye if we can uppercase more parts of URI.
Zeus is adding support for all cases with this PR: https://github.com/ZeusLN/zeus/pull/411. Will squeeze this into v0.5.0 and will be available for testing from v0.5.0-beta1 and onwards.
Shouts to @rockstardev for the reminder.