BchainPay logoBchainPay
Live on Ethereum · Polygon · Solana · Tron · BNB Chain

Accept crypto
like you accept cards.

BchainPay is a developer-first crypto payment gateway: accept stablecoin payments on five chains via one REST API. Confirmed payments collect into per-coin pockets you can withdraw on demand — signed webhooks and idempotent requests included.

  • ✓ Free sandbox
  • ✓ No KYC to test
  • ✓ SOC 2 in progress

Five chains. One API. One webhook contract.

  • Ethereum
  • Polygon
  • Solana
  • Tron
  • BNB Chain
Why BchainPay

Built for engineers who ship
on-chain payments to production.

Multi-chain by default

Ethereum, Polygon, Solana, Tron, and BNB Chain — one API, one webhook contract, one dashboard.

Pockets per Network / Coin

Every confirmed payment lands in a pocket — one balance per Network/Coin pair. Hold, top up, or withdraw on demand.

Withdraw to any address

Sweep any pocket to your own wallet with POST /v1/withdrawals. Signed in our vault, broadcast on-chain, confirmed by webhook.

Idempotency built-in

`Idempotency-Key` enforced at the edge with a 24h Redis cache and DB uniqueness. Replays are free.

Signed webhooks

HMAC-SHA256 with per-merchant secrets, key rotation, replay protection, and a 30-day retry queue.

Custodial vault, your control

A fresh address per payment from an HD wallet pool, AES-256-GCM encrypted keys, and audit logs on every state change.

Developers

One endpoint. Five chains. Same contract.

Create a payment intent against api.bchainpay.com — same request shape on every supported network.

POST /v1/payment-intents

Create a payment intent.

curl -X POST https://api.bchainpay.com/v1/payment-intents \
  -H "Authorization: Bearer $BCHAINPAY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "amount_cents": 4999,
    "currency": "USD",
    "settlement_currency": "USDC",
    "network": "polygon",
    "reference": "INV-2026-001"
  }'
Read the API reference →
201 Created

A signed webhook fires when paid.

// Webhook body — type: payment_intent.completed
{
  "id":                  "pi_3L9k…42",
  "status":              "completed",
  "amount_cents":        4999,
  "currency":            "USD",
  "settlement_currency": "USDC",
  "network":             "polygon",
  "pocket_id":           "pkt_usdc_polygon",
  "address":             "0x9f3a…b41C",
  "tx_hash":             "0x7d2e…01ab",
  "reference":           "INV-2026-001"
}
  • ✓ 99.95% uptime SLA
  • ✓ <200ms p99 API latency
  • ✓ 5 chains, 1 contract
How it works

Charge. Collect. Withdraw.

Every confirmed payment lands in your pocket for that Network/Coin pair. Sweep it to your own wallet whenever you like.

  1. 01

    Create a payment intent

    POST /v1/payment-intents with amount, currency, and network. We return a fresh on-chain address.

  2. 02

    Funds land in a pocket

    Once confirmed on-chain, the amount is credited to your USDC · polygon pocket and a signed payment_intent.completed webhook fires.

  3. 03

    Withdraw on demand

    POST /v1/withdrawals with a pocket id, amount, and destination address. We sign, broadcast, and confirm.

Pricing

Free to build. 0.5% to ship.

On-chain gas fees are passed through at cost. No setup fee, no monthly minimum on Sandbox or Growth.

Sandbox

Free

For building and testing.

  • All five chains on testnets
  • Full REST API & signed webhooks
  • Sandbox keys, no KYC
  • Community support
Start free
Most popular

Growth

0.5%/settled payment

For live businesses up to $1M/mo.

  • Production keys & dashboard
  • Pockets per Network/Coin
  • On-demand withdrawals
  • 99.9% uptime SLA · email support
Get API key

Scale

Custom

For high-volume and enterprise.

  • Volume discounts
  • Dedicated infra & 99.95% SLA
  • SSO, audit log export, custom contracts
  • White-glove onboarding
Talk to sales
Built for builders

Verify a webhook in four lines.

Every webhook is HMAC-SHA256-signed with your per-merchant secret and a timestamp. If your server misses one, just pull the latest state from the API.

  • ✓ OpenAPI 3.1 spec & Postman collection
  • ✓ HMAC-SHA256 signatures with replay protection
  • ✓ 30-day exponential-backoff retry queue
  • GET /v1/payment-intents/{id} as the source of truth
Open the docs →
// Verify a BchainPay webhook (Node.js)
const sig = req.headers['bchainpay-signature'];
const ok  = bchainpay.webhooks.verify(
  req.rawBody, sig, process.env.BCHAINPAY_WEBHOOK_SECRET
);

if (ok && req.body.type === 'payment_intent.completed') {
  fulfillOrder(req.body.data.reference);
}

Trusted by builders shipping on-chain payments

  • NodeMart
  • BitBrews
  • Helio Labs
  • Onchain&Co
  • Ledgerly
  • Stax Pay
FAQ

Questions, answered.

Which chains do you support?+

Ethereum, Polygon, Solana, Tron, and BNB Chain at launch. Base, Arbitrum, and Avalanche are next on the roadmap.

Where do my funds live?+

Each merchant has one pocket per Network/Coin pair (e.g. USDC · Polygon, ETH · Ethereum). Confirmed payments accumulate in those pockets in custodial wallets BchainPay operates. Withdraw to any external address you control, whenever you like.

How do withdrawals work?+

Call POST /v1/withdrawals with a pocket id, amount, and destination address — or click Withdraw in the dashboard. We sign the transaction in our vault, broadcast it on-chain, and fire a withdrawal.completed webhook with the tx_hash.

How are webhooks secured?+

Every webhook is signed with HMAC-SHA256 using a per-merchant secret. We include a timestamp to prevent replays and retry with exponential backoff for 30 days.

What happens if my server misses a webhook?+

Pull the latest state from GET /v1/payment-intents/{id} or GET /v1/pockets at any time. The API is the source of truth; webhooks are an optimization.

Is there a sandbox?+

Yes. The sandbox is free, supports all five chains on testnets, and requires no KYC. Sign up and get a key in under a minute.

Security & compliance

Defense in depth at every layer.

We treat keys, webhooks, and audit trails as first-class product surface — not an afterthought.

  • SOC 2 Type II (in progress)
  • HMAC-signed webhooks
  • AES-256-GCM key vault
  • Audit logs on every state change
  • Segregated custodial wallets

Read the full security overview on the docs site.

Ship crypto payments this week.

Free sandbox keys. No credit card. No KYC to start building.

Or read the 5-minute quickstart →