Three steps. No wallet integration to maintain.
Create
Call POST /v1/pay from your server with the chain, token and amount. Get back a hosted URL.
Pay
Send the URL to your customer. They open it on any device and pay from their own wallet.
Confirm
We verify the transaction on-chain against the right recipient and amount, then fire a signed webhook.
Built like payment infrastructure, not a wallet widget.
Verified on-chain
Every settlement is checked against the transaction receipt: right recipient, right token, sufficient amount and confirmations. You never mark an order paid on hope.
Signed webhooks
Stripe-style HMAC signatures with a timestamp. Verify the raw body, reject stale timestamps, dedupe by event_id.
Open amounts & links
Drop the amount for donations, or mint a permanent /pay/{slug} link that spawns a fresh session per customer.
Idempotent by design
Send an idempotency_key and retry safely. Network blips never create a second session.
Yours to brand
Set the accent, logo, title and button copy per session. The checkout feels like your product, not a third-party redirect.
A single POST is the whole integration.
No wallet SDKs in your app, no chain RPCs to babysit. Authorise with a bearer key, create a session, hand us the result. Everything else is handled.
See the full referenceNon-custodial by construction
Funds go straight to your wallet. We never hold them, and we verify every payment before you fulfil it.
Start accepting crypto this afternoon.
Create a free account, grab an API key, and send your first payment link in minutes.