user96532: What can be the contents of an P2TR output script? Is it always OP_1 0x20 <32-bit public key>? Can multisig script be there, and if yes - in what format, and more importantly - how do I convert that script to an address?

user47827: 
What can be the contents of an P2TR output script? Is it always OP_1 0x20 <32-bit public key>?

A Taproot output contains a 32 byte witness program (a tweaked internal key or an untweaked public key if eschewing the tweak) after OP_1. The OP_1 (01) makes it clear that it is a SegWit v1 output rather than say a SegWit v0 output (00). Any scripts are included in the leaves of the Taproot tree and hashed up to a Merkle root (which tweaks the internal public key) so the witness program can commit to various leaf scripts.

Can multisig script be there, and if yes - in what format?

A multisig script can be in a leaf or multiple leaves of the Taproot tree. Note that a Taproot multisig script uses the opcode OP_CHECKSIGADD rather than OP_CHECKMULTISIG (outlined in BIP 342).

How do I convert that script to an address?

The leaf scripts are hashed within the Taproot (Merkle) tree. The Merkle root then tweaks the internal public key. A breakdown of bech32m (SegWit v1) addresses is here. This tweaked internal public key (or witness program) is directly included within the address.

96532: <p>What can be the contents of an P2TR output script? Is it always <code>OP_1 0x20 &lt;32-bit public key&gt;</code>? Can multisig script be there, and if yes - in what format, and more importantly - how do I convert that script to an address?</p>
 47827: <blockquote>
<p>What can be the contents of an P2TR output script? Is it always OP_1 0x20 &lt;32-bit public key&gt;?</p>
</blockquote>
<p>A Taproot output contains a 32 <strong>byte</strong> witness program (a tweaked internal key or an untweaked public key if eschewing the tweak) after <code>OP_1</code>. The <code>OP_1</code> (01) makes it clear that it is a SegWit v1 output rather than say a SegWit v0 output (00). Any scripts are included in the leaves of the Taproot tree and hashed up to a Merkle root (which tweaks the internal public key) so the witness program can commit to various leaf scripts.</p>
<blockquote>
<p>Can multisig script be there, and if yes - in what format?</p>
</blockquote>
<p>A multisig script can be in a leaf or multiple leaves of the Taproot tree. Note that a Taproot multisig script uses the opcode OP_CHECKSIGADD rather than OP_CHECKMULTISIG (outlined in <a href="https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki" rel="nofollow noreferrer">BIP 342</a>).</p>
<blockquote>
<p>How do I convert that script to an address?</p>
</blockquote>
<p>The leaf scripts are hashed within the Taproot (Merkle) tree. The Merkle root then tweaks the internal public key. A breakdown of bech32m (SegWit v1) addresses is <a href="https://bitcoin.stackexchange.com/questions/100508/can-you-break-down-what-data-is-encoded-into-a-bech32-address">here</a>. This tweaked internal public key (or witness program) is directly included within the address.</p>
