BTCPay Server
Self-hosted crypto checkout for Krikkit. Install the BTCPay marketplace addon, point it at your BTCPay Server, and unlock packs when invoices settle.
Krikkit never runs a Bitcoin node. The addon is an API client + signed webhook handler.
Requirements
- Krikkit 2.1.0+
- A reachable BTCPay Server (Docker on your VPS is the usual setup)
- Greenfield API key with permission to create/read invoices for one store
- HTTPS on both Krikkit and BTCPay (production)
Install
- Marketplace → install BTCPay (or drop
extensions/Btcpay and register in the ledger)
- Dashboard → Payment Methods → BTCPay
- Fill:
- Server URL —
https://btcpay.yourdomain.com (no path required)
- Store ID — from BTCPay → Stores
- API key — Greenfield token (least privilege)
- Webhook secret — created with the webhook below
- Copy the Webhook URL into BTCPay → Store → Settings → Webhooks
Subscribe at least to InvoiceSettled
- Enable the method → Test connection
Security (built-in)
- Server URL must be HTTPS; private / metadata / localhost targets are rejected (SSRF guard)
- Outbound calls re-check DNS (anti-rebinding) and do not follow redirects
- Webhooks require
BTCPay-Sig: sha256=… HMAC on the raw body
- Before unlocking a pack, Krikkit re-fetches the invoice from Greenfield and checks amount, currency, store, and metadata
- Secrets are encrypted at rest like other payment methods
Operator responsibility
You run and update BTCPay, firewall the VPS, back up seeds / Lightning data, and choose testnet vs mainnet. Deep42 does not host your node or recover lost wallets.
Refunds
On-chain refunds are handled in BTCPay Server. Krikkit will not auto-refund crypto from the invoice desk in v1.