How it works
FunkPay involves three independent actors. Each controls their own keys and infrastructure — no shared custody, no central service.
The merchant sells goods or services and wants to accept Bitcoin payments — on-chain, self-custodial, no payment processor.
The customer visits the merchant's website, sees a Bitcoin checkout widget, and pays with their own wallet.
The agent is a developer or power user who wants their AI (Claude, Cursor, or any MCP client) to make Bitcoin payments autonomously on their behalf.
~/.funkpay/mcp-stdio.mjs) that exposes 11 tools to the AI clientThe same four steps apply whether the payer is a human using the widget or an AI agent using MCP tools.
btcfunkpay derives a fresh Bitcoin address from the merchant's xpub and returns a BIP-21 payment URI with amount and label.
The customer scans the QR, or the AI agent calls send_payment. The transaction is broadcast to the Bitcoin network.
btcfunkpay detects the transaction in the mempool and fires a webhook. Another webhook fires on each confirmation milestone.
The merchant's backend receives the webhook and completes the order — ship goods, unlock content, provision a service.
Two parallel paths converge at the Bitcoin network and the merchant server.