Introduction
StableOps is a stablecoin payment event platform built for developers.
StableOps turns on-chain stablecoin transfers into the same primitives you already know from card processors: an order, a webhook, a deterministic state machine. StableOps uses plan-and-usage pricing with a 0% transaction fee, so we do not take a percentage of your volume. You bring the addresses; we handle the chain scanning, confirmation tracking, reorg checks, idempotency, retries and signed webhook delivery.
Why choose StableOps
- Low real settlement cost: plan-and-usage pricing with a 0% transaction fee;
real per-order settlement cost can be under
$0.004. - No platform custody: BYO addresses keep private keys and fund control in your hands.
- Ledger-ready on-chain state: the order state machine, confirmation tracking, reorg checks, and signed webhooks are built around a clean accounting loop.
- One integration for multi-chain stablecoins: USDC / USDT, mainnet / testnet, SDK flows, and hosted Checkout all share the same order model.
- Production operations included: idempotent creation, retry handling, webhook replay, and address-pool alerts are built in.
What you get
- Payment Orders: request an exact amount on one or more chains and get a single deposit address back. See Concepts → Payment Orders.
- Confirmation tracking: every order moves through
created → detected → confirmed → finalized, with reorg checks against the receipt block hash. See Concepts → Confirmations. - Signed webhooks: every delivery carries
X-Product-Signature, retries on failure, and supports replay from the dashboard. See Concepts → Webhooks. - BYO addresses: import your own treasury or custody addresses; we never touch private keys. See Concepts → BYO Addresses.
- Agent toolkit: a scoped MCP server that wraps the SDK with policy, rate limits, and a human approval queue. See Agents → MCP Server.
Supported chains and assets
StableOps scans USDC / USDT transfers on the chains below and matches them by their official contract address. Any (chain, asset) combination outside these tables is rejected when you create a payment order. Every mainnet has a matching testnet for the Playground and integration testing. Copy a contract address with the button, or open it on a block explorer with the ↗ icon.
Mainnet
Testnet
How a payment moves through StableOps
┌──────────┐ create ┌──────────┐ transfer ┌──────────┐
│ Your app │ ───────────▶ │ StableOps│ ◀──────────── │ Chain │
└──────────┘ └─────┬────┘ └──────────┘
│
│ signed webhook (detected / confirmed / finalized)
▼
┌──────────┐
│ Your app │
└──────────┘- You call
paymentOrders.createwith an amount, accepted assets, and the chain/asset pairs you accept. - StableOps allocates a deposit address from the pool you imported and
returns
paymentInstructions. - The chain scanner watches that address; the first matching transfer
promotes the order to
detectedand dispatchespayment.detected. - As block confirmations accumulate, the order advances through
confirmedandfinalized. Reorgs that invalidate the receipt revert the order. - Your endpoint receives a signed webhook at every state change. Verify the
signature, update your ledger, and return
200.
Where to go next
- Quickstart: zero to a verified webhook in ten minutes.
- Playground: drive a sandbox order without writing code.
- Concepts → Payment Orders: the resource model and lifecycle.
- API Reference: request/response shapes for every endpoint.
- StableOps API SDK: the official TS/JS API library.
How is this guide?
Last updated