All Blog Posts
Article Image

Top Stablecoins Explained: How They Work and Why They Matter for Developers

23rd February 2026 18min read

Your DeFi protocol handles millions in stablecoin transactions daily. A decimal precision bug misinterprets a USDC transfer as 1 trillion times its actual value. USDC uses 6 decimals. DAI uses 18. Your contract assumed they were the same. This class of bug has drained protocols before, and it starts with a common misconception - treating all stablecoins as interchangeable ERC-20 tokens when they have different implementations, risk profiles, and on-chain behaviors.

Stablecoins are the most heavily transacted asset class in crypto. The market surpassed $312 billion in total capitalization in 2025, with $33 trillion in transaction volume - a 72% year-over-year increase. Stablecoin payments doubled to approximately $390 billion, and B2B stablecoin payments surged from under $100 million monthly in early 2023 to over $6 billion by mid-2025. With 259 active stablecoins in circulation (up from 136 in early 2024), this is the backbone of on-chain finance.

This guide covers how stablecoins work, the mechanisms that maintain their pegs, the integration differences that matter in production, and the risks you need to account for.

What Is a Stablecoin?

A stablecoin is a cryptocurrency designed to maintain a stable value relative to a reference asset, typically the US dollar. Unlike volatile assets like ETH or BTC, stablecoins target a 1:1 peg - 1 USDC should always equal approximately $1. This price stability makes them essential for DeFi protocols that need a reliable unit of account to denominate loans, settle trades, and measure yields.

Stablecoins serve three critical functions in on-chain systems:

  • Medium of exchange - You cannot run a lending protocol, DEX, or payment system on an asset that swings 10% in a day. Stablecoins provide the price-stable settlement layer that financial applications require.
  • Store of value - Traders park profits in stablecoins between positions. Protocols hold reserves in stablecoins. Users in countries with volatile local currencies use stablecoins as a dollar-denominated savings vehicle.
  • Unit of account - TVL, yields, loan sizes, and protocol revenue are all measured in stablecoin terms. Without a stable reference point, DeFi metrics become meaningless.

The mechanism each stablecoin uses to maintain its peg varies significantly - and those differences directly affect how you build with them.

Types of Stablecoins

The stabilization mechanism behind each stablecoin determines its risk profile, decentralization properties, and integration requirements.

Fiat-Collateralized Stablecoins

Fiat-collateralized stablecoins hold 1:1 reserves in traditional financial instruments - cash, US Treasuries, and money market funds. A centralized issuer manages minting and redemption: deposit $1, receive 1 stablecoin. Redeem 1 stablecoin, receive $1.

USDC (Circle) holds $76.5 billion in reserves as of December 2025, entirely in the Circle Reserve Fund (USDXX) - an SEC-registered government money market fund managed by BlackRock. Circle publishes weekly reserve disclosures alongside daily BlackRock reporting and monthly Big Four attestations. S&P assigned USDC a stablecoin stability rating of "2 (strong)."

USDT (Tether) holds $192.9 billion in reserves against $186.5 billion in liabilities, with $6.3 billion in excess reserves as of Q4 2025. The reserve composition includes $141 billion in US Treasury exposure (including reverse repos), $17.4 billion in gold, and $8.4 billion in Bitcoin. S&P rates USDT "weak," citing Bitcoin exposure and transparency gaps relative to peers. Tether is working toward a Big Four audit.

PYUSD is PayPal's stablecoin, deployed on Ethereum and Solana. It bridges traditional finance users into on-chain applications through PayPal's existing merchant and consumer network.

The trade-off with fiat-backed stablecoins: maximum price stability and simplicity, but full centralization. The issuer can freeze addresses, blacklist wallets, and halt transfers on government orders. Both USDC and USDT contracts include administrative blacklist functions that the issuer uses to freeze funds at specific addresses.

Crypto-Collateralized Stablecoins

Crypto-collateralized stablecoins use on-chain assets locked in smart contracts as backing, removing the need for a centralized issuer. The trade-off: volatile collateral requires overcollateralization - you must deposit more value than the stablecoins you mint.

DAI (now part of Sky Protocol, formerly MakerDAO) is the canonical example. Users create DAI by depositing collateral (ETH, WBTC, and other approved assets) into Maker Vaults at a minimum 150% collateralization ratio - depositing $150 worth of ETH to mint 100 DAI. If collateral value drops below the liquidation threshold, anyone can liquidate the position to repay the debt and maintain system solvency.

