On-chain settlement · USDC / USDT / SPUSD
Take payments in stablecoins,
settled straight to your treasury.
Invoice in dollars. Collect USDC or USDT across major chains. Signed webhooks on confirmation. No checkout code.
Settled volume
$18,407.42
Across the public demo ledger
Networks
5
Chains, one unified API
Confirmation
32s
Median time to signed webhook
Custody
100%
On-chain, nothing held
How it works
Three steps between your invoice and a settled balance.
Step 1
Create an invoice
Set the amount in cents, pick the chain and stablecoin, and the gateway returns a payment link with a frozen exchange rate.
Step 2
Share the link
Your customer opens a hosted payment page, sees the amount in their own currency, and sends the exact deposit in USDC or USDT.
Step 3
We watch the chain
The gateway detects the deposit, waits for confirmations, marks the invoice settled, and posts your signed webhook.
Networks
One invoice format, every major chain.
Ethereum
evm:1
Polygon
evm:137
Base
evm:8453
Arbitrum
evm:42161
Solana
svm:101
USDC
settles at face value on every network
USDT
settles at face value on every network
SPUSD
settles at face value on every network
Built for the merchants who'd rather build on top.
Hosted payment pages
Every invoice gets a clean, public payment link. Your customer sees the amount in their currency and an address to send from; you never handle the checkout flow.
API keys and webhooks
Create invoices and read settlements from the API with a publishable key. We post signed webhook deliveries the moment a payment confirms or fails.
Sandbox to live
Generate sandbox keys on Sepolia and Solana devnet to build against, then swap to live keys without changing your integration.
SPUSD auto-deposits
Link a SPUSD account and settled balances move automatically instead of sitting in a withdrawal queue. Set the scope per app or globally.
The API
An invoice is one request away.
Amounts travel as integers in cents. Create an invoice, hand the response's pay_url to your customer, and wait for the webhook.
$ curl -X POST ${API_URL}/api/v1/invoices \ -H "X-API-Key: pk_live_9f2c…" \ -H "Content-Type: application/json" \ -d '{"amount_cents": 24500, "currency": "USD"}' → 201 Created { "id": "inv_01JH…", "status": "pending", "amount_cents": 24500, "pay_url": "https://pay.example.com/pay/inv_01JH…" }
Webhooks posted signed on every status change
Questions, answered plainly.
Your first invoice can be live in five minutes.