Stablecoin Swap API: Convert USDC, USDT, and DAI

Last updated:

TL;DR

swapapi supports stablecoin swaps across 46 EVM chains with no API key. This page lists every supported stablecoin address and warns about critical decimal differences — USDC and USDT use 18 decimals on BSC, Rootstock, and Boba BNB instead of the standard 6.

Why stablecoin swaps are different

  • Near-zero price impact expected — stablecoin-to-stablecoin swaps should have near-zero price impact on liquid pairs
  • Watch priceImpact closely — if priceImpact is above 0.01 (1%), something is wrong: low liquidity or wrong token address
  • Decimal differences are the #1 source of bugs — the same token can have different decimals on different chains
  • Amount is in smallest unit — the amount parameter is in the token's smallest unit. Getting decimals wrong means sending 1 million times too much or too little

Stablecoin addresses by chain

Ethereum Chain ID: 1

TokenAddressDecimals
USDC0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB486
USDT0xdAC17F958D2ee523a2206206994597C13D831ec76
DAI0x6B175474E89094C44Da98b954EedeAC495271d0F18

BSC Chain ID: 56 WARNING: 18 decimals

TokenAddressDecimals
USDC0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d18
USDT0x55d398326f99059fF775485246999027B319795518
DAI0x1AF3F329e8BE154074D8769D1FFa4eE058B1DBc318

Arbitrum Chain ID: 42161

TokenAddressDecimals
USDC0xaf88d065e77c8cC2239327C5EDb3A432268e58316
USDT0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb96
DAI0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da118

Base Chain ID: 8453

TokenAddressDecimals
USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA029136
USDT0xfde4C96c8593536E31F229EA8f37b2ADa2699bb26
DAI0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb18

Polygon Chain ID: 137

TokenAddressDecimals
USDC0x3c499c542cEF5E3811e1192ce70d8cC03d5c33596
USDT0xc2132D05D31c914a87C6611C10748AEb04B58e8F6
DAI0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A06318

Optimism Chain ID: 10

TokenAddressDecimals
USDC0x0b2C639c533813f4Aa9D7837CAf62653d097Ff856
USDT0x94b008aA00579c1307B0EF2c499aD98a8ce58e586
DAI0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da118

Critical: Decimal Differences

These chains use 18 decimals for stablecoins

  • BSC: USDC and USDT use 18 decimals (not 6). 100 USDC = 100000000000000000000 (20 zeros), not 100000000 (8 zeros).
  • Rootstock: USDC (0x1bda44fda023f2af8280a16fd1b01d1a493ba6c4) and USDT (0xef213441a85df4d7acbdae0cf78004e1e486bb96) are 18 decimals.
  • Boba BNB: USDC (0x9F98f9F312d23d078061962837042b8918E6aff2) and USDT (0x1E633Dcd0d3D349126983D58988051F7c62c543D) are 18 decimals.
  • Blast: No canonical USDC or USDT. Uses USDB (0x4300000000000000000000000000000000000003, 18 decimals).

Swap USDC to USDT on Ethereum

amount=100000000 = 100 USDC (6 decimals)

USDC → USDT on Ethereum
$ curl "https://api.swapapi.dev/v1/swap/1?\
tokenIn=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48&\
tokenOut=0xdAC17F958D2ee523a2206206994597C13D831ec7&\
amount=100000000&\
sender=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"

Swap USDC on BSC (18 decimals)

amount=100000000000000000000 = 100 USDC on BSC (18 decimals!)

USDC → USDT on BSC (18 decimals)
$ curl "https://api.swapapi.dev/v1/swap/56?\
tokenIn=0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d&\
tokenOut=0x55d398326f99059fF775485246999027B3197955&\
amount=100000000000000000000&\
sender=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"

Production tips for stablecoin swaps

  • Check priceImpact — should be near zero (< 0.001) for stablecoin pairs on major chains
  • High priceImpact? You may have the wrong token address or low liquidity on that chain
  • ERC-20 approval required — approve the router (data.tx.to) before swapping. USDT on Ethereum requires approve(0) first.
  • Large swaps (>$100K) — consider splitting into smaller trades to reduce price impact
  • See supported chains for the full token address list

See also: swap tutorial, slippage guide, free crypto APIs.