USDS is the upgraded successor to DAI, deployed on Ethereum and Solana after MakerDAO's rebrand to Sky Protocol in September 2024. USDS supply grew from 100 million to 2.3 billion by late 2024. The Sky Savings Rate (formerly the DAI Savings Rate) lets you deposit USDS to earn yield, receiving sUSDS tokens in return.

The advantage of crypto-backed stablecoins is decentralization - no single entity can freeze your funds. The disadvantage is capital inefficiency (150%+ collateral for each dollar minted) and exposure to liquidation cascades during sharp market downturns.

Algorithmic and Synthetic Stablecoins

Algorithmic and synthetic stablecoins use financial engineering rather than direct collateral reserves to maintain their pegs. Mechanisms and risk profiles vary widely.

USDe (Ethena) uses a delta-neutral strategy: the protocol holds crypto collateral while simultaneously shorting perpetual futures to hedge price exposure. The short positions generate funding rate income, which flows to sUSDe holders as yield. Arbitrage incentives maintain the peg rather than direct redemption. USDe has grown to approximately $6 billion in market cap.

FRAX pioneered a hybrid model combining partial collateral backing with algorithmic stabilization. FRAX v3 moved toward full collateralization, reflecting broader market skepticism toward purely algorithmic designs.

The cautionary tale remains Terra/UST. In May 2022, the algorithmic peg mechanism entered a death spiral - UST depegged, LUNA hyperinflated to absorb selling pressure, and over $40 billion in value was destroyed. The failure demonstrated that algorithmic stability mechanisms work until they do not, and when they fail, they fail catastrophically.

Euro-Pegged Stablecoins

The stablecoin market is expanding beyond the US dollar. EURC (Circle) is a euro-denominated stablecoin deployed across Ethereum, Avalanche, Solana, Base, and Stellar. The EU's Markets in Crypto-Assets (MiCA) regulatory framework drives euro stablecoin adoption by establishing clear rules for issuers in Europe. For developers building applications targeting European users or international payments, EURC introduces multi-currency considerations into stablecoin integration.

Top Stablecoins Ranked

The following table ranks major stablecoins by market capitalization, type, and key technical characteristics.

StablecoinTypeMarket Cap (approx)DecimalsKey Feature
USDTFiat-backed~$185B6Largest by market cap, 13+ chains
USDCFiat-backed~$74B6Most transparent, CCTP cross-chain
USDSCrypto-backed~$10B18Sky Protocol successor to DAI
USDeSynthetic~$6B18Delta-neutral yield, sUSDe
DAICrypto-backed~$5B18Decentralized, permissionless
PYUSDFiat-backed~$4B6PayPal backing, TradFi bridge
GHODeFi-native~$500M18Aave protocol native
EURCFiat-backed~$460M6Euro-denominated

USDT - The Market Leader

USDT dominates with approximately $185 billion in market cap and $13.3 trillion in transaction volume during 2025 (40% of total stablecoin volume). Tether deploys separate contracts on 13+ chains including Ethereum, Tron, BNB Chain, Avalanche, Polygon, Arbitrum, Optimism, Solana, and Base. Cross-chain movement routes through exchanges rather than a native bridge protocol.

USDC - The Transparency Standard

USDC processed $18.3 trillion in volume during 2025, capturing 55% of total stablecoin transaction volume. Circle's Cross-Chain Transfer Protocol (CCTP) enables native burn-and-mint transfers across 17 chains at 1:1 parity without wrapped tokens. This eliminates bridge-wrapped asset risk and simplifies multi-chain deployments.

DAI/USDS - Decentralized Stability

DAI and USDS together form the largest decentralized stablecoin system at approximately $15 billion combined. Sky Protocol manages both assets, with USDS as the modernized successor. For developers who need a stablecoin without centralized freeze capabilities, DAI/USDS remains the primary option - though 18-decimal precision and overcollateralization mechanics add integration complexity.

USDe - Yield-Bearing Synthetic

USDe at approximately $6 billion is the leading synthetic stablecoin. Its delta-neutral design generates yield from perpetual futures funding rates, distributed to sUSDe holders. The model performs well when funding rates are positive but carries risk during sustained negative funding periods. Account for this distinct risk profile when integrating USDe alongside fiat-backed alternatives.

Multi-Chain Deployment

Stablecoins are not single-chain assets. Knowing which tokens are natively available on which networks is essential for multi-chain application design.

StablecoinEthereumArbitrumOptimismBasePolygonAvalancheBNB ChainSolana
USDTYesYesYesYesYesYesYesYes
USDCYesYesYesYesYesYesYesYes
DAIYesYesYesYesYesYesYes-
USDSYesYes-Yes---Yes
USDeYesYesYesYes--YesYes
PYUSDYes------Yes
EURCYes--Yes-Yes-Yes

