Plug the universal swap into your product.

The uSwap Partner API is the operator surface for the universal swap engine. Issue persistent deposit addresses to your users, route their deposits across 30+ networks plus gift cards / Telegram / Discord / VPN / prepaid Visa, set your own affiliate fees per quote, and reconcile via signed webhooks. REST + OpenAPI, no SDK required.

What it is

partner.uswap.net is the operator surface for the same engine that powers app.uswap.net. Issue a persistent deposit address per end-user, set your own per-quote affiliate fees, route their deposits across 30+ crypto networks plus the spend side (Telegram, Discord, Mullvad, gift cards, prepaid Visa, P2P fiat), and reconcile via signed webhooks.

The whole surface is REST. Auth is an organization-scoped bearer token. There's no SDK lock-in — the OpenAPI 3.1 spec lives at /v1/openapi.json and codegens cleanly into every major language. Most partners are shipping on generated clients within a day.

REST + OpenAPI 3.1 Bearer auth, scoped keys Idempotency-Key on every mutation Signed webhooks Per-quote affiliate fees Same engine as uSwap.net

What you can build

Anything that needs to convert one form of value into another. Same routing engine, different UI.

Crypto checkout for any product

Accept any supported crypto on any chain; settle in your treasury asset. Customers see one address, the engine handles the multi-hop.

"Pay with crypto" for SaaS

Bill your customer in fiat or stablecoin; let them top up in BTC, ETH, USDC, XMR, TON, or whatever they actually hold.

Telegram / Discord spend bots

Bot frontends for Telegram Premium / Stars / channel boosts, Discord Nitro / server boosts, aged accounts, number rentals.

Wallet / exchange integrations

Persistent per-user deposit addresses inside your existing wallet UI. Recovery and refund flows surface as API endpoints.

Privacy off-ramps

XMR / BTC → gift cards or prepaid Visa for users who want to spend without a centralized off-ramp. Same engine, no KYC.

Recovery as a service

Expose the unmatched-deposit / wrong-network / refund flows uSwap uses to your own users instead of routing them to support.

Auth, scopes, idempotency

Auth

Bearer tokens, scoped per key

Authorization: Bearer uswp_org_<prefix>_<secret>. Keys are minted in the dashboard and shown once on create.

Scopes

Least-privilege by default

stats:read, catalog:read, bridges:read, bridges:write, intents:read, intents:write, positions:read, positions:write, webhooks:read, webhooks:write.

Idempotency

Every mutation is safe to retry

Idempotency-Key header (max 160 chars, 24-hour retention, org-scoped). Replays return the original payload with Idempotency-Replayed: true.

Webhooks

HMAC-signed lifecycle events

Intent state transitions (createdmatchedexecutingcompleted / refunded / failed) push to your endpoint with HMAC-SHA256 signatures. Failed deliveries retry over 24 hours and surface in the Deliveries log.

Same engine, two product shapes

Whether your users hit uSwap directly or via your integration, the engine underneath is identical.

SurfaceuSwap.net (consumer)partner.uswap.net (operator)
Routing engineSameSame
Coverage30+ chains + spend products30+ chains + spend products
Recovery (wrong network / amount)UI buttonsAPI endpoints + webhooks
Deposit addressPersistent per bridgePersistent per (org, end-user)
Locked rate vs market rateUser picksOperator picks at quote time
Affiliate / app fee0% on cryptoOperator-set per-quote bps overlay
ReconciliationNot applicableProvider-reported, dashboard Earnings view
AuthNoneBearer + scoped keys + idempotency
Surface contractWebSocket protocolREST + OpenAPI 3.1 + webhooks

Partner FAQ

Anything that needs to convert one form of value into another. Plug uSwap into a checkout to accept any crypto and settle in your treasury asset. Add 'pay with crypto' to a SaaS that bills in gift cards. Build a Telegram bot that tops up Stars / Premium / channel boosts. Issue persistent deposit addresses per user inside a wallet or exchange UI. The same engine that powers app.uswap.net is exposed as REST.