For the complete documentation index, see llms.txt. This page is also available as Markdown.

Escrever um Smart Contract

Escreva contratos Solidity compatíveis com a Chiliz Chain: versões recomendadas de Solidity e EVM, decimais do token CAP-20, mecânica de gas e diferenças em relação ao Ethereum.

A partir do momento em que você decide criar um dApp na Chiliz Chain, precisa levar em conta as especificidades do nosso blockchain.

Embora a Chiliz Chain seja compatível com EVM, tratá-la exatamente como o Ethereum pode causar problemas de usabilidade, especialmente em relação a decimais de token e à mecânica de gas.

Vamos explorar!

Pré-requisitos

Ambiente

Antes de começar a escrever seu contrato, verifique se seu ambiente está pronto.

Primeiro, você deve ter uma carteira configurada para a Spicy Testnet (para desenvolvimento) ou para a Chiliz Chain Mainnet (para produção).

Conectar à Chiliz Chain

Em seguida, você precisará de $CHZ para pagar as taxas de gas de implantação tanto na Testnet quanto na Mainnet. Enquanto você pode comprar $CHZ da Mainnet em qualquer exchange de criptomoedas, pode usar faucets para tokens de Testnet.

Obter tokens de testnet gratuitos

Em termos de ferramentas, você pode usar Hardhat ou Remix. Veja, por exemplo:

Implantar com Remix

Por fim, os contratos da Chiliz Chain são escritos na linguagem Solidity:

Use as versões recomendadas de Solidity e EVM:

Versões recomendadas de Solidity e EVM para a Chiliz Chain:

  • Versão do compilador Solidity: 0.8.30 (ou inferior)

  • Versão de EVM alvo: prague

Fan Tokens / CAP-20

O aspecto mais específico da Chiliz Chain é o padrão CAP-20, usado para Fan Tokens.

O CAP-20 é tecnicamente equivalente ao padrão ERC-20. Desde a Migração de 2026 para Fan Tokens Decimais, os tokens CAP-20 usam 18 decimais de precisão, assim como os tokens ERC-20 padrão, de modo que saldos, transferências e fornecimento total dos Fan Tokens são denominados na menor unidade do token e suportam quantidades fracionadas.

Os Fan Tokens usavam 0 decimais (apenas unidades inteiras) até a Migração de 2026 para Fan Tokens Decimais, que os atualizou para precisão de 18 decimais. Contratos escritos com base na antiga suposição de unidades inteiras podem precisar de atualização.

Sobre Fan Tokens

Melhores práticas para escrever um smart contract

Use Bibliotecas Testadas (OpenZeppelin)

Não comece criando seu contrato do zero. A prática de segurança mais eficaz é basear seu código em padrões auditados pela comunidade, para reduzir o risco de vulnerabilidades.

Para o desenvolvimento na Chiliz Chain, recomendamos fortemente o uso de Contratos OpenZeppelin. Eles fornecem implementações seguras e verificadas pela comunidade para contratos de tokens.

Ao usar contratos padrão, você garante que seus tokens sejam compatíveis com carteiras conhecidas (como MetaMask) e com o ecossistema Chiliz (Socios.com).

Melhores Práticas Gerais de EVM

Independentemente da rede, estes três padrões são inegociáveis para o desenvolvimento seguro em Solidity.

O Padrão "Verificações-Efeitos-Interações"

Esta é sua principal defesa contra Ataques de Reentrância. Sempre estruture suas funções nesta ordem exata:

  1. Verificações: Valide entradas e condições (ex.: declarações require).

  2. Efeitos: Atualize o estado do contrato (ex.: reduzir saldos).

  3. Interações: Interaja com outros contratos ou envie fundos (ex.: transfer).

Controle de Acesso Robusto

Nunca deixe funções sensíveis desprotegidas. Se uma função cria tokens, altera taxas ou atualiza lógica, ela deve ser restrita.

  • Simples: Use Ownable para contratos com administrador único.

  • Complexo: Use AccessControl para contratos que exigem múltiplos papéis (ex.: MINTER_ROLE, ADMIN_ROLE).

Validação de Entrada

Assuma que todas as entradas são maliciosas. Use declarações require() no início de suas funções para validar parâmetros.

Por exemplo:

  • Verifique endereços zero (address(0)).

  • Verifique quantidades zero ao transferir.

  • Verifique se os comprimentos dos arrays coincidem ao passar múltiplos arrays.

  • etc.

Detalhes de Implementação Específicos da Chiliz

Embora a Chiliz Chain seja compatível com EVM, certas "regras locais" se aplicam, especialmente em relação a decimais de token.

Conformidade com CAP-20 (Fan Tokens)

Se você está escrevendo um contrato que interage com Fan Tokens (ex.: um Pool de Staking para $PSG ou $BAR), leve em conta os decimais deles em vez de assumir um valor fixo.

Desde a Migração de 2026 para Fan Tokens Decimais, os Fan Tokens usam 18 decimais, portanto 1 Token = 10^18 units, o mesmo que a maioria dos tokens ERC-20. Contratos de Fan Token mais antigos usavam 0 decimais (1 Token = 1 unit), e alguns ainda podem ser encontrados on-chain.

  • Não fixe os decimais de um token no código. Leia token.decimals() dinamicamente para que seu contrato funcione tanto com tokens que usam 18 decimais quanto com a configuração legada de 0 decimais.

  • Escale as quantidades usando o valor retornado por decimals() em vez de assumir 1e18.

Otimização de Gas na Chiliz

As transações na Chiliz Chain são significativamente mais baratas que no Ethereum, mas código não otimizado ainda pode causar congestionamento ou falhas em transações durante eventos de alto tráfego (ex.: durante uma partida ao vivo).

Três formas de economizar gas:

  • Use Erros Personalizados: Em vez de mensagens longas em require, use definições de error para economizar gas.

  • Ordene suas variáveis de estado para caberem em slots de 32 bytes. Coloque uint128, address e bool próximos uns dos outros onde possível.

  • Prefira external para funções que nunca são chamadas internamente pelo próprio contrato.

Atualizado

Isto foi útil?