USDT and USDC have the broadest chain coverage, making them the default choices for multi-network applications. DAI maintains strong L2 availability through bridge deployments. USDe has expanded across major L2s and BNB Chain, while GHO remains primarily Ethereum-native.

Querying stablecoin balances and monitoring transfers across these networks requires RPC access to each chain. Dwellir supports 150+ blockchain networks including all major EVM chains where stablecoins are deployed - Ethereum, Arbitrum, Optimism, Base, Polygon, Avalanche, and BNB Chain - accessible through a single API key and consistent endpoint format.

Developer Integration Patterns

Integrating stablecoins means working with ERC-20 contracts through RPC calls. The patterns are standard, but the details matter.

Ethereum Mainnet Contract Addresses

These are the canonical contract addresses for top stablecoins on Ethereum mainnet. Always verify addresses against official sources before integrating.

StablecoinEthereum Contract Address
USDT0xdAC17F958D2ee523a2206206994597C13D831ec7
USDC0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
DAI0x6B175474E89094C44Da98b954EedeAC495271d0F
USDS0xdC035D45d973E3EC169d2276DDab16f1e407384F
USDe0x4c9EDD5852cd905f086C759E8383e09bff1E68B3
FRAX0x853d955aCEf822Db058eb8505911ED77F175b99e
GHO0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f
EURC0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c

Reading a Stablecoin Balance via eth_call

The most common stablecoin interaction is reading a balance. Here is how to query a USDC balance using a raw eth_call.

# Query USDC balance for a given address using eth_call
# Function selector: balanceOf(address) = 0x70a08231
# Address padded to 32 bytes

curl -X POST https://api-ethereum-mainnet-reth.n.dwellir.com/<api-key> \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "eth_call",
    "params": [{
      "to": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "data": "0x70a08231000000000000000000000000d8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
    }, "latest"],
    "id": 1
  }'

# Response returns hex-encoded balance in token units (6 decimals for USDC)
# Example: 0x00000000000000000000000000000000000000000000000000000000773593FF
# = 1999996927 units = 1999.996927 USDC

The same pattern works for any ERC-20 stablecoin - change the to address to the target token contract. The function selector 0x70a08231 is standard across all ERC-20 implementations.

One important note: USDT on Ethereum has a non-standard ERC-20 implementation where transfer() does not return a boolean. If your smart contract calls USDT's transfer and checks the return value, it will revert. Use OpenZeppelin's SafeERC20 library to handle this safely.

Reading Balances with ethers.js

For a higher-level approach using ethers.js:

import { ethers } from "ethers";

// Connect to Ethereum via Dwellir's RPC endpoint
const provider = new ethers.JsonRpcProvider(
  "https://api-ethereum-mainnet-reth.n.dwellir.com/<api-key>"
);

// Minimal ERC-20 ABI for balance and decimal queries
const ERC20_ABI = [
  "function balanceOf(address owner) view returns (uint256)",
  "function decimals() view returns (uint8)",
  "function symbol() view returns (string)",
];

// Contract addresses on Ethereum mainnet
const USDC_ADDRESS = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48";
const DAI_ADDRESS = "0x6B175474E89094C44Da98b954EedeAC495271d0F";

async function getStablecoinBalances(walletAddress: string) {
  const usdc = new ethers.Contract(USDC_ADDRESS, ERC20_ABI, provider);
  const dai = new ethers.Contract(DAI_ADDRESS, ERC20_ABI, provider);

  // Fetch balances and decimals in parallel (4 RPC calls)
  const [usdcBalance, usdcDecimals, daiBalance, daiDecimals] =
    await Promise.all([
      usdc.balanceOf(walletAddress),
      usdc.decimals(),
      dai.balanceOf(walletAddress),
      dai.decimals(),
    ]);

  // Format balances using actual decimals - never hardcode
  const usdcFormatted = ethers.formatUnits(usdcBalance, usdcDecimals);
  const daiFormatted = ethers.formatUnits(daiBalance, daiDecimals);

  console.log(`USDC: ${usdcFormatted} (${usdcDecimals} decimals)`);
  console.log(`DAI:  ${daiFormatted} (${daiDecimals} decimals)`);
}

getStablecoinBalances("0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045");

The critical detail: ethers.formatUnits() takes the actual decimal count from the contract. Never hardcode 18 decimals for all tokens - USDC returns 6, DAI returns 18. Getting this wrong is one of the most common stablecoin integration bugs.

