Accept Pearl payments
Payment buttons, shareable invoices, and a WooCommerce plugin for the Pearl blockchain. Every invoice gets a fresh BIP-86 Taproot address derived from your account xpub — your keys never leave your wallet, and this page never sees them. Payments are verified live against Blockbook.
Merchant settings
Stored only in this browser (localStorage). Nothing is uploaded anywhere.
Payment button generator
Configure a button, preview the checkout, then paste the snippet into any website.
Invoice creator
Build a shareable invoice link with QR code, countdown, and live payment tracking.
SDK & WooCommerce
pearl-pay.js SDK
Dependency-free checkout buttons, modals, QR codes, and payment verification for any website.
<script src="pearl-pay.js"></script>
<div id="pay"></div>
<script>
PearlPay.createButton("#pay", {
address: "prl1p…", // fresh invoice address
grains: "150000000", // 1.5 PRL
label: "Order #123",
requiredConfirmations: 2,
onState: (s) => console.log(s),
});
</script>
WooCommerce plugin
Full WC_Payment_Gateway: xpub settings, per-order Taproot addresses derived in PHP, order-page QR + polling, server-side confirmation checks, address-pool management.
PHP 7.4+ with GMP. No private keys anywhere — the plugin derives public addresses from your account xpub.
Security notes
- Fresh address per invoice. Reusing addresses links your customers' payments together. This toolkit derives
m/86'/coin'/0'/0/indexper invoice — bump the index (or scan) every time. - Only
confirmedcounts.detectedmeans seen on the network (0-conf) — fine for low-value goods, not for anything expensive. Set required confirmations to match the order value. - An xpub is public data. Anyone with it can see all your invoice addresses (but can never spend). Keep your seed phrase offline regardless.
- Verify the domain. Invoice links are only trustworthy from your own site. Bookmark this page; beware lookalike domains.
- Testnet first. Get free tPRL from the faucet, then run a full payment on testnet before mainnet.