RSS Amplifier

ETH Beagá · Oct 13, 2025

#6 Tokens e Padrões (ERC-20, ERC-721, ERC-1155)

0
Sign in to vote or save

ETH Beagá · ETH Beagá

Na blockchain Ethereum, tokens são representações digitais de ativos — podem ser moedas, pontos, obras de arte, ingressos, ou qualquer valor que possa ser programado.
Eles seguem padrões técnicos chamados ERCs (Ethereum Request for Comments), que funcionam como protocolos universais para garantir que qualquer carteira, exchange ou dApp saiba interagir com eles.

Os tokens ERC-20 são fungíveis, ou seja, idênticos entre si. Eles são um tipo de token em que cada unidade é idêntica e intercambiável com outra. Isso significa que não há diferença entre um token e outro do mesmo tipo. Por exemplo, 1 USDC (uma stablecoin pareada ao dólar) tem exatamente o mesmo valor, função e comportamento que qualquer outro 1 USDC. Não importa de qual carteira ele venha — todos seguem o mesmo padrão ERC-20, o que permite que sejam trocados, transferidos ou usados em contratos inteligentes de forma padronizada. Eles são a base das stablecoins, tokens de governança e ativos DeFi.

// Interface padrão ERC-20
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
}
// Implementação mínima de um token ERC-20
pragma solidity ^0.8.0;
contract MeuToken is IERC20 {
    string public name = “MeuToken”;
    string public symbol = “MTK”;
    uint8 public decimals = 18;
    uint256 private _totalSupply = 1_000_000 * (10 ** uint256(decimals));
    mapping(address => uint256) private _balances;
    constructor() {
        _balances[msg.sender] = _totalSupply;
    }
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }
    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }
    function transfer(address to, uint256 amount) public returns (bool) {
        require(_balances[msg.sender] >= amount, “Saldo insuficiente”);
        _balances[msg.sender] -= amount;
        _balances[to] += amount;
        return true;
    }
}

Qualquer carteira compatível com ERC-20 (como MetaMask) entende essas funções — por isso, tokens como USDT, DAI e AAVE são interoperáveis.

O padrão ERC-721 define os chamados tokens não fungíveis, ou simplesmente NFTs (Non-Fungible Tokens). Diferente dos tokens ERC-20, em que todas as unidades são idênticas, cada token ERC-721 é único e indivisível, representando algo específico e exclusivo. Cada token possui um identificador único (tokenId) e pode armazenar metadados — como nome, imagem, descrição ou atributos especiais — geralmente referenciados em um arquivo JSON hospedado fora da blockchain (ex: IPFS).

Um artista pode criar uma coleção com 100 obras digitais. Cada obra será um NFT com tokenId diferente, contendo metadados como:

{
  “name”: “Obra #17”,
  “description”: “Arte digital generativa única”,
  “image”: “ipfs://Qm12345...”,
  “attributes”: [
    { “trait_type”: “Cor predominante”, “value”: “Azul” },
    { “trait_type”: “Estilo”, “value”: “Abstrato” }
  ]
}

Assim, mesmo pertencendo à mesma coleção, cada token é único e rastreável.

  • Arte digital e colecionáveis: obras, cards, avatares e coleções PFPs (como Bored Ape Yacht Club).

  • Ingressos e eventos: NFTs como passaportes digitais para experiências exclusivas.

  • Identidades digitais e diplomas: tokens intransferíveis (soulbound NFTs) que provam conquistas e credenciais.

pragma solidity ^0.8.0;
import “@openzeppelin/contracts/token/ERC721/ERC721.sol”;
contract MeuNFT is ERC721 {
    uint256 public nextId = 1;
    constructor() ERC721(”MeuNFT”, “MNFT”) {}
    function mintNFT(address to) public {
        _mint(to, nextId);
        nextId++;
    }
}

Cada NFT é único por design — e o padrão ERC-721 garante que qualquer carteira, marketplace ou dApp reconheça e negocie esses ativos com segurança e interoperabilidade.

O ERC-1155 foi criado para resolver uma limitação prática dos padrões anteriores: a necessidade de implantar um contrato diferente para cada tipo de token. Ele introduz uma arquitetura multiclasse, que permite criar e gerenciar vários tokens — fungíveis, não fungíveis ou uma mistura dos dois — dentro do mesmo contrato inteligente.

Em outras palavras, um único contrato ERC-1155 pode conter:

  • Moedas ou pontos de jogo (fungíveis);

  • Itens únicos como espadas lendárias ou skins raras (não fungíveis);

  • E até coleções inteiras, agrupadas logicamente em IDs diferentes.

Nos padrões anteriores o ERC-20 exige um contrato por token fungível e o ERC-721 exige um contrato (ou estrutura pesada) para cada coleção NFT. O ERC-1155 simplifica isso — economiza código, tempo e gas — porque todas as operações ocorrem dentro de um mesmo contrato, apenas mudando o ID do token.

pragma solidity ^0.8.0;
import “@openzeppelin/contracts/token/ERC1155/ERC1155.sol”;
contract MeuJogoToken is ERC1155 {
    uint256 public constant OURO = 1;
    uint256 public constant ESPADA = 2;
    constructor() ERC1155(”https://meujogo.com/metadata/{id}.json”) {
        _mint(msg.sender, OURO, 1000, “”); // Token fungível (ouro)
        _mint(msg.sender, ESPADA, 1, “”);  // Token único (espada)
    }
}

Jogos como Enjin e Gods Unchained usam ERC-1155 para representar moedas e itens únicos no mesmo contrato.

Os ERCs são como regras de comunicação entre contratos inteligentes.
Graças a eles:

  • As carteiras sabem exibir e transferir tokens automaticamente.

  • As exchanges conseguem listar novos tokens sem alterações no código.

  • Os dApps podem interagir com qualquer token compatível.

Sem esses padrões, o ecossistema Ethereum seria fragmentado e incompatível.

O Ethereum continua evoluindo — e novos padrões estão surgindo:

  • ERC-4626: define tokens de Vaults DeFi (como depósitos de rendimento).

  • ERC-6551: permite que NFTs tenham sua própria conta Ethereum — podendo guardar outros ativos e interagir com dApps.

Esses avanços mostram o poder da padronização: interoperabilidade, segurança e inovação contínua dos smart contracts.

Os padrões ERC-20, ERC-721 e ERC-1155 são a espinha dorsal do ecossistema Ethereum. Compreender como eles funcionam é o primeiro passo para construir, auditar ou utilizar dApps, NFTs e protocolos DeFi com confiança e domínio técnico.

Read the original on ethbeaga.substack.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.