Keep 100% Self-Custody · Retire Docker Node Sync & Disk Crashes

Migrate from Self-Hosted BTCPay Sunucusu to Managed Non-Custodial XPayr

Keep 100% self-custody of your keys while retiring $150+/month multi-chain full nodes, pruned disk alerts, broken altcoin plugins, and manual upgrades. Unlock 12 chains (Solana, Base, Arbitrum, TRON, TON, BTC, Arc) Instantly at 0.5%.

Cutover Time~15 Minutes (Parallel Safe)
BTCPay Sunucusu Fee$0 software fee + $80–$350/mo VPS/RPC/DevOps maintenance
XPayr Ödeme Geçidi KomisyonuFlat 0.5% ($0/mo · $0 Sweep)
XPayr Saklama (Custody) Modeli%100 Gözetimsiz (Non-Custodial) (99.5% Direct)

Why Engineering & Finance Teams Switch Away From BTCPay Sunucusu

Running Bitcoin + Monero + TRON + Solana + EVM indexers inside Docker consumes hundreds of GBs of NVMe storage and DevOps hours.
Community altcoin plugins frequently break during BTCPay major version upgrades, causing silent checkout downtime.
BTCPay lacks built-in ERC-2612 Gas Ücretsiz Permits, 21-tool MCP server endpoints, and ES256 wallet software licensing.

Field-by-Field API & Webhook Mapping (BTCPay Sunucusu → XPayr v1)

Keep your existing database order schema intact — map these 6 fields to cut over cleanly.

Integration Layer BTCPay Sunucusu (Legacy) XPayr Non-Custodial v1
Create Invoice (Greenfield) POST /api/v1/stores/{storeId}/invoices (token ...) POST https://xpayr.com/api/v1/payments (Bearer sk_live_...)
Amount & Currency amount + currency + metadata.orderId amount + currency + order_id + metadata
Redirect URL checkout.redirectURL -> checkoutLink success_url -> data.checkout_url
Webhook Header BTCPay-Sig: sha256=<hex> X-XPayr-Signature: <hex> (identical HMAC-SHA256 algorithm!)
Settled Webhook Olayı type === "InvoiceSettled" event === "payment.completed" / "payment.underpaid_accepted"
Saklama (Custody) Modeli Self-hosted xpub / wallet addresses 100% Non-Custodial wallet addresses (Safe, Ledger, Trezor)

Drop-In Migration Adapter (Python / FastAPI)

Copy-paste replacement ready for Testnet (sk_test_...) and Mainnet (sk_live_...).
import hmac
import hashlib
from fastapi import FastAPI, Request, HTTPException

app = FastAPI()

def verify_xpayr_or_btcpay_hmac(raw_body: bytes, sig_header: str, secret: str) -> bool:
    """Identical SHA-256 HMAC verification logic as BTCPay-Sig Greenfield webhooks."""
    clean_sig = sig_header.replace("sha256=", "").strip()
    expected = hmac.new(secret.encode("utf-8"), raw_body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, clean_sig)

@app.post("/webhooks/xpayr")
async def xpayr_webhook(request: Request):
    raw = await request.body()
    sig = request.headers.get("X-XPayr-Signature", "")
    if not verify_xpayr_or_btcpay_hmac(raw, sig, "whsec_your_secret"):
        raise HTTPException(status_code=401, detail="Invalid signature")
    event = await request.json()
    if event.get("event") in ("payment.completed", "payment.underpaid_accepted"):
        # Same fulfillment handler previously triggered by BTCPay InvoiceSettled
        pass
    return {"ok": True}

4-Step Zero-Downtime Canary Cutover Checklist

1

Connect non-custodial wallets & generate sk_test_ API keys

Register at /merchant/register, paste your destination EVM, Solana, TRON, or multisig wallet addresses, and generate a free Test ağı API'si key.

2

Deploy the X-XPayr-Signature HMAC-SHA256 webhook adapter

Add the raw-body HMAC-SHA256 verification handler alongside your existing BTCPay Sunucusu callback endpoint and test events in /tools/webhook-tester.

3

Canary 10%–25% of live checkout sessions in parallel

Route a slice of live crypto orders to POST /api/v1/payments (or enable the XPayr storefront plugin) to verify instant 99.5% doğrudan cüzdan tahsilatıyla otomatikleştirin.

4

Cut over 100% of traffic & export clean ERP ledgers

Switch primary crypto checkout routing to XPayr, withdraw any remaining custodial float from BTCPay Sunucusu, and export QuickBooks/Xero CSVs via /accounting.

Sıkça Sorulan Sorular — Switching From BTCPay Sunucusu

Do we sacrifice non-custodial security when moving from BTCPay Sunucusu to XPayr?

Never. XPayr never holds private keys or pools funds. Configure your own Ledger, Trezor, or Safe{Wallet} multisig addresses and receive 99.5% directly on-chain.

When is XPayr 0.5% cheaper than "free" self-hosted BTCPay Sunucusu?

Up to ~$30,000–$50,000/month in crypto volume, 0.5% ($150–$250) costs less than multi-chain VPS servers, commercial RPC nodes, and a single hour of DevOps maintenance — while supporting 12 chains out of the box.

Can we keep BTCPay for Bitcoin Lightning and use XPayr for multi-chain USDT/USDC?

Absolutely. Many teams route EVM, Solana, TRON, and TON stablecoins through XPayr with zero conflict.

Explore All 10 Sağlayıcı Geçiş Rehberi