Accept crypto without holding a single key.
NasrPay derives a fresh address for every invoice straight from your extended public key —
no seed phrase, no private key, ever reaches the server. Just xpub in,
a unique address out.
Free to sign in and start creating invoices — no card, no plan, no seed phrase.
Built for however you get paid
Whether you're running a shop or just picking up work on the side, NasrPay turns a sale into income you actually keep.
- Keep more of every sale. Card processors take a cut before the money is even yours. Crypto payments land straight in an address only you control.
- More ways to pay, more sales. Customers who'd rather pay from a wallet than dig out a card can check out too.
- Free to start. Sign in, add your public key, and create your first invoice. No monthly bill eating into your income before you've made a sale.
- Your money, not ours. NasrPay never holds your funds — payments go directly to your own wallet.
- Turn any sale into income today. Selling a design, a class, or just splitting a bill? Send an address, get paid — no business bank account required.
- Keep what you earn. No monthly fee and no cut taken out — what your customer sends is what arrives.
- Set up from your phone. Sign in with the Google account you already use and create an invoice in about a minute.
- Always your money. Every payment lands in an address only your own key can spend from, not a shared company wallet.
What happens between an invoice and a payment
Three steps, running on Cloudflare's edge, none of which require your private key to exist anywhere but your own hardware.
Derive
Give NasrPay your xpub or zpub once. Each invoice increments a counter in KV and derives the next child address with BIP32 — the same math your hardware wallet already does, run against a key that can't sign anything.
Watch
A cron trigger polls mempool.space, public Ethereum and BSC RPC endpoints, and TronGrid every five minutes, checking the exact address issued for that invoice.
Confirm
Once the chain-specific confirmation threshold is met, the invoice moves to paid in D1 and your webhook fires with the transaction hash.
The split that keeps this non-custodial
An extended public key can only derive addresses. It cannot sign, move, or recover funds — which is the entire reason NasrPay is allowed to hold one.
Never touches our servers
- Your master seed and mnemonic phrase
- Any private key, on any chain
- Anything capable of authorizing a transaction
Stored in D1 and KV
- Your xpub / zpub, per merchant
- The current derivation index
- Invoice and payment records, address to transaction hash
One public key per chain family
Bitcoin uses BIP84 native SegWit; EVM chains share a single derivation tree; Tron follows Ethereum's curve with its own address encoding.
One request, one address
Create an invoice, get back a derived address. Everything else — watching, confirming, calling your callbackUrl — happens without another call from you.
curl -X POST https://nasrpay.com/admin/api/invoices \ -H "Content-Type: application/json" \ -b "session=<your session cookie>" \ -d '{ "orderId": "order_1042", "chain": "bitcoin", "currency": "BTC", "amountExpected": "0.00071204", "callbackUrl": "https://yourapp.com/webhooks/nasrpay" }'
{
"invoice": {
"id": "8f21ac3e-4b2d-4a91-9c3a-2e6f0d1b7a55",
"orderId": "order_1042",
"chain": "bitcoin",
"network": "mainnet",
"currency": "BTC",
"address": "bc1q9h2v0lk3f8p4jxr6y2edq7wc0uzn5tg8mvhr",
"amountExpected": "0.00071204",
"amountReceived": "0",
"status": "pending",
"confirmations": 0,
"requiredConfirmations": 2,
"callbackUrl": "https://yourapp.com/webhooks/nasrpay",
"metadata": null,
"createdAt": 1758556800000,
"expiresAt": 1758564000000,
"updatedAt": 1758556800000
}
}
Wire up your first invoice this afternoon.
Sign up free, add one public key, and NasrPay handles derivation, watching, and confirmation.