API reference

April 18, 2026 · View on GitHub

List fiat-to-USDC providers that will deliver USDC to a specified wallet on a specified chain. This endpoint is informational — it does not move funds or hold KYC state. It exists so agents and sellers can surface on-ramp options without embedding provider lists.

GET /onramp

Rate limit: 30 requests per minute per IP.

Query parameters

ParamDefaultDescription
networkstellar:pubnetTarget CAIP-2.
walletAddressDestination wallet. When provided, providers may pre-fill it into their kycUrl.

Response 200 OK

FieldTypeDescription
providersarrayMatching providers.
manualstringHuman-readable instructions for a manual transfer when no provider fits.

Each providers[] entry:

FieldTypeDescription
namestringProvider display name (e.g. "Bridge.xyz").
methodstring"pix", "cash", etc.
regionsarrayISO country codes where the provider operates.
kycUrlstringHTTPS URL to begin onboarding. May include ?dest=<walletAddress> when walletAddress was supplied.
feesstringHuman-readable fee summary (e.g. "~1%").

Example

curl "https://api.402md.com/onramp?network=stellar:pubnet&walletAddress=GSELLER..."
{
  "providers": [
    {
      "name": "Bridge.xyz",
      "method": "pix",
      "regions": ["BR"],
      "kycUrl": "https://bridge.xyz/onboard?dest=GSELLER...",
      "fees": "~1%"
    },
    {
      "name": "MoneyGram Ramps",
      "method": "cash",
      "regions": ["BR", "MX", "CO", "AR"],
      "kycUrl": "https://ramps.moneygram.com",
      "fees": "varies"
    }
  ],
  "manual": "Send USDC directly from any exchange supporting stellar:pubnet."
}

Errors

StatuserrorCause
429RATE_LIMIT

Adding providers

The provider list is currently hard-coded in the relay at packages/relay/src/onramp/onramp.service.ts. To propose a new provider, open a pull request updating that file. Future versions will move this to a database-backed registry.