Is it possible to extract the taproot internal key out of a P2TR address?

  • Hi Orny, can you clarify whether you mean the taproot internal key, taproot output key, or both? tapInternalKey appears to be a name used only in bitcoinjs. Mar 14 at 5:57
  • Oh my bad, I think it's the taproot internal key, but I'm not 100% sure what the differences are. In the PSBT bip-0174 it is referd to as Taproot Internal Key: "The X-only pubkey used as the internal key in this output." github.com/bitcoin/bips/blob/master/bip-0174.mediawiki
    – Orny
    Mar 14 at 6:44

1 Answer 1


A P2TR address encodes a public key using Bech32m, which you can directly decode. This public key is often (as recommended by BIP341) the result of taking a different key (called "internal key") and tweaking it with the commitment to a taproot script tree. The internal key is not part of the address so it cannot be decoded from it and is only revealed when spending via the script path. Since protocols using taproot usually aim to use the key path whenever possible and some even make the script path unspendable (e.g. BIP86), you will not be able to determine the internal key for most taproot addresses (or even determine whether it exists at all).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.