Skip to content
Start of main content
Crying bunny
Carrot

When taproot?

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.

Bunny hacking on bitcoin at its laptop

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.

Code changes for adding Bech32m sending support

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.

Carrots growing into the ground

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.

Bunny hacking on bitcoin at its laptop

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.

Versatile Single-sig

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

      Two bunnies testing bitcoin wallets on their phones

      Get Involved

      Help push the industry forward by testing wallets and other services for Bech32m and P2TR support. Just follow these steps.

      1. Select an untested wallet, exchange, or other bitcoin service from the above list.
      2. 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.
      3. 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.
      4. 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.

      Sample Address

      A QR code of a Bech32m bitcoin address

      Terminology

      • 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.

      Join the discussion

      Project Contributors