ERC-20 is the standard interface for issuing fungible tokens on the Ethereum blockchain. Tokens like USDT, LINK, and UNI all operate on this standard, making it the backbone of the DeFi ecosystem.
1. What is ERC-20?
ERC-20 stands for Ethereum Request for Comments #20, proposed in November 2015 by Fabian Vogelsteller and Vitalik Buterin (EIP-20). Before this standard, every token had a different interface, requiring custom integrations for each new token in wallets and exchanges.
1.2 Fungible vs Non-Fungible Tokens
- ERC-20: Currency, utility tokens, governance tokens (e.g., USDT, UNI, AAVE)
- ERC-721: Digital art, game items, certificates (e.g., CryptoPunks, BAYC)
- ERC-1155: Manages both fungible and non-fungible tokens in a single contract
2. Solidity Implementation
In production, use the battle-tested OpenZeppelin library rather than implementing from scratch.
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract FitToken is ERC20, Ownable {
constructor() ERC20("Fit Token", "FIT") Ownable(msg.sender) {
_mint(msg.sender, 100_000_000 * 10**18);
}
}
3. Security Audit
Key vulnerabilities to check: Re-entrancy attacks, Integer overflow/underflow, Front-running via approve race conditions, and Infinite approval risks.