Monitoring Stablecoin Transfers with eth_getLogs

Payment processors, analytics dashboards, and DeFi protocols need to track stablecoin transfers in real time. The ERC-20 Transfer event uses a standard topic hash across all compliant tokens.

# Monitor USDC transfers in the latest block
# Transfer(address indexed from, address indexed to, uint256 value)
# Topic: 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

curl -X POST https://api-ethereum-mainnet-reth.n.dwellir.com/<api-key> \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "eth_getLogs",
    "params": [{
      "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "topics": [
        "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
      ],
      "fromBlock": "latest",
      "toBlock": "latest"
    }],
    "id": 1
  }'

For production systems processing high stablecoin volumes, WebSocket subscriptions (eth_subscribe) provide lower latency than polling with eth_getLogs. Dwellir provides both HTTPS and WSS endpoints for all supported chains.

Decimal Precision - The Critical Gotcha

This is the single most important integration detail for stablecoin developers.

Token GroupDecimalsRaw Value of $1.00Example
USDT, USDC, PYUSD, EURC61,000,0001000000
DAI, USDS, USDe, FRAX, GHO181,000,000,000,000,000,0001000000000000000000

If your smart contract accepts multiple stablecoins and treats all balances as 18-decimal values, a 1 USDC deposit (raw: 1000000) gets interpreted as 0.000000000001 tokens. Conversely, treating a DAI amount as 6-decimal inflates values by a factor of 10^12.

Best practice: Always call decimals() on the token contract and normalize values before any arithmetic. Never assume decimals based on the token symbol.

// Stablecoin amount normalization (for display only - use bigint math for precision-critical logic)
function normalizeToUsd(rawAmount: bigint, decimals: number): number {
  return Number(rawAmount) / 10 ** decimals;
}

// USDC: 1000000 raw with 6 decimals = $1.00
normalizeToUsd(1000000n, 6); // 1.0

// DAI: 1000000000000000000 raw with 18 decimals = $1.00
normalizeToUsd(1000000000000000000n, 18); // 1.0

For applications that need to verify stablecoin pegs or calculate cross-stablecoin values, Chainlink provides on-chain price feeds.

FeedEthereum Address
USDT/USD0x3E7d1eAB13ad0104d2750B8863b489D65364e32D
USDC/USD0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6
DAI/USD0xAed0c38402a5d19df6E4c03F4E2DceD6e29c1ee9

These feeds are critical for DeFi protocols using stablecoins as collateral. A stablecoin that briefly depegs to $0.98 shifts collateral ratios and can trigger liquidations. Multi-source oracle setups using time-weighted average prices (TWAP) reduce vulnerability to short-term price manipulation.

Cross-Chain Architecture Models

How stablecoins move between chains directly affects your application architecture. The three dominant models each carry distinct trade-offs.

Circle's CCTP (Burn-and-Mint)

Circle's Cross-Chain Transfer Protocol enables native USDC transfers across 17 chains. The mechanism: USDC burns on the source chain, Circle attests to the burn, and native USDC mints on the destination chain. No wrapped tokens, no bridge liquidity pools, no synthetic representations. The 1:1 relationship between burned and minted tokens eliminates smart contract risk associated with bridge pools.

For developers, CCTP means you can accept USDC on any supported chain with confidence that the token is native, not a bridge derivative that could depeg if the bridge is compromised.

Tether's Multi-Chain Direct Issuance

Tether deploys separate USDT contracts on 13+ chains independently. No native cross-chain protocol exists - moving USDT between chains typically requires routing through a centralized exchange. This avoids bridge risk entirely but fragments liquidity across chains.

Synthetic Cross-Chain Approaches

Synthetic stablecoins like USDe have expanded from Ethereum to multiple chains including Arbitrum, Optimism, Base, BNB Chain, and Solana. Cross-chain availability relies on third-party bridge infrastructure, which introduces bridge smart contract risk as a dependency. If a bridge is exploited, bridged tokens on the destination chain could lose their backing.

Risks Developers Should Know

Stablecoin integration carries risks beyond standard smart contract concerns. Production applications must account for each of these failure modes.

Depeg Events

Stablecoins can and do lose their pegs. The Terra/UST collapse in May 2022 wiped out over $40 billion. USDC temporarily depegged during the Silicon Valley Bank collapse in March 2023 when Circle disclosed $3.3 billion in reserves at the failing bank. USDC traded as low as $0.87 before recovering after government intervention.

Depeg events mean your protocol needs circuit breakers. If a stablecoin used as collateral depegs significantly, automated responses - pausing new borrows, adjusting liquidation thresholds, or switching to alternative oracles - prevent cascading losses.

