Skip to main content
Getting startedSupported chains

Supported chains.

OpenSettle abstracts four EVM chains — Base, Ethereum, Polygon, and Arbitrum — behind one hosted-checkout API today. Solana and Tron are detection-ready (wallet verification + on-chain ingest); hosted checkout for those two is not live yet and stays on the roadmap. Pick a chain per payment or per merchant; the API shape is identical regardless of where the funds land. Settlement is direct merchant-wallet — no router contract, no on-chain split. The numbers below are typical ranges based on each chain's finality characteristics; real-world latency will vary with network conditions.

Comparison

ChainTokensSettlementGasAutopay
Base
base-mainnet
USDC2–4s$0.001–0.01Invoice + allowance autopay (live)
Arbitrum
arbitrum-one
USDC, USDT1–3s$0.005–0.05Invoice + allowance autopay (live)
Polygon
polygon-pos
USDC, USDT3–6s$0.002–0.02Invoice + allowance autopay (live)
Tron
tron-mainnet
USDT3–5s~$1.20 (energy)Invoice (allowance roadmap)
Ethereum
eth-mainnet
USDC, USDT12–30s$2–25Invoice (allowance not enabled — L1 gas)
Solana
solana-mainnet
USDC, USDT<1s<$0.001Invoice (no allowance)

Per-chain notes

Base

Default recommendation for new EVM integrations. Cheapest finality with native USDC issued by Circle.

Arbitrum

Lowest median latency. Slightly higher gas than Base under load. Native USDC since 2023.

Polygon

Use the native USDC contract (0x3c49…3359), not the bridged USDC.e. We auto-route to native.

Tron

TRC-20 is ERC-20 compatible at the ABI level, so the same allowance flow is feasible — but allowance autopay on Tron is still on the roadmap; today it's invoice-and-pay. USDT only; USDC is not deployed at meaningful liquidity.

Ethereum

Highest fees and longest finality. Reserve for large invoices (>$5,000) where gas is rounding error.

Solana

One-time payments and invoice subscriptions only — Solana has no ERC-20 allowance equivalent. Smart-wallet autopay is on the post-launch roadmap.

Picking a chain

Chain and token live on the invoice or subscription price, and can be overridden when you create a checkout session — see the chain and token fields on POST /v1/workspaces/:workspaceId/checkouts. The customer's allowance for a subscription lives on a specific chain; we never auto-switch chains under an active subscription because that would violate the consent the customer gave.

Check readiness before you charge

A checkout can only settle on a (chain, token) you've added and verified a wallet for; creating one for an unverified rail returns a 422. To gate your own UI on real readiness, call GET /v1/workspaces/:workspaceId/rails — it returns the verified (chain, token) pairs you can accept. Unlike /wallets(dashboard session only, 401 on an API key), this endpoint is API-key readable. An empty list means you can't settle yet.

bash
curl -H "Authorization: Bearer $OPENSETTLE_KEY" \
  "https://api.opensettle.io/v1/workspaces/$WORKSPACE_ID/rails"

# → { "data": [ { "chain": "base", "token": "USDC" },
#               { "chain": "polygon", "token": "USDC" } ] }

Gate your checkout UI on this instead of a hardcoded list or a manual kill-switch — it stays correct as you add or remove settlement wallets.