Pearl · BIP-78

Pearl Payjoin

Two wallets, one transaction. The receiver's input joins the sender's payment in a single Taproot transaction — breaking the common-input-ownership heuristic, on Pearl rails.

Receiver — publish a payjoin offer

The receiver creates the offer: how much PRL they want, where it goes, and the fee terms they accept. The offer becomes a template PSBT (zero inputs, one payment output) plus a query string a real payjoin endpoint would serve at ?v=2&….

Honest limits

  • This is a lab: it builds the exact BIP-78 offer a server would serve, but it is not a server. A production receiver endpoint must also authenticate the sender and rate-limit requests.
  • Only PRL Taproot (prl1…) addresses are accepted — never testnet or foreign prefixes.

Lab self-test

Runs the whole protocol in this page — offer → signed original → proposal → 15 checks → sign → final transaction — with the public BIP-39 test vectors (abandon … about / legal … yellow). No network, no real funds. Then re-verifies every witness signature against the final sighash independently.

What this is, honestly