Blacklisting and Address Freezing

Both USDC and USDT smart contracts include administrative functions that freeze funds at specific addresses. Issuers exercise these in response to law enforcement requests, sanctions compliance, and stolen funds recovery.

If your protocol holds stablecoins in a smart contract, that contract address can be blacklisted. This is a real risk for DeFi protocols custodying significant stablecoin balances. Minimizing custodial exposure or diversifying across multiple stablecoin types mitigates this risk.

Oracle Manipulation

Oracle manipulation remains a leading DeFi attack vector, with billions lost to price feed exploits. Single-source price oracles are the primary vulnerability - an attacker who manipulates one price feed can exploit every protocol that depends on it. Multi-oracle adoption sits below 40% across DeFi, leaving most protocols exposed.

Use TWAP oracles for time-smoothed prices, aggregate data from multiple independent sources (Chainlink, Pyth, Uniswap TWAP), and implement deviation thresholds that pause operations when price feeds diverge beyond expected ranges.

Regulatory Risk

The regulatory landscape for stablecoins reached a turning point in 2025. The GENIUS Act, signed into US law on July 18, 2025, establishes a framework for payment stablecoins with clear requirements: 1:1 reserve backing, AML compliance, and explicit classification of stablecoins as non-securities. In Europe, MiCA (Markets in Crypto-Assets) requires authorization for stablecoin issuers operating in the EU.

Regulatory clarity is broadly positive - it legitimizes stablecoin usage and creates predictable rules. However, compliance requirements may affect which stablecoins you can integrate depending on your target markets, and geographic restrictions could limit user access to specific stablecoin types.

The Future of Stablecoins

Three trends are reshaping the stablecoin landscape beyond current fiat-backed and crypto-backed models.

RWA-Backed Stablecoins

Real-world asset (RWA) tokenization and stablecoins are converging. Tokenized US Treasuries, money market funds, and corporate debt serve as transparent, yield-generating collateral for stablecoins. This model combines on-chain reserve transparency with traditional fixed-income yield characteristics. With $35.9 billion in RWAs already tokenized on-chain, the infrastructure for RWA-backed stablecoin collateral is maturing rapidly.

Multi-Currency Expansion

The stablecoin market is diversifying beyond USD denomination. EURC growth, driven by MiCA regulatory clarity in Europe, signals demand for on-chain representations of other major currencies. For applications serving global users, multi-currency stablecoin support is becoming a competitive differentiator.

Growth Projections

The stablecoin market is projected to reach $500 billion in total capitalization by 2028. With 19 new stablecoins launching in H1 2025 alone and active tokens nearly doubling year-over-year, competition among issuers is intensifying. For developers, this means more options but also more complexity in evaluating which stablecoins to support.

Conclusion

Stablecoins are the foundation of on-chain finance, serving as the primary settlement layer across the $130+ billion DeFi ecosystem. With $312+ billion in market cap and $33 trillion in annual transaction volume, they are the highest-volume asset class in crypto. Understanding the differences between fiat-backed, crypto-backed, and synthetic models - along with practical integration details like decimal precision, cross-chain architecture, and oracle dependencies - is essential for building reliable DeFi applications.

The key takeaways for developers:

  • Decimal handling is critical. Always query decimals() from the contract. Never assume 18. A mismatch between 6-decimal USDC and 18-decimal DAI can introduce trillion-fold calculation errors.
  • Not all stablecoins carry the same risk. Fiat-backed stablecoins offer price stability but introduce centralization and blacklisting risk. Crypto-backed stablecoins are decentralized but capital-inefficient. Synthetic models offer yield but carry structural risk.
  • Multi-chain support varies. USDT and USDC have the broadest deployment. If your application targets multiple chains, verify native availability versus bridge-wrapped versions.
  • Oracle configuration matters. Use multi-source price feeds and TWAP mechanisms. Single-oracle setups are the primary attack vector for stablecoin-related exploits.

Building stablecoin applications across multiple chains requires reliable RPC infrastructure on every network where those tokens are deployed. Dwellir supports 150+ blockchain networks with archive node access, HTTPS and WSS endpoints, and a flat-rate pricing model where 1 response equals 1 credit - no compute unit complexity as your transaction volume scales.

To start integrating stablecoins, explore Dwellir's Ethereum documentation for RPC methods, test the code examples above using the public RPC endpoints, or contact the Dwellir team to discuss your infrastructure requirements.

read another blog post

© Copyright 2025 Dwellir AB