user100196: i have a confuse about the "getrawtransaction" RPC function,it returns a json object, which contains the addresses list in the "vout" object,like below.It took me some time to understand when the multiple addresses will contains many items,as i see, it always only one item, After reading the source code, I also found that even for multi signature transactions, there will not be multiple addresses. I need somebody help！please！
 {
      "value": 1000000,
      "script": "a914d550ecfc60d9f976de1f2a43bdf4e491b684cd6887",
      "spent_by": "cd2494071876f91e1f9505f5c5421088c7df2e6f939c17f742d3638bc7df789a",
      "addresses": [
        "3M8voDot82tBrQE7QWGy9WUWxp7gDU7owx"
      ],
      "script_type": "pay-to-script-hash"
 }

full url is: https://api.blockcypher.com/v1/btc/main/txs/46001fade64b8fa23815066ec62cc4a91ee0c8f4a4fad26e428bc4c0a2146290

I tried to send a multi sign transaction to the test network, and then looked at the data, and found that there was only one address.

user7272: It is a left over API design from bare multisig transactions.
The example you provided is a P2SH multisig - in this, the actual output script has no way of telling Bitcoin Core that it is a multisig output. It can be any script. Thus, Bitcoin Core just decodes it to a regular P2SH address.
Although no longer commonly used, there are also bare multisig outputs, which use multisig scripts that are not wrapped in a P2SH. These would be of the form M <pub1> <pub2> ... <pubN> N OP_CHECKMULTISIG for a M-of-N multisig (this is the redeem script for a P2SH multisig).
When Bitcoin Core used to decode these, you'd get one address per public key, hence the array.

100196: <p>i have a confuse about the "getrawtransaction" RPC function,it returns a json object, which contains the addresses list in the "vout" object,like below.It took me some time to understand when the multiple addresses will contains many items,as i see, it always only one item, After reading the source code, I also found that even for multi signature transactions, there will not be multiple addresses. I need somebody help！please！</p>



<pre><code> {
      "value": 1000000,
      "script": "a914d550ecfc60d9f976de1f2a43bdf4e491b684cd6887",
      "spent_by": "cd2494071876f91e1f9505f5c5421088c7df2e6f939c17f742d3638bc7df789a",
      "addresses": [
        "3M8voDot82tBrQE7QWGy9WUWxp7gDU7owx"
      ],
      "script_type": "pay-to-script-hash"
 }
</code></pre>

<p>full url is: <a href="https://api.blockcypher.com/v1/btc/main/txs/46001fade64b8fa23815066ec62cc4a91ee0c8f4a4fad26e428bc4c0a2146290" rel="nofollow noreferrer">https://api.blockcypher.com/v1/btc/main/txs/46001fade64b8fa23815066ec62cc4a91ee0c8f4a4fad26e428bc4c0a2146290</a></p>

<hr>

<p>I tried to send a multi sign transaction to the test network, and then looked at the data, and found that there was only one address.</p>
 7272: <p>It is a left over API design from bare multisig transactions.</p>

<p>The example you provided is a P2SH multisig - in this, the actual output script has no way of telling Bitcoin Core that it is a multisig output. It can be any script. Thus, Bitcoin Core just decodes it to a regular P2SH address.</p>

<p>Although no longer commonly used, there are also bare multisig outputs, which use multisig scripts that are not wrapped in a P2SH. These would be of the form <code>M &lt;pub1&gt; &lt;pub2&gt; ... &lt;pubN&gt; N OP_CHECKMULTISIG</code> for a M-of-N multisig (this is the redeem script for a P2SH multisig).</p>

<p>When Bitcoin Core used to decode these, you'd get one address per public key, hence the array.</p>
