New Stablecoin checkout, fully non-custodial

Accept stablecoins.
Keep your keys.

HashPay serves the exact address and amount at checkout, watches the chain, and signs you a webhook the moment a payment confirms. Money moves buyer → your wallet — we never hold keys or funds.

USDC & USDT 8 chains 0% transaction fees
HASH PAY Secure

Send exactly

49.99 USDC
Base
payment QR
0x71C7…976F Copy
Waiting for payment…
Non-custodial · funds go straight to the seller’s wallet

Settle on the chains your customers already use

Why non-custodial

Your money never touches our hands.

Most crypto processors take custody of your funds — your money sits in their wallets, on their schedule. HashPay is different. We store your receiving addresses, serve them at checkout, and watch the chain. Payments land directly in your wallet. We hold no keys, no balances, nothing to breach.

  • No custody risk. A breach can’t drain funds we never hold.
  • Instant settlement. Funds are in your wallet the moment they confirm.
  • Nothing to withdraw. No payout schedules, no withdrawal queues, no frozen balances — the money is already yours.
Buyer
pays directly USDC · USDT
Your wallet
HashPay only watches & notifies — never in the middle of the money.
How it works

Live in an afternoon, not a quarter.

Three steps from sign-up to your first on-chain payment.

01

Add your wallets

Paste the receiving addresses you already own — one EVM address covers every EVM chain. HashPay only ever needs the public address.

02

Add the checkout

Define your products and prices, then drop the one-line embed on your site — or share a hosted pay link. At checkout we compute an exact, collision-free amount.

03

Get the webhook

The buyer pays from any wallet. We detect it on-chain, wait for confirmations, and fire a signed payment.confirmed webhook. Fulfil and move on.

Features

Everything a real payment product needs.

Not a “watch an address” demo — the edge cases are the product.

Exact-amount matching

No memos, no destination tags, no mix-ups. Each charge gets a unique address+amount slot, with a decimal ladder that never makes a buyer wait.

One-line embed

A single <script> drops a checkout overlay on any site — isolated in a shadow root, so nothing leaks in or out.

Signed webhooks

Every event is HMAC-signed and carries an idempotency key — verify in constant time, retry safely. detected, confirmed, under/overpaid, expired.

Test mode built in

Flip to your pk_test key and run the full checkout + webhook flow with simulated settlement — no wallet, no gas, no waiting on a chain.

Reorg-safe confirmations

Per-chain confirmation depth and receipt re-verification. We never fire confirmed on a transaction that could still vanish.

8 chains, 2 stablecoins

USDC & USDT on Ethereum, Base, Arbitrum, Polygon, Avalanche, BNB Chain and Solana, plus USDT on Tron — the rails your customers actually hold.

Built for developers

Two lines to a live checkout.

Drop the embed with your publishable key and point a button at a price — the widget does the rest, polling status in real time and confirming the moment it lands. No SDK lock-in, no wallet plumbing — just a script tag and a webhook.

REST API + signed webhooks Hosted pay links Shadow-DOM isolated widget
Embed checkout
<script src="https://cdn.hashpay.dev/embed.js" data-pk="pk_live_a1b2c3"></script>
<button data-hashpay-price="price_8Qk2vN">Pay with crypto</button>
Verify a webhook — Node.js
app.post('/webhooks/hashpay', (req, res) => {
  // X-HashPay-Signature: t=<unix>,v1=<hmac>
  const [, t, v1] = req.headers['x-hashpay-signature'].match(/t=(\d+),v1=(\w+)/)
  const expected = crypto.createHmac('sha256', SECRET)
    .update(`${t}.${req.rawBody}`).digest('hex')
  if (v1 !== expected) return res.sendStatus(401)
  fulfill(req.body.data.paymentId) // you're paid ✓
})
Pricing

A flat fee. 0% of your payments.

We never touch your money, so we never take a cut — and we never gate features. Every plan is the whole product; the only difference is how much you receive each month.

Free

$0/ month

For getting started.

  • Up to $2,000 / mo received
  • Every feature, from day one
  • USDT on 8 chains, USDC on 7
Start free

Starter

$9/ month

For growing shops.

  • Up to $5,000 / mo received
  • Every feature — nothing to unlock
  • Email support
Start free

Pro

Most popular
$29/ month

For scaling revenue.

  • Up to $10,000 / mo received
  • Every feature — nothing to unlock
  • Priority support
Start free

Enterprise

Custom

For high volume and bespoke needs.

  • Unlimited volume
  • Every feature — nothing to unlock
  • SLA, dedicated support & onboarding
Talk to us

One number decides your plan: USD volume received per month, across all your stores. Outgrow it mid-month and nothing breaks — in-flight payments settle and checkout keeps working through a grace window while you upgrade. Pay yearly and get 2 months free.

FAQ

Questions, answered.

Still curious? Email us — a human replies.

Yes — completely. You add your own receiving wallets; we store only the public addresses, serve them at checkout, and watch the chain. Funds always move directly from the buyer to your wallet. We never hold keys, balances, or funds.

No. Because the money never passes through us, we charge a simple flat monthly fee instead of a cut. You keep 100% of every stablecoin you’re paid (you’ll still pay the network’s own gas fees on-chain). Plans differ only by monthly volume received — never by features.

USDC and USDT on Ethereum, Base, Arbitrum, Polygon, Avalanche, BNB Chain and Solana, plus USDT on Tron (Circle sunset USDC there). Stablecoins only by design — the quote unit equals the settlement unit, which is what makes exact-amount matching reliable and removes volatility.

Each charge claims a unique network · token · address · amount slot. If an amount is taken, we serve the next address, then add negligible decimal precision (10.00 → 10.01 → 10.011…). The buyer just pays the exact figure shown — no tags, no mistakes.

You still hear about it. Wrong-amount transfers to your address are detected and reported with their own webhook events (payment.underpaid / overpaid), the buyer sees clear status in the widget, and the funds are in your wallet either way — nothing gets lost in limbo.

Yes. Every account gets test-mode keys (pk_test) that run the full checkout and webhook flow with simulated settlement — no wallet, no gas, no chain. Build and verify your whole integration, then swap in your live key.

Start accepting stablecoins today.

Free to start. Live in minutes. Your keys, your money — always.