ERC-20
ERC-20 é um padrão técnico usado para criar tokens fungíveis na blockchain Ethereum, definindo um conjunto comum de regras para o comportamento dos tokens.
ERC-20, que significa Ethereum Request for Comments 20, é uma interface padrão para tokens na blockchain Ethereum. Ele fornece um modelo de como os tokens devem se comportar, incluindo funções para transferir tokens, verificar saldos e aprovar transações. Essa padronização permite que diferentes tokens interajam perfeitamente entre si e com aplicativos descentralizados (dApps) construídos no Ethereum. Garante a compatibilidade e simplifica o processo de desenvolvimento tanto para criadores de tokens quanto para usuários.
O padrão ERC-20 define funções como totalSupply(), balanceOf(), transfer(), transferFrom(), approve() e allowance(). Essas funções permitem operações básicas de token, como verificar o fornecimento total de um token, verificar o saldo de tokens de um usuário, transferir tokens entre endereços e permitir que terceiros gastem tokens em nome de um usuário. A adesão a este padrão garante que os tokens possam ser facilmente integrados em wallets, exchanges e outras plataformas baseadas em Ethereum.
graph LR
Center["ERC-20"]:::main
Pre_smart_contract["smart-contract"]:::pre --> Center
click Pre_smart_contract "/terms/smart-contract"
Pre_ethereum["ethereum"]:::pre --> Center
click Pre_ethereum "/terms/ethereum"
Pre_token["token"]:::pre --> Center
click Pre_token "/terms/token"
Center --> Child_stablecoin["stablecoin"]:::child
click Child_stablecoin "/terms/stablecoin"
Center --> Child_governance_token["governance-token"]:::child
click Child_governance_token "/terms/governance-token"
Rel_erc_721["erc-721"]:::related -.-> Center
click Rel_erc_721 "/terms/erc-721"
Rel_erc_1155["erc-1155"]:::related -.-> Center
click Rel_erc_1155 "/terms/erc-1155"
Rel_eips["eips"]:::related -.-> Center
click Rel_eips "/terms/eips"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Teste de conhecimento
🧒 Explique como se eu tivesse 5 anos
Think of ERC-20 like a universal remote control for digital money on [Ethereum](/pt/terms/ethereum). It makes sure all digital coins work the same way so your [wallet](/pt/terms/wallet) and other apps know how to send, receive, and check balances without needing special instructions for each coin.
🤓 Expert Deep Dive
The ERC-20 standard, codified in EIP-20, provides a foundational interface for fungible tokens on Ethereum. Its design prioritizes simplicity and broad compatibility, defining a minimal set of functions and events. The approve and transferFrom pattern is crucial for enabling decentralized exchanges (DEXs) and other protocols to act as token custodians without requiring direct token ownership. This pattern, however, introduces a potential attack vector: reentrancy. If a malicious contract calls back into the token contract after a transferFrom but before the balance is updated, it could potentially drain more tokens than intended. Robust implementations mitigate this through checks-effects-interactions pattern or reentrancy guards. The standard's fungibility implies that all token instances are identical, simplifying supply management but limiting expressiveness for unique digital assets. The absence of built-in minting or burning mechanisms means these functionalities must be explicitly coded into the contract, often leading to variations like MintableToken or BurnableToken contracts, which themselves can introduce additional security considerations.