Skip to main content
List routable Stellar tokens from the current Aggregator snapshot.

The endpoint

FieldValue
MethodGET
Path/api/v1/tokens
Base URLhttps://stellar-swap.xoxno.com
AuthNone
AvailabilityPublic
Rate limit100 requests per second per IP

Request params

None. The endpoint returns the full token catalog from the current snapshot.

Request

curl "https://stellar-swap.xoxno.com/api/v1/tokens"

Success response

[
  {
    "id": "CAS3J7GYLGXMF6TDJBBYYSE3HQ6BBSMLNUQ34T6TZMYMW2EVH34XOWMA",
    "kind": "soroban",
    "decimals": 7,
    "sacPeer": null,
    "code": null,
    "degree": 42
  },
  {
    "id": "USDC:GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN",
    "kind": "classic",
    "decimals": 7,
    "sacPeer": "CCW67TSZV3SSS2HXMBQ5JFGCKJNXKZM7UQUWUZPUTHXSTZLEO7SJMI75",
    "code": "USDC",
    "degree": 5
  }
]

Fields

FieldTypeDescription
idstringCanonical token identifier: Soroban C-strkey, XLM, or CODE:GISSUER.
kindstringnative, classic, or soroban.
decimalsnumberDecimal precision used for amount conversion.
sacPeerstring or nullSoroban Asset Contract peer for Classic assets, when known.
codestring or nullClassic asset code, such as USDC.
degreenumberCount of graph edges connected to the token in the current snapshot.

Errors

StatusCauseFix
429Per-IP rate limit exceeded.Back off and queue requests client-side.
503Snapshot is unavailable or stale beyond service readiness.Retry with backoff.

Edge cases

CaseBehaviorClient handling
degree=0Token exists in the snapshot but has no routable edge.Hide it from swap selectors or show it as unavailable.
Classic asset has sacPeerThe token can map to a Soroban Asset Contract.Use the SAC peer for Soroban-only flows.
Alias collisionAsset codes are not globally unique.Store the canonical id, not only code.
Snapshot changesNewly indexed pools can change the catalog.Cache for short windows and refresh before quoting.

Verify

Before quoting:
  • The selected token has degree > 0.
  • Amount conversion uses that token’s decimals.
  • Soroban flows use a C-strkey or SAC peer when needed.
  • Direct-user Classic flows keep the full CODE:GISSUER identifier.