Tools/Explorers

Programmable Stablecoins: Smart Contract Features by Issuer

Compare programmable features of USDC, USDT, PYUSD, DAI, USDe, and frxUSD including hooks, cross-chain messaging, compliance controls, and automation.

Spark TeamInvalid Date

Programmable Stablecoin Feature Matrix

Stablecoins are no longer simple ERC-20 transfers. The latest generation of dollar tokens ships with programmable hooks, gasless authorization schemes, cross-chain burn-and-mint protocols, and on-chain yield mechanics. For developers building programmable money applications, the choice of stablecoin determines which payment flows are possible at the contract level.

The following matrix summarizes core programmability features across the six most developer-relevant stablecoins. Each feature is explored in detail throughout this guide.

FeatureUSDCUSDTPYUSDDAI / USDSUSDefrxUSD
ERC-2612 (permit)YesNoYesYes (DAI was first)YesYes
ERC-3009 (transferWithAuthorization)YesNoYesNoNoNo
ERC-4626 yield vaultNoNoNoYes (sDAI, sUSDS)Yes (sUSDe)Yes (sfrxUSD)
Native cross-chain protocolCCTP v2USDT0 (LayerZero)LayerZero OFTSkyLinkLayerZero + WormholeFraxferry
Transfer hooksCCTP v2 hooksNoToken-2022 (reserved)NoNoNo
Freeze / blacklistYesYesYesUSDS onlyNoNo
Programmable complianceVerite + Compliance EngineChainalysis integrationPermanent delegateNoiUSDe (restricted)No
Solana Token-2022No (SPL token)No (SPL token)YesN/ANoNo

For a broader comparison of stablecoin fundamentals (market cap, backing, regulation), see the stablecoin comparison tool. This guide focuses specifically on what developers can build with each token's smart contract capabilities.

Smart Contract Authorization Standards

The baseline programmability of any EVM stablecoin depends on which authorization standards its contract implements. Two extensions matter most for payment automation: ERC-2612 (permit) and ERC-3009 (transferWithAuthorization).

ERC-2612: Gasless Approvals via Permit

ERC-2612 adds a permit() function that accepts an off-chain EIP-712 signature to set an allowance. This eliminates the separate approve transaction, saving gas and enabling single-transaction flows where a relayer submits the permit and transfer together. USDC (since its v2 upgrade in August 2022), DAI (which pioneered the pattern in 2019), PYUSD, USDe, and frxUSD all support permit. USDT does not.

ERC-3009: Scheduled and Conditional Transfers

ERC-3009 goes further than permit by authorizing a complete transfer via a signed message, not just an allowance. The signature includes validAfter and validBefore time bounds, enabling scheduled payments, subscription billing, and escrow release without on-chain state. The payer signs once; the recipient or a relayer submits the transaction within the valid window. USDC and PYUSD implement ERC-3009. USDT, DAI, USDe, and frxUSD do not.

For payment applications, ERC-3009 is the more powerful primitive: it enables pull payments, recurring billing, and time-locked disbursements without requiring the sender to be online at execution time. See our stablecoin API integration comparison for how these standards map to real developer workflows.

ERC-4626 Yield Vaults

The ERC-4626 tokenized vault standard has become the dominant pattern for on-chain stablecoin yield. Users deposit the base stablecoin and receive vault shares that appreciate as yield accrues. Total ERC-4626 TVL across all assets exceeded $30 billion by early 2026.

VaultBase TokenYield SourceApproximate APYCooldown
sUSDSUSDSRWA (T-bills), Spark borrow rates, stability fees~3.75%None
sDAIDAIDAI Savings Rate (funded by same sources as SSR)~3.25%None
sUSDeUSDeFunding rates on short perp positions + staking yield~9-10%7 days
sfrxUSDfrxUSDTokenized Treasuries (BUIDL), AMO revenue~3-5%None

