- Published on
Payjoin
P2EP, pay-to-endpoint, BIP 78, BIP 77
A cooperative Bitcoin transaction where the receiver also contributes an input, breaking the common-input heuristic, for increased on-chain privacy.
Payjoin is a way for a sender and a receiver to cooperate on a Bitcoin transaction so that the receiver also contributes one of their UTXOs as input. The result looks like an ordinary payment on chain, but it breaks the common-input heuristic that assumes all inputs to a transaction belong to the same wallet.
The sender and receiver talk to each other before broadcasting. The original version (BIP 78) requires the receiver to run a reachable HTTP endpoint. The newer async version (BIP 77) uses a relay so the two sides do not have to be online at the same time.
Beyond privacy, Payjoin can be used for UTXO consolidation and channel opens into existing outputs. Implementations live at payjoindevkit.org and in the rust-payjoin library.