<p>This is due to historical confusion between addresses and keys.</p>
<p>The original goal of this field was reporting the public keys involved in raw multisig outputs. However, those public keys were referred to by the P2PKH address corresponding to them.</p>
<p>This is confusing because obviously every output only corresponds to a single address. The feature is also useless now due to the introduction of P2SH, where instead of putting all public keys in the output, just a hash of script involving all those keys is stored.</p>
<p>EDIT: Since Bitcoin Core 23.0, the &quot;addresses&quot; field doesn't exist anymore, together with several other fields (like &quot;reqSigs&quot;) that are only relevant (but confusing) for bare multisigs.</p>

CC BY-SA 4.0
2018-07-13T01:28:38.317Z
So it's never used now? It's safe to just take element number 0?
The Quantum Physicist
CC BY-SA 4.0
2018-07-13T01:40:26.870Z
Raw multisig isn't used; there is no way for common wallet software to send to it. For anything but raw multisig, only a single address will be present.
Pieter Wuille
CC BY-SA 4.0
2018-07-12T17:24:37.910Z
2022-05-19T15:54:11.950Z
2022-05-19T15:54:11.950Z
Pieter Wuille
<p>Vout contains a list of addresses, which I noticed to be always with size = 1, if it exists. The following is an example from Bitcoin Testnet:</p>

<pre><code>{
      "value": 0.91840581,
      "n": 2,
      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 1416b8f3a1c1c7e3e73a05046f002e66004accc3 OP_EQUALVERIFY OP_CHECKSIG",
        "hex": "76a9141416b8f3a1c1c7e3e73a05046f002e66004accc388ac",
        "reqSigs": 1,
        "type": "pubkeyhash",
        "addresses": [
          "mhMB2g88n42ghQ5p1VA7Mt9VgTp9QvpDXU"
        ]
      }
    }
</code></pre>

<p>Why is the "addresses" (address) field a list? Are there any cases when this can take more than one address? Who can spend that then?</p>

<transactions><blockchain><address><json-rpc><script>
Why is the output address a list in RPC/console?
The Quantum Physicist
# Why is the output address a list in RPC/console?

(Asked by: username_0 on 2018-07-12)

Vout contains a list of addresses, which I noticed to be always with size = 1, if it exists. The following is an example from Bitcoin Testnet:
{
      "value": 0.91840581,
      "n": 2,
      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 1416b8f3a1c1c7e3e73a05046f002e66004accc3 OP_EQUALVERIFY OP_CHECKSIG",
        "hex": "76a9141416b8f3a1c1c7e3e73a05046f002e66004accc388ac",
        "reqSigs": 1,
        "type": "pubkeyhash",
        "addresses": [
          "mhMB2g88n42ghQ5p1VA7Mt9VgTp9QvpDXU"
        ]
      }
    }

Why is the "addresses" (address) field a list? Are there any cases when this can take more than one address? Who can spend that then?

**Tags:** transactions, blockchain, address, json-rpc, script


---

## 1 answers

### Answer by username_1 on 2018-07-12. Score: 1 | Accepted answer

This is due to historical confusion between addresses and keys.

The original goal of this field was reporting the public keys involved in raw multisig outputs. However, those public keys were referred to by the P2PKH address corresponding to them.

This is confusing because obviously every output only corresponds to a single address. The feature is also useless now due to the introduction of P2SH, where instead of putting all public keys in the output, just a hash of script involving all those keys is stored.

EDIT: Since Bitcoin Core 23.0, the "addresses" field doesn't exist anymore, together with several other fields (like "reqSigs") that are only relevant (but confusing) for bare multisigs.

> **Comments:**
> **username_0**: So it's never used now? It's safe to just take element number 0?  
> **username_1**: Raw multisig isn't used; there is no way for common wallet software to send to it. For anything but raw multisig, only a single address will be present.  

---