From a programmability standpoint, ERC-4626 vaults are composable: sUSDS and sUSDe can serve as collateral in lending protocols like Aave, Morpho, and Pendle. This means a payment application can hold yield-bearing stablecoins until the moment of disbursement, earning interest on float without custom smart contract logic. For more on yield mechanics, see our yield-bearing stablecoins explainer.

Cross-Chain Messaging Protocols

Moving stablecoins between chains is a core requirement for cross-chain payment infrastructure. Three protocols dominate stablecoin cross-chain transfers, each with different trust models and programmability.

CCTP v2 (USDC)

Circle's Cross-Chain Transfer Protocol burns USDC on the source chain and mints natively on the destination: no wrapped tokens, no liquidity pools. CCTP v2, which launched in March 2025 and became the canonical version in November 2025, added two features critical for programmable payments: Fast Transfers (8-20 second finality using Circle's short-term liquidity) and Hooks (destination contracts execute arbitrary logic atomically when USDC arrives). CCTP v2 supports 13+ mainnet chains including Ethereum, Solana, Base, Arbitrum, and Sui. V1 phase-out begins July 31, 2026.

LayerZero OFT (USDT0, PYUSD, USDe)

LayerZero's Omnichain Fungible Token standard powers cross-chain transfers for multiple stablecoins. USDT0, Tether's omnichain wrapper launched in January 2025, processed over $63 billion in its first year across 15+ chains. PYUSD and USDe also use LayerZero OFT for multi-chain deployment. As of mid-2025, 61.2% of all issued stablecoins ($150 billion) were supported by LayerZero infrastructure.

Wormhole NTT (USDe, RLUSD)

Wormhole's Native Token Transfers crossed $5 billion in bridged supply by early 2026. Ripple's RLUSD uses NTT for cross-chain expansion across 40+ networks, while Ethena's USDe uses both NTT and LayerZero OFT simultaneously for redundancy.

Programmable Compliance and Access Control

Compliance controls are where stablecoins diverge most sharply from permissionless tokens. The ability to freeze addresses, restrict transfers, or enforce KYC at the contract level is both a regulatory requirement for fiat-backed issuers and a design constraint for developers building on top.

USDC: Blacklist + Verite Credentials

USDC's FiatTokenV2 contract includes a dedicated blacklister role that can freeze and unfreeze addresses. Circle has also developed Verite, an open-source decentralized identity framework (co-created with Coinbase and Block) that lets users hold portable, privacy-preserving KYC credentials in their wallets. Separately, Circle's Compliance Engine provides transaction screening, Travel Rule compliance, and real-time flagging via API.

USDT: Admin Blacklist with Fund Destruction

USDT's contract exposes addBlackList, removeBlackList, and destroyBlackFunds functions controlled by the contract owner via multisig. The destroyBlackFunds function zeroes a blacklisted address's balance and reduces total supply: an irreversible operation. As of early 2026, Tether had frozen over $4.4 billion across 2,300+ cases in 65 countries. USDT has no transfer hooks or programmable extensions beyond these admin functions.

PYUSD: Token-2022 Extensions on Solana

PYUSD was the first major stablecoin to use Solana's Token-2022 standard, enabling mint-level extensions that legacy SPL tokens cannot support. The PYUSD mint has transfer hooks initialized (reserved for future compliance logic), a permanent delegate (allowing Paxos to freeze or seize tokens from any account), transfer fees initialized at 0% (activatable without redeployment), and memo required (senders must attach memo data). Confidential transfers were enabled at launch but have been disabled on Solana mainnet since June 2025 following two zero-day vulnerabilities in the ZK ElGamal proof system.

USDS: Governance-Gated Freeze

Unlike the immutable DAI contract, USDS includes a freeze function that can halt transfers from specific wallets. This capability was not active at launch and requires governance approval. The addition reflects Sky's increasing RWA exposure (over 60% of protocol revenue comes from Treasuries and corporate bonds), which makes regulatory compliance controls necessary.

