Private beta · start without writing code

Get paid instablecoins.No crypto degree.

Customers pay in USDT or USDC — digital dollars, always worth $1. The money lands in your balance in US dollars, and you withdraw to your own wallet. No code? Send a payment link. Want it automatic? Plug in one API. And the keys that can move funds never sit on an internet-facing server.

0lines of code to start — just send a payment link
1USDT = 1 USD. No exchange rates to worry about
2independent sources confirm every payment
0private keys on internet-facing servers

§01New to crypto?

Three things worth knowing.

You don’t need to understand blockchains to get paid. These three are enough to get started.

1 USDT ≈ $1

Stablecoins are digital dollars

USDT and USDC track the US dollar one-to-one — they don’t swing like Bitcoin. You price in dollars and you’re credited in dollars.

Scan & pay

Customers pay from apps they already use

Anyone with an exchange account or a crypto wallet scans the QR code and sends. No borders, no bank hours — it usually lands within minutes.

Final

No chargebacks

Once a transfer is confirmed it can’t be pulled back the way a card payment can, so there are no chargeback disputes. Refunds stay your call.

§02Ways to get paid

Start with a link. Automate later.

Pick whichever fits — or use both. Either way, the money ends up in the same balance.

Payment linkblockwallets.io/l/…
+99.00Annual membershippaid
+42.00Deposit · order 1042paid

No code

Payment links

Set an amount in your dashboard and get a link and a QR code. Drop it in a chat, on your site or your social profile. Customers open it and pay; you see it in your dashboard. Great for testing the waters, services and deposits.

POST /v1/payment→ notified · paid
+42.00order_1042 · shipped automaticallypaid
+150.00topup_88 · added to the user’s balancepaid

For developers

API integration

Your site calls one endpoint at checkout and sends the customer to our payment page. When the money arrives we notify your server, so orders ship and balances top up on their own. Need a permanent deposit address per user? That’s built in too.

§03How money arrives

From checkout to your balance, in four steps.

You start the payment and wait for the money. Generating addresses, watching the blockchain, double-checking and notifying your system — that’s on us.

01

You request a payment

Tell us the amount and your order number — with a payment link, the dashboard does this for you. Send the same order number twice and you still get one bill, so a retry never charges anyone twice.

curl · HTTP
POST /v1/paymentmerchant: 8b2f…c41dsign: 5f0c9b…e9a1{  "order_id": "order_1042",  "amount": "42.00",  "currency": "USD",  "url_callback": "https://your-store.com/webhooks/crypto",  "url_success": "https://your-store.com/orders/1042"}// 200 OK{  "state": 0,  "result": {    "uuid": "6f1c2a7e…",    "status": "check",    "url": "https://blockwallets.io/pay/inv_8kx2…",    "expired_at": 1760874000  }}

02

The customer scans and pays

They land on our hosted payment page, pick a coin and a network, and scan. Every order gets its own receiving address, so each payment matches its order automatically — no “please add a memo” instructions.

Your receiving account

TRON · USDTreceive-only
TQ3m…8aLk paid
TNv2…c7Rw paid
TX7k…q3Fd order_1042
TB9e…1mZs free
TLu5…f4Hy free

Addresses are generated for you · the keys that move funds stay offline

03

We make sure it really arrived

Every minute we check the blockchain and wait until the transfer is buried deep enough that it can’t be undone. Then a second, independent data source has to see the same transfer — same amount, same address — before it counts. Faked payments don’t get through.

Confirmations · BNB Smart Chain0/15
Source A0x8f3a…c21e · 42.00 USDT → 0x4f1c…a9e0
Source Bindependent provider · same transfer, amount, address

Both agree — payment confirmed

04

The money is yours

The payment is credited to your dashboard balance in dollars, and you can withdraw to your own wallet any time. If you’ve integrated the API, your server gets a signed notification at the same moment — and if it’s down, we keep retrying for about two and a half days.

status: paid · payment_amount_usd: 42.00
sign: 5f0c9b…e9a1
  1. 0503
  2. 1m200
  3. 5m
  4. 30m
  5. 2h
  6. 12h
  7. 24h
  8. 24h

Notifying your server
The first try got a 503; the retry a minute later went through. The rest are never needed.

§04Is my money safe?

0 private keys on any internet-facing server. A breach can’t move a cent.

On a blockchain, a private key is the one thing that can move money. Our online servers hold only a read-only key: they can create receiving addresses and see balances, but can’t send anything. The keys that move funds live on separate, offline machines.

01

Online, it can only receive

Servers hold only a read-only key (an xpub). Paste a private key into the system by mistake and it’s refused.

02

Your addresses can’t be swapped

Receiving wallets are locked in the deployment config. A stolen admin login or an edited database still can’t redirect your payments.

03

Two sources must agree

A payment counts only when two independent data sources both see it, using node providers from an allowlist shipped with our code. One lying node can’t fake it.

04

Your money doesn’t have to stay here

Withdraw to your own wallet any time — or set it to happen automatically once your balance reaches an amount you choose, or every day. Every payout is reviewed and shows its on-chain transaction in your dashboard.

