I know that Bitcoin has many different transaction output types (P2SH, P2WPKH, P2WSH, P2TR, etc).

And I know that P2PKH is an old transaction output type that has existed since before Segwit and before Taproot.

Is it still possible to create a P2PKH output that works with Schnorr signatures?


2 Answers 2


No, it is not possible to use Schnorr signatures with old output types.

Current node software evaluating transactions expects an ECDSA signature for an input spending a P2PKH output. Putting a Schnorr signature there would be invalid per the accepted rules. Even if the rules were updated to allow using Schnorr signatures, old node software would always reject a transaction that uses the updated understanding, and this would therefore classify as a hardfork.


No, Schnorr signatures are only used in taproot spends (v1 segwit with 32 byte witness program) as specified in BIP-342. This cannot be P2SH wrapped, and are encoded only with Bech32m.

Script path spending of Taproot modifies OP_CHECKSIG(VERIFY) to use Schnorr signatures instead of ECDSA. A new opcode is also made available for batch verification, OP_CHECKSIGADD. This means it is no longer possible to use ECDSA in taproot scripts.

Your Answer

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

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