Skip to main content

Overview

Token Layer uses stablecoins as the base currency for all token trading. Each network supports specific stablecoins that are used for buying and selling tokens.

Why Stablecoins?

Token Layer uses stablecoins instead of native tokens (ETH, BNB, SOL) for several reasons: Price Stability: Consistent USD-pegged value ✅ Clear Pricing: Easy to understand token prices ✅ Cross-Chain Consistency: Same pricing across networks ✅ Lower Volatility: Protects against market swings during trades

Mainnet Stablecoins

USDC (USD Coin)

The primary stablecoin used across most networks.

Base

BaseUSDC
Token: USDCDecimals: 6Address: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Arbitrum

ArbitrumUSDC
Token: USDCDecimals: 6Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831

Avalanche

AvalancheUSDC
Token: USDCDecimals: 6Address: 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E

Unichain

UnichainUSDC
Token: USDCDecimals: 6Address: 0x078D782b760474a361dDA0AF3839290b0EF57AD6

Abstract

AbstractUSDC
Token: USDCDecimals: 6Address: 0x84A71ccD554Cc1b02749b35d22F684CC8ec987e1

Monad

MonadUSDC
Token: USDCDecimals: 6Address: 0x754704Bc059F8C67012fEd69BC8A327a5aafb603

Solana

SolanaUSDC
Token: USDCDecimals: 6Address: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v

USDT (Tether)

Used on networks where USDT has deeper liquidity.

Ethereum

EthereumUSDT
Token: USDTDecimals: 6Address: 0xdAC17F958D2ee523a2206206994597C13D831ec7

BNB Chain

BNB ChainUSDT
Token: USDTDecimals: 18Address: 0x55d398326f99059fF775485246999027B3197955

OP BNB

OP BNBUSDT
Token: USDTDecimals: 18Address: 0x9e5AAC1Ba1a2e6aEd6b32689DFcF62A509Ca96f3

USDT0 (Polygon)

Polygon

PolygonUSDT0
Token: USDT0Decimals: 6Address: 0xc2132D05D31c914a87C6611C10748AEb04B58e8F

Testnet Stablecoins

USDTL (Token Layer Test Token)

Custom test stablecoin for testnets, mintable via faucet.

Base Sepolia

Base SepoliaToken: USDTLDecimals: 18Address: 0xED0E8956D5e7b04560460BE6B3811B0b31cEe8E1Faucet: Available

BNB Testnet

BNB TestnetToken: USDTLDecimals: 18Address: 0xED0E8956D5e7b04560460BE6B3811B0b31cEe8E1Faucet: Available

Test USDC (Solana Devnet)

Solana Devnet

SolanaUSDC
Token: USDCDecimals: 6Address: 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU
See Testnet Guide for instructions on obtaining test stablecoins.

Decimal Precision

Pay attention to decimal precision when integrating with the API. Different stablecoins have different decimal places.
6 Decimals (most common):
  • USDC on most chains
  • USDT on Ethereum
  • USDT0 on Polygon
18 Decimals:
  • USDT on BNB Chain
  • USDT on OP BNB
  • USDTL on testnets

Example Amounts

For 100 USD:
// 6 decimals (USDC on Base)
amount = 100 * 10^6 = 100000000

// 18 decimals (USDT on BNB)
amount = 100 * 10^18 = 100000000000000000000

Getting Stablecoins

Mainnet

You can obtain stablecoins through: Centralized Exchanges:
  • Buy on Coinbase, Binance, Kraken, etc.
  • Withdraw to your wallet on the appropriate chain
DEX Swap:
  • Swap native tokens (ETH, BNB, SOL) for stablecoins
  • Use Uniswap, PancakeSwap, Jupiter, etc.
Bridge:
  • Bridge stablecoins from other chains
  • Use official bridges or aggregators like Stargate, Across
On-Ramp:
  • Use fiat on-ramp services
  • MoonPay, Transak, Ramp Network

Testnet

Get free testnet stablecoins from Token Layer’s faucet at app-testnet.tokenlayer.network
You can mint up to 10,000 USDTL per request for testing.

API Integration

When making API calls, amounts are always specified in the smallest unit:
{
  "chainSlug": "base",
  "buyAmountUSD": 100,  // API accepts USD amounts
  "direction": "buy"
}
Token Layer handles the decimal conversion automatically based on the chain’s stablecoin. For direct contract interaction, use proper decimals:
// Example: 100 USDC on Base (6 decimals)
const amount = BigInt(100) * BigInt(10 ** 6);

// Example: 100 USDT on BNB Chain (18 decimals)
const amount = BigInt(100) * BigInt(10 ** 18);

Stablecoin Smart Contracts

All stablecoins are standard ERC-20 (EVM) or SPL (Solana) tokens. You can:
  • View balances using standard token methods
  • Approve spending for Token Layer contracts
  • Transfer between addresses
  • Check on block explorers

Checking Balances

EVM (Web3.js/Ethers.js):
const balance = await usdcContract.balanceOf(userAddress);
const decimals = await usdcContract.decimals();
const humanReadable = balance / (10 ** decimals);
Solana (Solana Web3.js):
const balance = await connection.getTokenAccountBalance(
  tokenAccountAddress
);
const humanReadable = balance.value.uiAmount;

Network-Specific Notes

Ethereum

  • USDT has non-standard ERC-20 implementation
  • Use caution with approve/transferFrom patterns
  • Higher gas costs for transactions

BNB Chains

  • USDT has 18 decimals (unusual)
  • Lower gas costs than Ethereum
  • Fast confirmation times

Solana

  • Uses SPL token standard (not ERC-20)
  • Requires token account creation
  • Extremely low fees

Stablecoin Selection Logic

Token Layer automatically selects the stablecoin based on:
  1. Network: Each network has a designated stablecoin
  2. Liquidity: Uses the stablecoin with deepest liquidity
  3. User Balance: Checks which stablecoin you hold
You cannot choose a different stablecoin—each network uses its designated stablecoin for consistency.

Future Support

Token Layer may add support for additional stablecoins based on:
  • User demand
  • Liquidity depth
  • Regulatory clarity
  • Technical compatibility

Need Help?

Click the chat icon in the bottom right corner for stablecoin-related questions.