StableMoney.Dev

Technical reference for engineers building with stablecoins

ERC / EIP standards in stablecoins

Deep reference for EVM deployments in scope: USDT, USDC, USDe, DAI, USDS, FDUSD, PYUSD, FRAX, TUSD, and USD1 — ERC-20 surface, typed data (EIP-712), permit (EIP-2612), authorizations (EIP-3009), proxies (EIP-1967 / EIP-1822), vaults (ERC-4626), and contract signatures (EIP-1271). Use the matrix for a glance; expand sections for function lists, type hashes, and integration footguns. Some entries are chain-specific (e.g. BNB vs Ethereum); always verify the deployment you integrate.

Comparison matrix

Rows are standards from the master registry; columns follow static rank order. Click any row to scroll to that standard in the deep dive below. Hover a cell for a one-line developer impact note.

StandardUSDTUSDCUSDeDAIUSDSFDUSDPYUSDFRAXTUSDUSD1
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
EIP-2612
Permit — gasless ERC-20 approval
EIP-3009
transferWithAuthorization
ERC-4626
Tokenized yield vault standard
  • Implemented
  • Partial
  • Not implemented
  • Unknown

Standards deep dive

Core

ERC-20 Fungible token standard

eips.ethereum.org →

Base interface for all fungible tokens — transfer, approve, allowance, balanceOf, totalSupply

Signatures & typed data

EIP-712 Typed structured data signing

eips.ethereum.org →

Domain-separated typed message signing that binds signatures to a specific contract and chain ID, preventing cross-chain and cross-contract replay attacks

USDT

Not implemented for EIP-712. Same as an empty profile row unless you verify this deployment on-chain.

FRAX

Not implemented for EIP-712. Same as an empty profile row unless you verify this deployment on-chain.

TUSD

Not implemented for EIP-712. Same as an empty profile row unless you verify this deployment on-chain.

EIP-2612 Permit — gasless ERC-20 approval

eips.ethereum.org →

Adds permit() to ERC-20 — users sign an approval off-chain, relayer submits on-chain. Eliminates the separate approve() transaction in DeFi flows

USDT

Not implemented for EIP-2612. Same as an empty profile row unless you verify this deployment on-chain.

FRAX

Not implemented for EIP-2612. Same as an empty profile row unless you verify this deployment on-chain.

TUSD

Not implemented for EIP-2612. Same as an empty profile row unless you verify this deployment on-chain.

EIP-3009 transferWithAuthorization

eips.ethereum.org →

Signed atomic transfer (not just approval) with random bytes32 nonces — enables concurrent authorizations and single-transaction gasless payments

USDT

Not implemented for EIP-3009. Same as an empty profile row unless you verify this deployment on-chain.

USDe

Not implemented for EIP-3009. Same as an empty profile row unless you verify this deployment on-chain.

DAI

Not implemented for EIP-3009. Same as an empty profile row unless you verify this deployment on-chain.

USDS

Not implemented for EIP-3009. Same as an empty profile row unless you verify this deployment on-chain.

FRAX

Not implemented for EIP-3009. Same as an empty profile row unless you verify this deployment on-chain.

TUSD

Not implemented for EIP-3009. Same as an empty profile row unless you verify this deployment on-chain.

USD1

Not implemented for EIP-3009. Same as an empty profile row unless you verify this deployment on-chain.

EIP-1271 Signature validation for smart contracts

eips.ethereum.org →

isValidSignature() lets smart contract wallets (Safe multisig, Argent, AA wallets) verify signatures — enables permit flows for contracts, not just EOAs

USDT

Not implemented for EIP-1271. Same as an empty profile row unless you verify this deployment on-chain.

USDC

Not implemented for EIP-1271. Same as an empty profile row unless you verify this deployment on-chain.

USDe

Not implemented for EIP-1271. Same as an empty profile row unless you verify this deployment on-chain.

DAI

Not implemented for EIP-1271. Same as an empty profile row unless you verify this deployment on-chain.

FDUSD

Not implemented for EIP-1271. Same as an empty profile row unless you verify this deployment on-chain.

PYUSD

Not implemented for EIP-1271. Same as an empty profile row unless you verify this deployment on-chain.

FRAX

Not implemented for EIP-1271. Same as an empty profile row unless you verify this deployment on-chain.

TUSD

Not implemented for EIP-1271. Same as an empty profile row unless you verify this deployment on-chain.

Upgradeability & proxies

EIP-1967 Standard proxy storage slots

eips.ethereum.org →

Standardises where proxy contracts store the implementation and admin addresses, enabling Etherscan and tooling to auto-detect proxies

USDT

Not implemented for EIP-1967. Same as an empty profile row unless you verify this deployment on-chain.

DAI

Not implemented for EIP-1967. Same as an empty profile row unless you verify this deployment on-chain.

EIP-1822 UUPS — universal upgradeable proxy

eips.ethereum.org →

Upgrade logic lives in the implementation contract rather than the proxy. Cheaper to deploy than transparent proxies and easier to audit

USDT

Not implemented for EIP-1822. Same as an empty profile row unless you verify this deployment on-chain.

USDC

Not implemented for EIP-1822. Same as an empty profile row unless you verify this deployment on-chain.

DAI

Not implemented for EIP-1822. Same as an empty profile row unless you verify this deployment on-chain.

FRAX

Not implemented for EIP-1822. Same as an empty profile row unless you verify this deployment on-chain.

TUSD

Not implemented for EIP-1822. Same as an empty profile row unless you verify this deployment on-chain.

USD1

Not implemented for EIP-1822. Same as an empty profile row unless you verify this deployment on-chain.

Vaults & yield

ERC-4626 Tokenized yield vault standard

eips.ethereum.org →

Standard interface for yield-bearing vaults: deposit, withdraw, mint, redeem, convertToShares, convertToAssets. Any ERC-4626-aware protocol integrates automatically

USDT

Not implemented for ERC-4626. Same as an empty profile row unless you verify this deployment on-chain.

USDC

Not implemented for ERC-4626. Same as an empty profile row unless you verify this deployment on-chain.

DAI

Not implemented for ERC-4626. Same as an empty profile row unless you verify this deployment on-chain.

FDUSD

Not implemented for ERC-4626. Same as an empty profile row unless you verify this deployment on-chain.

PYUSD

Not implemented for ERC-4626. Same as an empty profile row unless you verify this deployment on-chain.

TUSD

Not implemented for ERC-4626. Same as an empty profile row unless you verify this deployment on-chain.

USD1

Not implemented for ERC-4626. Same as an empty profile row unless you verify this deployment on-chain.