Introduction to Taproot

The idea of Taproot came from a post by Gregory Maxwell to the bitcoin-dev mailing list on 23 January 2018.

Almost four years later, on 14 November 2021, Taproot activated at block 709,632.

Three blocks later, the first Taproot spend appeared in block 709,635.

It has two outputs:

  • An OP_RETURN carrying the message: "I like Schnorr sigs and I cannot lie. @bitbug42."
  • A new P2TR output. Click Output 2 below to see it.
The first Taproot spend, block 709,635 (key path)
Inputs ()
Outputs ()

If you click Output 2 and read its scriptPubKey, it has this structure:

OP_1 OP_PUSHBYTES_32 <32-byte tweaked key>

All P2TR outputs have this exact structure. (We will explain this Taproot output in detail in the next sections)

This 32-byte tweaked key is structured in a way that can commit to multiple ways of spending:

  • single-sig
  • multisig
  • scripts
  • timelocks
  • ...

So whatever your script or spending condition is, the output always looks the same on-chain: 32 bytes containing a tweaked key.

And this is the reason we have Taproot in the first place: it gives us better privacy.


Taproot was activated as a group of three BIPs:

  • BIP340 Schnorr Signatures
  • BIP341 Taproot
  • BIP342 Tapscript

We will cover each of these BIPs in details in the next sections.

There’s a lot to learn, so let’s get started.

Suggest Edits