Uploaded December 2024 | Updated September 2026, 2 hours ago
Try it out here: supertestnet.github.io/p2pk_playground
An output is basically another name for a "recipient" in a bitcoin transaction. Every transaction contains two sections, Inputs and Outputs. Inputs are essentially the senders; outputs are essentially the recipients. Normally, an output in a bitcoin transaction contains two things: (1) the recipient's bitcoin address (2) an amount sent there in that transaction.
P2PK means "pay to pubkey." A P2PK output is an output like normal except instead of sending money to a bitcoin address, the transaction sends money to a "raw pubkey." So the output looks funny -- there's just a public key there, not a normal bitcoin address.
In the early days of bitcoin, it was common to send money directly to your recipient's public key, by requesting a new one from their node whenever you wanted to send them money. Eventually, it became popular to use bitcoin addresses instead, because they were designed for "offline" usage -- you could just stick them on a website somewhere without needing to run a node and keep it online to dole out pubkeys. But bitcoin still supports the old ways because devs are sticklers about backward compatibility.
If you want to create a P2PK output, just follow the instructions on the page below and you'll do it yourself on a bitcoin testnet.
supertestnet.github.io/p2pk_playground
Try it out here: supertestnet.github.io/p2pk_playground
An output is basically another name for a "recipient" in a bitcoin transaction. Every transaction contains two sections, Inputs and Outputs. Inputs are essentially the senders; outputs are essentially the recipients. Normally, an output in a bitcoin transaction contains two things: (1) the recipient's bitcoin address (2) an amount sent there in that transaction.
P2PK means "pay to pubkey." A P2PK output is an output like normal except instead of sending money to a bitcoin address, the transaction sends money to a "raw pubkey." So the output looks funny -- there's just a public key there, not a normal bitcoin address.
In the early days of bitcoin, it was common to send money directly to your recipient's public key, by requesting a new one from their node whenever you wanted to send them money. Eventually, it became popular to use bitcoin addresses instead, because they were designed for "offline" usage -- you could just stick them on a website somewhere without needing to run a node and keep it online to dole out pubkeys. But bitcoin still supports the old ways because devs are sticklers about backward compatibility.
If you want to create a P2PK output, just follow the instructions on the page below and you'll do it yourself on a bitcoin testnet.
supertestnet.github.io/p2pk_playground










