ERC / EIP standards and compliance
Deep reference for twelve EVM-tracked stablecoins: USDT, USDC, USDS, USDe, DAI, USD1, RLUSD, GHO, PYUSD, TUSD, FDUSD, frxUSD — ERC-20 surface, typed data (EIP-712), permit (EIP-2612), authorizations (EIP-3009), proxies (EIP-1967 / EIP-1822), vaults (ERC-4626), contract signatures (EIP-1271), cross-chain (ERC-7802), flash loans (ERC-3156), and compliance (freeze / seize / pause). Use the matrix for a glance; expand sections for function lists, type hashes, and integration footguns. Some entries are chain-specific; always verify the deployment you integrate.
Comparison matrix
Rows are standards from the master registry; columns follow a fixed comparison order (see matrix headers). Click any row to scroll to that standard in the deep dive below. Hover a cell for a one-line developer impact note.
| Standard | USDT | USDC | USDS | USDe | USD1 | DAI | RLUSD | GHO | PYUSD | TUSD | FDUSD | frxUSD |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
ERC-20 Fungible token standard | ||||||||||||
EIP-712 Typed structured data signing | ||||||||||||
EIP-1271 Signature validation for smart contracts | ||||||||||||
EIP-1822 UUPS — universal upgradeable proxy | ||||||||||||
EIP-1967 Standard proxy storage slots | NET | |||||||||||
EIP-2612 Permit — gasless ERC-20 approval | ||||||||||||
EIP-3009 transferWithAuthorization | NET | |||||||||||
ERC-3156 Flash loans | DssFlash + DaiUsds | |||||||||||
ERC-4626 Tokenized yield vault standard | sDAI (Spark Protocol) | |||||||||||
ERC-7802 Crosschain token interface | NET | CCTP v2 | Wormhole NTT | LayerZero OFT | Chainlink CCIP | |||||||
Freeze Address freezing / blacklisting | ||||||||||||
Seize Fund seizure / clawback | ||||||||||||
Pause Global transfer pause | ||||||||||||
| Data sourced from verified Etherscan contract source code. Implementations may differ across networks — always verify on the specific chain you integrate with. | ||||||||||||
- Implemented
- Partial
- Alternative
- Not implemented
- Unknown
Standards deep dive
Core
ERC-20 — Fungible token standard
Base interface for all fungible tokens — transfer, approve, allowance, balanceOf, totalSupply
Signatures & typed data
EIP-712 — Typed structured data signing
Domain-separated typed message signing that binds signatures to a specific contract and chain ID, preventing cross-chain and cross-contract replay attacks
Not implemented for EIP-712.
Not implemented for EIP-712.
EIP-2612 — Permit — gasless ERC-20 approval
Adds permit() to ERC-20 — users sign an approval off-chain, relayer submits on-chain. Eliminates the separate approve() transaction in DeFi flows
Not implemented for EIP-2612.
Not implemented for EIP-2612.
EIP-3009 — transferWithAuthorization
Signed atomic transfer (not just approval) with random bytes32 nonces — enables concurrent authorizations and single-transaction gasless payments
Not implemented for EIP-3009.
Not implemented for EIP-3009.
Not implemented for EIP-3009.
Not implemented for EIP-3009.
Not implemented for EIP-3009.
Not implemented for EIP-3009.
Not implemented for EIP-3009.
Not implemented for EIP-3009.
EIP-1271 — Signature validation for smart contracts
isValidSignature() lets smart contract wallets (Safe multisig, Argent, AA wallets) verify signatures — enables permit flows for contracts, not just EOAs
Not implemented for EIP-1271.
Not implemented for EIP-1271.
Not implemented for EIP-1271.
Not implemented for EIP-1271.
Not implemented for EIP-1271.
Not implemented for EIP-1271.
Not implemented for EIP-1271.
Not implemented for EIP-1271.
Upgradeability & proxies
EIP-1967 — Standard proxy storage slots
Standardises where proxy contracts store the implementation and admin addresses, enabling Etherscan and tooling to auto-detect proxies
Not implemented for EIP-1967.
Not implemented for EIP-1967.
Not implemented for EIP-1967.
Not implemented for EIP-1967.
EIP-1822 — UUPS — universal upgradeable proxy
Upgrade logic lives in the implementation contract rather than the proxy. Cheaper to deploy than transparent proxies and easier to audit
Not implemented for EIP-1822.
Not implemented for EIP-1822.
Not implemented for EIP-1822.
Not implemented for EIP-1822.
Not implemented for EIP-1822.
Not implemented for EIP-1822.
Not implemented for EIP-1822.
Not implemented for EIP-1822.
Not implemented for EIP-1822.
Not implemented for EIP-1822.
Vaults & yield
ERC-4626 — Tokenized yield vault standard
Standard interface for yield-bearing vaults: deposit, withdraw, mint, redeem, convertToShares, convertToAssets. Any ERC-4626-aware protocol integrates automatically
Not implemented for ERC-4626.
Not implemented for ERC-4626.
Not implemented for ERC-4626.
Not implemented for ERC-4626.
Not implemented for ERC-4626.
Not implemented for ERC-4626.
Not implemented for ERC-4626.
Not implemented for ERC-4626.
Compliance
Freeze — Address freezing / blacklisting
Issuer ability to freeze or blacklist individual addresses, preventing them from sending or receiving tokens. The most fundamental compliance capability for sanctions enforcement (OFAC/SDN) and law-enforcement cooperation.
Not implemented for Freeze.
Not implemented for Freeze.
Not implemented for Freeze.
Seize — Fund seizure / clawback
Issuer ability to destroy or reclaim tokens from frozen/blacklisted addresses. Goes beyond freeze-in-place — the issuer can permanently remove tokens from circulation or redirect them. Critical for court-ordered asset recovery.
Not implemented for Seize.
Not implemented for Seize.
Not implemented for Seize.
Not implemented for Seize.
Not implemented for Seize.
Not implemented for Seize.
Pause — Global transfer pause
Emergency circuit-breaker that halts ALL token transfers contract-wide. Used for critical security incidents, regulatory orders, or protocol-level emergencies. Affects every holder simultaneously.
Not implemented for Pause.
Not implemented for Pause.
Not implemented for Pause.
Not implemented for Pause.
Cross-chain
ERC-7802 — Crosschain token interface
Minimal interface for cross-chain mint/burn — standardises crosschainMint() and crosschainBurn() so any bridge can move tokens without wrapped representations
Not implemented for ERC-7802.
Not implemented for ERC-7802.
Not implemented for ERC-7802.
Not implemented for ERC-7802.
Not implemented for ERC-7802.
Not implemented for ERC-7802.
Not implemented for ERC-7802.
Flash Loans
ERC-3156 — Flash loans
Standard interface for single-transaction borrow-use-repay flash loans — maxFlashLoan(), flashFee(), flashLoan(). Enables arbitrage, liquidation, and refinancing without upfront capital
Not implemented for ERC-3156.
Not implemented for ERC-3156.
Not implemented for ERC-3156.
Not implemented for ERC-3156.
Not implemented for ERC-3156.
Not implemented for ERC-3156.
Not implemented for ERC-3156.
Not implemented for ERC-3156.
Not implemented for ERC-3156.