NEWPre-check is now available via API. Send a message on Telegram to get this feature activated. It decreases the chances of KYC per TX.

Currencies

List currencies that are currently enabled for swap. Use this to populate your "from" / "to" pickers and to read per-currency metadata like icon URLs and required confirmations.

GET/v1/currencies

Query parameters

NameTypeRequiredDescription
litebooleanoptionalWhen true, returns just the ticker array. Default returns full metadata objects.

Example

// Full metadata
const res = await fetch(`${BASE}/v1/currencies`, { headers: { 'Authorization': AUTH } });
const { currencies } = await res.json();
 
// Lite (ticker array only)
const liteRes = await fetch(`${BASE}/v1/currencies?lite=true`, { headers: { 'Authorization': AUTH } });
const { currencies: tickers } = await liteRes.json();

Response (default)

{
  "currencies": [
    {
      "ticker": "btc",
      "fullName": "Bitcoin",
      "enabled": true,
      "enabledFrom": true,
      "enabledTo": true,
      "fixRateEnabled": true,
      "payinConfirmations": 2,
      "blockchain": "bitcoin",
      "blockchainPrecision": 8,
      "image": "https://.../btc.svg",
      "requiresExtraId": false,
      "extraIdName": null
    }
  ]
}

Response (?lite=true)

{ "currencies": ["btc", "eth", "ltc", "..."] }

Response fields

NameTypeDescription
tickerstringLowercase currency code (btc, eth).
fullNamestringDisplay name (camelCase).
enabledbooleanCurrently available for swaps.
enabledFrombooleanAllowed as a payin (source) currency.
enabledTobooleanAllowed as a payout (destination) currency.
fixRateEnabledbooleanEligible for fixed-rate swaps. (Float-rate is the default.)
payinConfirmationsintegerOn-chain confirmations required before the deposit is considered confirmed.
blockchainstringUnderlying chain.
blockchainPrecisionintegerMaximum decimal places allowed for amounts.
imagestringIcon URL.
requiresExtraIdbooleanTrue iff this currency requires a memo / destination tag / extra-id alongside the payout address. Today this is always false for currencies returned by /v1/currencies — the v1 safety filter excludes tag-requiring currencies until extraId pass-through ships. Switch on this field rather than maintaining your own chain lookup table; once partners can opt in to extraId, this field will start to be true for the relevant rows.
extraIdNamestring | nullHuman label for the tag/memo/destination-id field on this chain (e.g. "Memo", "Destination Tag"). null when no tag is required.

Notes

  • The list reflects currencies enabled today. Cache for no longer than ~10 minutes; tickers can be temporarily disabled for maintenance.
  • Use the exact ticker returned by this endpoint. Some network labels differ from the obvious human name: for example, USDT on TRON is returned as usdtrx, and USDT on Ethereum is returned as usdt20. For compatibility, the API also accepts common aliases like usdttrx / usdttrc20 and canonicalizes them internally, but new integrations should store the returned ticker.
  • Currencies that require a destination tag (XRP, XLM, EOS, IOST, STEEM, STX, BNB Beacon, Cosmos, Hedera, TON, etc.) are filtered out until extraId support lands. The filter checks two layers: (1) upstream extraIdName metadata, (2) an explicit denylist of tag-requiring chains as a safety net for cases where upstream metadata is incomplete. The response always includes a per-currency requiresExtraId boolean so you can switch on the field rather than maintaining your own chain lookup table.

Errors

TypeWhen
unauthenticatedMissing/invalid Authorization header
rate_limitedToo many requests. Includes Retry-After header. See Rate limits.
upstream_errorOur liquidity layer returned an error (rare on this endpoint)

See Errors for the full envelope and recovery strategy.