Programmable Savings and Yield Automation

Several stablecoins now offer native yield mechanisms that developers can compose into payment flows without building custom vault logic.

Sky's D3M (Direct Deposit Module) is the most sophisticated example of programmable yield infrastructure. The D3M uses a Hub, Plan, and Pool architecture to mint DAI or USDS directly into lending protocols (primarily SparkLend) to enforce a governance-set target borrow rate. When the borrow rate on SparkLend exceeds the target, the D3M automatically mints more supply to push rates down. This creates a programmatic interest rate ceiling that external applications can rely on.

Frax takes a different approach with Algorithmic Market Operations (AMOs): autonomous smart contracts authorized by governance to mint, burn, or deploy frxUSD within defined constraints. AMOs programmatically react to Fed rate changes: high rates shift capital toward T-bills, while low rates redirect toward on-chain lending and Curve liquidity. This makes sfrxUSD yield partially responsive to macroeconomic conditions without manual governance votes.

For background on how these yield mechanisms work and their risk profiles, see our stablecoin yield landscape analysis.

Enabling New Payment Flows

The combination of authorization standards, yield vaults, and cross-chain protocols enables payment patterns that were impossible with first-generation stablecoins:

  • Conditional payments: ERC-3009 time-bounded authorizations allow escrow-like flows where funds release only within a specified window, without locking tokens in a separate contract
  • Yield-on-float: treasury operations can hold sUSDS or sfrxUSD between receipt and disbursement, earning 3-5% APY on idle balances through standard ERC-4626 deposit and withdrawal calls
  • Atomic cross-chain settlement: CCTP v2 hooks enable a single transaction to burn USDC on one chain, mint on another, and execute arbitrary logic (swap, lend, pay) on the destination
  • Streaming payments: permit-based approvals combined with smart contract drip logic enable per-second salary disbursement or usage-based billing without repeated signer interaction
  • Programmable compliance: applications can gate access to specific payment flows using Verite credentials or Token-2022 transfer hooks rather than off-chain KYC checks

These patterns are especially relevant for programmable money use cases like escrow, stablecoin payment rails, and automated settlement. Spark connects to this programmable infrastructure by enabling instant, low-fee stablecoin transfers on Bitcoin through USDB, providing a Bitcoin-native layer for payment applications that need final settlement without bridging to EVM chains.

Emerging Programmability: M^0 and PYUSDx

Two newer infrastructure projects are pushing stablecoin programmability in different directions.

M^0 Protocol is a modular issuance layer where approved institutions mint a base token ($M) against T-bill collateral, then wrap it into branded stablecoins with custom yield logic, access controls, and compliance filters. M^0 powers custom dollars for MetaMask (mUSD), Noble, and Usual, with aggregate supply surpassing $300 million. Governance-approved "Earner" addresses automatically accrue yield via an index-based mechanism, making $M programmable at the protocol level.

PYUSDx, launched in February 2026 by MoonPay and M^0, enables developers to issue branded, app-specific stablecoins fully collateralized by PYUSD. The first adopter, USD.ai, uses it for AI infrastructure payments. This "stablecoin-as-a-service" model lets applications embed custom payment logic on top of a regulated base asset.

Choosing a Programmable Stablecoin

The right choice depends on what you are building:

  • For cross-chain payment applications that need atomic post-transfer logic: USDC with CCTP v2 hooks provides the most mature tooling
  • For gasless payment flows with scheduled execution: USDC or PYUSD (both support ERC-3009 transferWithAuthorization)
  • For yield-bearing treasury management: sUSDS, sUSDe, or sfrxUSD via the ERC-4626 standard, depending on risk tolerance and target APY
  • For Solana-native applications needing compliance hooks: PYUSD with Token-2022 extensions
  • For Bitcoin-native stablecoin payments: USDB on Spark for instant, near-zero-fee transfers without EVM dependencies
  • For maximum liquidity with minimal programmability requirements: USDT remains dominant by volume, though it lacks permit, ERC-3009, and transfer hook support

