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
Token: USDCDecimals: 6Address: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 Arbitrum
Token: USDCDecimals: 6Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 Avalanche
Token: USDCDecimals: 6Address: 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E Unichain
Token: USDCDecimals: 6Address: 0x078D782b760474a361dDA0AF3839290b0EF57AD6 Abstract
Token: USDCDecimals: 6Address: 0x84A71ccD554Cc1b02749b35d22F684CC8ec987e1 Monad
Token: USDCDecimals: 6Address: 0x754704Bc059F8C67012fEd69BC8A327a5aafb603 Solana
Token: USDCDecimals: 6Address: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
USDT (Tether)
Used on networks where USDT has deeper liquidity.
Ethereum
Token: USDTDecimals: 6Address: 0xdAC17F958D2ee523a2206206994597C13D831ec7 BNB Chain
Token: USDTDecimals: 18Address: 0x55d398326f99059fF775485246999027B3197955 OP BNB
Token: USDTDecimals: 18Address: 0x9e5AAC1Ba1a2e6aEd6b32689DFcF62A509Ca96f3
USDT0 (Polygon)
Polygon
Token: USDT0Decimals: 6Address: 0xc2132D05D31c914a87C6611C10748AEb04B58e8F
Testnet Stablecoins
USDTL (Token Layer Test Token)
Custom test stablecoin for testnets, mintable via faucet.
Base Sepolia
Token: USDTLDecimals: 18Address: 0xED0E8956D5e7b04560460BE6B3811B0b31cEe8E1Faucet: AvailableBNB Testnet
Token: USDTLDecimals: 18Address: 0xED0E8956D5e7b04560460BE6B3811B0b31cEe8E1Faucet: Available
Test USDC (Solana Devnet)
Solana Devnet
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
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:
- Network: Each network has a designated stablecoin
- Liquidity: Uses the stablecoin with deepest liquidity
- 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.