<p>I know of only two ways that P2PK output were commonly constructed:</p>
<ul>
<li>Bitcoin's original codebase would use P2PK in mined coinbase outputs. This practice disappeared as the coinbase constructed gradually moved into specialized mining software.</li>
<li>The implementation of old pay-to-IP addresses would give a P2PK script to the other party. This practice disappeared as pay-to-IP was quickly discovered to be very insecure (it relies on trusting the IP address not to be intercepted), and disabled in software in 2010.</li>
</ul>
<p>It's possible that the BIP70 payment protocol was implemented in some places to convey a P2PK script, but I doubt it.</p>

CC BY-SA 4.0
2022-11-14T19:53:47.467Z
So then it was not possible to just give someone your public key and receive P2PK payment(s) there? One cannot call a public key a type of an address, only because there has never been a type of a wallet/software that constructed transactions given player's public key?
Alec Matusis
CC BY-SA 4.0
2022-11-14T19:58:00.357Z
@AlecMatusis That's right. It was possible with pay-to-IP addresses, but not with any offline address type that came afterwards (arguably it is possible with P2TR now, as that contains unhashed public keys, but it's a separate output type, distinct from P2PK).
Pieter Wuille
CC BY-SA 4.0
2022-11-13T00:17:17.267Z
2022-11-13T00:17:17.267Z
Pieter Wuille
<p>I understand that P2PK scripts do not have a corresponding address type. However, we see a lot of P2PK transactions, both coinbase outputs and non-coinbase outputs. What software was used to make these transactions? Did Bitcoin Core support sending to pubkeys using P2PK outputs? If so, what was the interface like? Did it accept raw pubkeys in hex?</p>

<bitcoin-core><address><p2pk>
How were P2PK transactions made?
Casey Rodarmor
# How were P2PK transactions made?

(Asked by: username_0 on 2022-11-12)

I understand that P2PK scripts do not have a corresponding address type. However, we see a lot of P2PK transactions, both coinbase outputs and non-coinbase outputs. What software was used to make these transactions? Did Bitcoin Core support sending to pubkeys using P2PK outputs? If so, what was the interface like? Did it accept raw pubkeys in hex?

**Tags:** bitcoin-core, address, p2pk


---

## 1 answers

### Answer by username_1 on 2022-11-13. Score: 7 | Accepted answer

I know of only two ways that P2PK output were commonly constructed:

* Bitcoin's original codebase would use P2PK in mined coinbase outputs. This practice disappeared as the coinbase constructed gradually moved into specialized mining software.
* The implementation of old pay-to-IP addresses would give a P2PK script to the other party. This practice disappeared as pay-to-IP was quickly discovered to be very insecure (it relies on trusting the IP address not to be intercepted), and disabled in software in 2010.

It's possible that the BIP70 payment protocol was implemented in some places to convey a P2PK script, but I doubt it.

> **Comments:**
> **username_2**: So then it was not possible to just give someone your public key and receive P2PK payment(s) there? One cannot call a public key a type of an address, only because there has never been a type of a wallet/software that constructed transactions given player's public key?  
> **username_1**: @username_2 That's right. It was possible with pay-to-IP addresses, but not with any offline address type that came afterwards (arguably it is possible with P2TR now, as that contains unhashed public keys, but it's a separate output type, distinct from P2PK).  

---

