Skip to content
CoinsSendDevelopers
Payments documentation

Supported Coins & Networks

View MarkdownAgent setup

Use this page to see which cryptocurrencies and blockchain networks CoinsSend supports, choose labels for your interface, and find the codes to send in API requests.

The public catalog was checked on September 17, 2026 (UTC): 9 coins, 7 networks, and 18 coin/network pairs. This is a dated reference; load the live catalog to build your current payment or withdrawal choices.

Network display nameAPI network codeCoins in the catalog
BitcoinbitcoinBTC
Ethereum (ERC-20)ethETH, USDT, USDC
TRON (TRC-20)tronTRX, USDT
BNB Smart Chain (BEP-20)bscBNB, USDT, USDC
Polygon PoSpolygonPOL, USDT, USDC
TON (Jetton)tonTON, USDT
Arbitrum OnearbitrumARB, ETH (deposits only), USDT, USDC

At that check, deposits and withdrawals were enabled for all listed pairs except ETH on Arbitrum One, where deposits were enabled and withdrawals were disabled. Check the current operation flags before enabling a choice.

The coin codes for requests are btc, eth, trx, bnb, pol, ton, arb, usdt, and usdc. Keep these values dynamic in your integration; new assets may be added and existing pairs may become unavailable.

Coin codes, network codes, and display labels

Section titled “Coin codes, network codes, and display labels”

A coin and its network form one payment option. USDT on TRON and USDT on Ethereum are different options: always display both the coin and the network when asking a customer where to send funds.

PurposeValue to useExample
Display the coinCatalog coin.labelUSDT
Display the networkCatalog networks[].titleTRON (TRC-20)
Send coin in a requestLowercase catalog coin.symbolusdt
Send network in a requestLowercase catalog networks[].networktron
Identify a choice in your UIBoth normalized codesusdt:tron

Use eth for the Ethereum network and bitcoin for the Bitcoin network. Display names and token-standard labels such as ERC-20, TRC-20, and BEP-20 are not API network codes. The native Polygon coin code is pol. Do not combine every coin with every network or infer the network from an address alone.

Both discovery endpoints are public and require no API key, Merchant, or Sign header:

Terminal window
curl --fail --show-error https://api.coinssend.com/v1/coins-and-fee
curl --fail --show-error https://api.coinssend.com/v1/get-coin-rate
EndpointHow to use it
GET /v1/coins-and-feeRead data.coins for the available coin/network pairs, display labels, network fees, service-fee percentages, and minimum withdrawals.
GET /v1/get-coin-rateMatch data[].coin.symbol and networks[].network for deposit_enabled, withdraw_enabled, amount limits, decimals, and exchange rates.

The catalog includes pairs enabled for deposits, withdrawals, or both; it does not return the individual operation flags. A min_withdrawal or network_fee value by itself does not mean withdrawals are enabled.

Use the catalog as the starting list, then match the rate metadata by the lowercase coin/network pair. For receiving payments, require deposit_enabled === true; for withdrawals, require withdraw_enabled === true.

The rates response can contain coins with no available networks and can omit assets without rate data. For example, at the check above SOL had rate data but no networks and was absent from the catalog. A price or quote alone is not evidence that an asset is available for payments. If metadata for a catalog pair is missing, show its availability as unknown and refresh before enabling the operation.

JavaScript: build coin and network choices

Section titled “JavaScript: build coin and network choices”

This example only reads public data. It keeps catalog entries with missing metadata visible as unavailable choices, without assuming that they support either operation.

const api = 'https://api.coinssend.com';
async function getData(path) {
const response = await fetch(`${api}${path}`);
if (!response.ok) throw new Error(`Discovery failed: ${response.status}`);
const body = await response.json();
if (body.status !== 'success') throw new Error('Discovery failed');
return body.data;
}
const [catalog, rates] = await Promise.all([
getData('/v1/coins-and-fee'),
getData('/v1/get-coin-rate'),
]);
const metadata = new Map(rates.flatMap((entry) =>
entry.networks.map((network) => [
`${entry.coin.symbol.toLowerCase()}:${network.network.toLowerCase()}`,
network,
])
));
const choices = catalog.coins.flatMap((entry) =>
entry.networks.map((network) => {
const coin = entry.coin.symbol.toLowerCase();
const code = network.network.toLowerCase();
const id = `${coin}:${code}`;
const details = metadata.get(id);
return {
id,
coin,
network: code,
label: `${entry.coin.label}${network.title}`,
availabilityKnown: details !== undefined,
depositEnabled: details?.deposit_enabled === true,
withdrawEnabled: details?.withdraw_enabled === true,
};
})
);
const depositChoices = choices.filter((choice) => choice.depositEnabled);
const withdrawalChoices = choices.filter((choice) => choice.withdrawEnabled);

If discovery fails, show a loading/error state with a retry option. Do not replace a failed response with a hardcoded list of enabled payment methods. The catalog advertises Cache-Control: public, max-age=900 (15 minutes); respect that cache window and handle changes between discovery and submission.

OperationFields
Create an invoiceUse lowercase coin and network to preselect a pair. allowed_coins is an array of lowercase coin codes, not network codes or coin:network identifiers.
Create a static walletSend the selected lowercase coin and network with the other required wallet fields.
Create a withdrawalSend the selected lowercase coin and network; check withdrawal availability and limits for that pair.

For example, a selected USDT payment on TRON supplies these fields (this is only the pair, not a complete request):

{
"coin": "usdt",
"network": "tron"
}

Discovery is a UI aid. The target endpoint makes the final decision on pair and amount validation; handle HTTP 422, refresh the choices, and explain the validation message to the customer. Do not silently switch the network or retry a write automatically.

Read current values from the discovery responses; do not copy the examples into permanent fee or limit tables. Keep monetary values as decimal strings, and use the selected pair’s precision rather than assuming one decimal count for a coin across every network.

The public catalog’s service fee is not a merchant-specific fee quote. For your merchant’s settings, use Merchant Fees. See Coin Rates API for the complete discovery response fields.