Skip to main content
GET
/
v1
/
batched-sample
Get Nanopayments Gateway status
curl --request GET \
  --url https://api.mrdn.finance/v1/batched-sample \
  --header 'Authorization: <api-key>'
{
  "success": true,
  "data": {
    "message": "Circle Gateway batched nanopayments integration",
    "organization": "<string>",
    "organizationId": "<string>",
    "gatewayMainnetEnabled": true,
    "networkStatus": {
      "base-sepolia": true,
      "optimism-sepolia": true,
      "base": true,
      "optimism": true,
      "polygon": true,
      "unichain": true,
      "ink": true,
      "hyperevm": true,
      "megaeth": true
    },
    "gatewaySupported": {},
    "endpoints": {
      "batchedVerify": "POST /v1/batched-verify",
      "batchedSettle": "POST /v1/batched-settle",
      "batchedSample": "GET /v1/batched-sample"
    },
    "usage": {
      "description": "<string>",
      "note": "<string>"
    },
    "timestamp": "2023-11-07T05:31:56Z"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.mrdn.finance/llms.txt

Use this file to discover all available pages before exploring further.

Diagnostic endpoint that reports the facilitator’s Circle Gateway client status, the per-network enablement map, and the upstream getSupported() payload from Circle’s Gateway API. Use it to confirm Gateway connectivity and check which networks are currently routable through the batched path before integrating.

Authentication

Requires Authorization: Bearer <api-key>. The endpoint requires req.auth.organization.id to be present after the apiSession middleware runs; otherwise it returns HTTP 401.

Response

The literal response body returned by the facilitator:
{
  "success": true,
  "data": {
    "message": "Circle Gateway batched nanopayments integration",
    "organization": "Acme",
    "organizationId": "org_123",
    "gatewayMainnetEnabled": true,
    "networkStatus": {
      "base-sepolia": true,
      "optimism-sepolia": true,
      "fluent-testnet": true,
      "base": true,
      "optimism": true,
      "polygon": true,
      "unichain": true,
      "ink": true,
      "hyperevm": true,
      "megaeth": true
    },
    "gatewaySupported": {
      "...": "Pass-through of Circle Gateway's /supported response, or null if the upstream call failed"
    },
    "endpoints": {
      "batchedVerify": "POST /v1/batched-verify",
      "batchedSettle": "POST /v1/batched-settle",
      "batchedSample": "GET /v1/batched-sample"
    },
    "usage": {
      "description": "Use /v1/batched-settle and /v1/batched-verify as opt-in alternatives to /v1/settle and /v1/verify. The batched endpoints route payments through Circle Gateway for gas-free batched settlement. The default /v1/settle and /v1/verify endpoints continue to settle directly on-chain.",
      "note": "Circle recommends using settle() directly rather than verify() + settle() for production batched flows."
    },
    "timestamp": "2026-04-30T18:24:11.502Z"
  }
}
The endpoints.batchedVerify and endpoints.batchedSettle strings (POST /v1/batched-verify / POST /v1/batched-settle) and the usage.description text are returned verbatim by the facilitator but are misleading: those URLs do not exist as distinct routes. Batched payments are routed through the regular POST /v1/verify and POST /v1/settle endpoints, with detection driven by paymentRequirements.extra.name === "GatewayWalletBatched".

Field reference

FieldDescription
messageConstant "Circle Gateway batched nanopayments integration".
organizationOrganization name resolved from the API key, or "Unknown" if not set.
organizationIdOrganization ID resolved from the API key.
gatewayMainnetEnabledMirrors the GATEWAY_MAINNET_ENABLED constant in apps/facilitator/src/gateway/index.ts. When false, only testnets route through Circle.
networkStatusBoolean per network: result of isGatewayEnabledForNetwork(name). Only the ten networks shown above are reported.
gatewaySupportedPass-through of Circle Gateway’s upstream getSupported() response, or null if the call to Circle threw. Internally uses the mainnet Circle client (no network arg).
endpointsStatic map of names → strings as returned by the facilitator (see warning above for accuracy).
usage.descriptionStatic descriptive string returned by the facilitator (see warning above).
usage.noteConstant: Circle recommends calling settle() directly for production batched flows.
timestampISO timestamp generated when the response is built.

Errors

401 Unauthorized

Returned when the request has no organization context after apiSession:
{
  "error": "No organization found for this request"
}

500 Internal Server Error

Returned when the route handler throws (Circle unreachable for reasons other than the wrapped getSupported() call, etc.):
{
  "error": "Internal server error",
  "message": "<error.message or 'Unknown error'>"
}

Authorizations

Authorization
string
header
required

Response

Gateway status

success
boolean
Example:

true

data
object