<p>That type of output is a Pay-to-Pubkey (P2PK) output. It does not have a corresponding address, and so bitcoind does not provide one.</p>
<p>Block explorers will often show addresses for these types of outputs, but that is incorrect. The address will actually refer to a different script than is actually present in the output, albeit the owner of the private key for the pubkey in the P2PK script could spend coins sent to the address shown by block explorers.</p>

CC BY-SA 4.0
2022-04-25T21:00:47.143Z
hmm, got it. But is there a way to "link" this P2PK output with a specific private key or even a P2SH? For example, can I discover if there is another transaction for the "same output" (or destination) of the example above? Just saw the `decodescript` function, but I didn't find out if there is a way to do that "link"
Vitor Duque
CC BY-SA 4.0
2022-04-26T01:09:19.253Z
@VitorDuque As it is a pubkey, it is inherently linked with a specific private key. P2SH is a completely different kind of script that is not related to P2PK. In order to lookup other transactions that contain this P2PK script, you will need some software that indexes output scripts and allows you to do lookups. Bitcoin Core does not have this built in (nor does it have one for addresses). However if you just want UTXOs, you can use `scantxoutset` with a descriptor for the script. If you use 23.0, `decoderawtransaction` will produce that descriptor for you.
Ava Chow
CC BY-SA 4.0
2022-04-21T16:30:31.990Z
2022-04-21T16:30:31.990Z
Ava Chow
<p>I was trying to see the beginning of the blockchain using the RPC and looks like the first Coinbase transaction doesn't have a <code>vout</code> address. Btw this happens a lot actually.</p>
<pre><code>$ bitcoin-cli getrawtransaction 0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098
01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0704ffff001d0104ffffffff0100f2052a0100000043410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac00000000

$ bitcoin-cli decoderawtransaction 01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0704ffff001d0104ffffffff0100f2052a0100000043410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac00000000 true
{
  &quot;txid&quot;: &quot;0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098&quot;,
  &quot;hash&quot;: &quot;0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098&quot;,
  &quot;version&quot;: 1,
  &quot;size&quot;: 134,
  &quot;vsize&quot;: 134,
  &quot;weight&quot;: 536,
  &quot;locktime&quot;: 0,
  &quot;vin&quot;: [
    {
      &quot;coinbase&quot;: &quot;04ffff001d0104&quot;,
      &quot;sequence&quot;: 4294967295
    }
  ],
  &quot;vout&quot;: [
    {
      &quot;value&quot;: 50.00000000,
      &quot;n&quot;: 0,
      &quot;scriptPubKey&quot;: {
        &quot;asm&quot;: &quot;0496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858ee OP_CHECKSIG&quot;,
        &quot;hex&quot;: &quot;410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac&quot;,
        &quot;type&quot;: &quot;pubkey&quot;
      }
    }
  ]
}
</code></pre>
<p>when I take a look at any Bitcoin explorer, it actually shows one address: <code>12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX</code> <a href="https://www.blockchain.com/btc/tx/0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098" rel="nofollow noreferrer">https://www.blockchain.com/btc/tx/0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098</a></p>
<p>What is the explanation for this?</p>

<transactions><coinbase.com>
Coinbase transaction withou vout address
Vitor Duque
# Coinbase transaction withou vout address

(Asked by: username_0 on 2022-04-21)

I was trying to see the beginning of the blockchain using the RPC and looks like the first Coinbase transaction doesn't have a `vout` address. Btw this happens a lot actually.

```
$ bitcoin-cli getrawtransaction 0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098
01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0704ffff001d0104ffffffff0100f2052a0100000043410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac00000000

$ bitcoin-cli decoderawtransaction 01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0704ffff001d0104ffffffff0100f2052a0100000043410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac00000000 true
{
  "txid": "0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098",
  "hash": "0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098",
  "version": 1,
  "size": 134,
  "vsize": 134,
  "weight": 536,
  "locktime": 0,
  "vin": [
    {
      "coinbase": "04ffff001d0104",
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 50.00000000,
      "n": 0,
      "scriptPubKey": {
        "asm": "0496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858ee OP_CHECKSIG",
        "hex": "410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac",
        "type": "pubkey"
      }
    }
  ]
}

```

when I take a look at any Bitcoin explorer, it actually shows one address: `12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX` <https://www.blockchain.com/btc/tx/0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098>

What is the explanation for this?

**Tags:** transactions, coinbase.com


---

## 1 answers

### Answer by username_1 on 2022-04-21. Score: 1 | Accepted answer

That type of output is a Pay-to-Pubkey (P2PK) output. It does not have a corresponding address, and so bitcoind does not provide one.

Block explorers will often show addresses for these types of outputs, but that is incorrect. The address will actually refer to a different script than is actually present in the output, albeit the owner of the private key for the pubkey in the P2PK script could spend coins sent to the address shown by block explorers.

> **Comments:**
> **username_0**: hmm, got it. But is there a way to "link" this P2PK output with a specific private key or even a P2SH? For example, can I discover if there is another transaction for the "same output" (or destination) of the example above? Just saw the `decodescript` function, but I didn't find out if there is a way to do that "link"  
> **username_1**: @username_0 As it is a pubkey, it is inherently linked with a specific private key. P2SH is a completely different kind of script that is not related to P2PK. In order to lookup other transactions that contain this P2PK script, you will need some software that indexes output scripts and allows you to do lookups. Bitcoin Core does not have this built in (nor does it have one for addresses). However if you just want UTXOs, you can use `scantxoutset` with a descriptor for the script. If you use 23.0, `decoderawtransaction` will produce that descriptor for you.  

---