For a complementary view on gateway-level integration, see the crypto payment gateway comparison.

Frequently Asked Questions

What is a programmable stablecoin?

A programmable stablecoin is a dollar-pegged token whose smart contract supports features beyond basic transfers: gasless approvals (permit), scheduled payments (transferWithAuthorization), on-chain yield (ERC-4626 vaults), cross-chain messaging (CCTP, LayerZero), or compliance hooks (freeze, transfer restrictions). These features let developers build automated payment flows, conditional escrow, streaming payments, and yield-optimized treasury operations directly at the contract level.

Does USDT support transfer hooks or programmable features?

No. USDT's smart contract is a standard upgradeable ERC-20 with admin-controlled blacklist and fund destruction functions. It does not implement ERC-2612 (permit), ERC-3009 (transferWithAuthorization), ERC-4626 (yield vaults), or any form of transfer hooks. USDT0, the LayerZero-based cross-chain wrapper launched in January 2025, adds omnichain portability but not contract-level programmability.

Which stablecoins support gasless transfers?

USDC, DAI, PYUSD, USDe, and frxUSD all support ERC-2612 permit, which enables gasless approvals via off-chain signatures. USDC and PYUSD go further with ERC-3009 transferWithAuthorization, which authorizes the entire transfer (not just an allowance) via signature, so the payer never needs ETH. A relayer or the recipient submits the transaction and pays gas on the payer's behalf.

What are CCTP v2 hooks and how do they work?

CCTP v2 hooks are a feature of Circle's Cross-Chain Transfer Protocol that allow a destination smart contract to execute arbitrary logic atomically when USDC arrives from another chain. When sending USDC cross-chain, the caller specifies a hook contract and calldata on the destination. After the USDC is minted, the hook contract is invoked in the same transaction. This enables patterns like "bridge USDC from Ethereum to Arbitrum and immediately swap to ETH" or "bridge and deposit into a lending protocol" without the recipient needing to submit a second transaction.

What is Solana Token-2022 and why does it matter for stablecoins?

Token-2022 (also called Token Extensions) is Solana's next-generation token standard that supports mint-level extensions: transfer hooks (custom logic on every transfer), transfer fees (protocol-level fee withholding), confidential transfers (encrypted amounts via ZK proofs), permanent delegation (issuer can freeze or seize tokens), and interest-bearing balances. PYUSD is the first major stablecoin to use Token-2022. These extensions enable compliance and programmability features at the protocol level rather than requiring wrapper contracts.

Can I earn yield on stablecoins programmatically?

Yes. sUSDS, sUSDe, and sfrxUSD all implement the ERC-4626 tokenized vault standard, which provides a standard interface for deposits, withdrawals, and share-price queries. A smart contract can deposit USDS into the sUSDS vault via a single deposit() call and earn the Sky Savings Rate (approximately 3.75% as of mid-2026). Yield accrues via a rising exchange rate between the vault share and the base token: no rebasing, no claim transactions, and fully composable as collateral in DeFi lending protocols.

How do programmable stablecoins compare to CBDCs?

Both programmable stablecoins and CBDCs aim to enable automated payment logic, but they differ in architecture. Stablecoins are issued by private entities on public or permissioned blockchains, with programmability defined by open standards (ERC-2612, ERC-4626, Token-2022). CBDCs are issued by central banks, often on private ledgers with programmability controlled by the issuing authority. For a detailed comparison, see our CBDC vs stablecoins analysis.

This tool is for informational purposes only and does not constitute financial or technical advice. Smart contract features, yield rates, and protocol details change frequently. Always verify current capabilities by reviewing the issuer's documentation and on-chain contract code before building production integrations.

Build with Spark

Integrate bitcoin, Lightning, and stablecoins into your app with a few lines of code.

Read the docs →