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.

awaiting payment
xpubzpub6rFR7yS...QD5mdG
invoiceinv_4f21ac
index4821
pathm/84'/0'/0'/0/4821
addressbc1q9h2v0lk3f8p4jxr6y2edq7wc0uzn5tg8mvhr
A new index derives a new address every time — nothing here is reused, so nothing here needs a key to protect it.
0
seeds or private keys stored
4
assets across 3 chains
5 min
confirmation poll interval
1
public key per merchant, ever

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.

01

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.

02

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.

03

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.

Bitcoin
m/84'/0'/0'/0/i · bc1...
Ethereum
m/44'/60'/0'/0/i · 0x...
BNB Smart Chain
m/44'/60'/0'/0/i · 0x...
Tron
m/44'/195'/0'/0/i · T...

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.

POST /admin/api/invoices
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"
  }'
201 Created
{
  "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.