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?
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.