05

Moves are signed offline

Moving funds to cold storage is signed on a separate machine that decodes and checks every field of the transaction first.

06

Stops rather than gambles

If any safeguard is missing, that network stops taking payments instead of taking them unsafely.

§05Developers

Two pieces of code. That’s the integration.

  • Just two callsCreate a payment with an amount and order number, get back a payment page link. Receive a notification, check its signature, ship the order.
  • Try it free on testnetsTest credentials run on public test networks, and the payment page has a “simulate payment” button — walk the whole flow without spending a cent.
  • Retries are safeThe same order_id always returns the same bill, so a timeout and retry never double-charges.
  • Coming from Cryptomus?Same endpoints, parameters, signature and webhooks. Swap the base URL and keys; your code stays as it is.

Full integration guide

import crypto from "node:crypto";const body = JSON.stringify({  order_id: "order_1042",       // idempotency key  amount: "42.00",              // any amount, in USD  currency: "USD",  url_callback: "https://your-store.com/webhooks/crypto",});const sign = crypto.createHash("md5")  .update(Buffer.from(body).toString("base64") + process.env.BW_API_KEY)  .digest("hex");const res = await fetch("https://blockwallets.io/v1/payment", {  method: "POST",  headers: {    merchant: process.env.BW_MERCHANT,    sign,    "content-type": "application/json",  },  body,});return redirect((await res.json()).result.url);

§06Networks

Whatever they pay with, you get dollars.

NetworkChainConfirmationsMinimum
USDTTRC-20TRONFinalized block$1.00
USDTBEP-20RecommendedBNB Smart Chain15 blocks$1.00
USDCBEP-20BNB Smart Chain15 blocks$1.00
USDTERC-20Ethereum6 blocks$5.00
USDCERC-20Ethereum6 blocks$5.00
USDCBaseBase20 blocks$1.00
USDTPolygonPolygon PoS10 blocks$1.00
USDCPolygonPolygon PoS10 blocks$1.00
USDTArbitrumArbitrum One20 blocks$1.00
USDCArbitrumArbitrum One20 blocks$1.00
USDTOptimismOP Mainnet20 blocks$1.00
USDCOptimismOP Mainnet20 blocks$1.00
USDTAVAX C-ChainAvalanche C-Chain3 blocks$1.00
USDCAVAX C-ChainAvalanche C-Chain3 blocks$1.00
USDTX LayerX Layer20 blocks$1.00
USDCX LayerX Layer20 blocks$1.00
BTCBTCBitcoin1 blocks$5.00
LTCLTCLitecoin3 blocks$1.00
TRXTRC-20TRONFinalized block$1.00
BNBBEP-20BNB Smart Chain15 blocks$1.00
ETHERC-20Ethereum6 blocks$5.00
ETHBaseBase20 blocks$1.00
ETHArbitrumArbitrum One20 blocks$1.00
ETHOptimismOP Mainnet20 blocks$1.00
POLPolygonPolygon PoS10 blocks$1.00
AVAXAVAX C-ChainAvalanche C-Chain3 blocks$1.00
OKBX LayerX Layer20 blocks$1.00
USDTSPLSolanaFinalized block$1.00
USDCSPLSolanaFinalized block$1.00
SOLSPLSolanaFinalized block$1.00

Bills are priced in US dollars. Stablecoins pay at par — 1 USDT = 1 USDC = 1 USD, no exchange rate, no spread. BTC, LTC and native coins (TRX, BNB, ETH, POL, AVAX, OKB, SOL) are quoted at a rate locked for 30 minutes and credited in dollars.

Next: TON.

§07Also included

The details, handled.

Coming from Cryptomus

Same paths, parameters, sign and webhook format. Change the base URL, merchant and API key — your code stays the same.

A ready-made payment page

QR code, exact amount, countdown, in English and Chinese. Customers return to your site once payment confirms — no payment page for you to build.

Over, under or late — all accounted for

Late payments still count. If a customer sends too little or too much, you’re told exactly what arrived. Nothing silently disappears.

Watched around the clock

If scanning falls behind, a notification can’t be delivered or the books don’t balance, alerts fire right away and we step in.

merchant (test) · 3f9a…c41d

Try it before you go live

Test mode has its own credentials on public testnets and a one-click simulated payment. Your dashboard also has a guided demo: play the customer and follow one real payment from order to balance — no code.

§08Early access

Get started.

We’re opening blockwallets to merchants gradually. Tell us a little about what you do and we’ll email you to set up your account. New to crypto? That’s fine — ask anything in the notes.

Fees: 1% per payment, dropping to 0.9% once last month’s volume reaches $10,000, and down to 0.5% as you grow. See pricing →

  1. 01We read every request and reply by email.
  2. 02Once approved, try everything in test mode — no real money involved.
  3. 03Go live when you’re happy. Payments land in your balance; withdraw any time.
Expected monthly sales
Networks you needskip if unsure

We only use your email to talk to you about access.