Taproot offers bitcoin users and businesses big benefits. But to unlock them, first we need wallet interoperability. Taproot requires Bech32m, a new address format, which is slightly different from Bech32. This means that Taproot adoption will only take off when wallets support sending to this new format.
Adding Bech32m send support
Bech32 and Bech32m addresses differ only in their checksums. This simple two-line code change adds Bech32m address decoding support to the Bech32 Python reference implementation.
You're almost there. Next, check whether your frontend interface accepts Bech32m addresses. Finally, make sure your transaction building process creates outputs with witness version 1. Otherwise, you're burning bitcoin.
Creating P2TR outputs: supporting Bech32m
A little work. A lot more benefit
It won't be long before users take it for granted that Taproot works. Therefore, at a minimum, wallets and services should properly handle Bech32m addresses to prevent funds from being burned. Implementing sending support is simpler than it sounds, requiring only a bit more work than not supporting it.
Reduce support costs
With P2TR for Lightning already in the works, and other wallets moving towards P2TR, broader Bech32m wallet support is almost inevitable. This means that services not supporting sending to Bech32m when their customers attempt to transfer funds could face trouble at the support level. Integrating Bech32m today avoids the problem your customers will be facing.
Every day without P2TR adoption is a day without these and other great benefits
Lighter, More Private Multisig
Key aggregation provides multi-sig security with the same look and footprint as single-sig. P2TR channels make lightning channel closes indistinguishable from other keypath spends.
$ Inputs, $$$ Outputs
Pay-to-Taproot (P2TR) better aligns incentives, making it cheaper to spend stacked sats at the cost of slightly more expensive outputs.
Add powerful fallback spending conditions to single-sig outputs in the Taptree.
FROST Threshold Signatures
Multisig or FROST can enable Lightning channel owners to use multiple signing devices under the hood.
Replace Lost Keys with FROST
FROST makes it possible for users to lose and then replace a key without a wallet sweep or incurring the associated fees of an on-chain transaction.
The state of taproot support
Does not support sending to Bech32m
Supports sending to Bech32m
Help push the industry forward by testing wallets and other services for Bech32m and P2TR support. Just follow these steps.
- Select an untested wallet, exchange, or other bitcoin service from the above list.
- Generate a Bech32m address (which begins with
bc1p) from any wallet that supports it. If you don't already have one, download Muun. Then, send a small amount of bitcoin from the wallet you are testing to your Bech32m address. Please use an appropriately small amount, since on at least two occasions, incorrect implementation of Bech32m support caused lost funds. You can also use this sample address, but you won’t get the bitcoin back.
- To test receiving, select your bitcoin service’s "receive" or "deposit" feature. If the address begins with "bc1p," then this software already supports receiving P2TR outputs. You may also want to dig around its settings for a "Taproot" option as they may support it but not as the default receive method.
- Once you've finished your test, send us the results by opening an issue, opening a PR to edit the website, or mentioning it to us on Slack.
- Taproot - This is a soft fork change to bitcoin that went into effect in November 2021.
- P2TR (Pay-to-Taproot) - This is a new transaction output type which was introduced by Taproot.
- Bech32m - This is an address encoding format. A prospective sender must be able to decode a Bech32m address to create a P2TR output.