Mint Accounts e Controle de Fornecimento
A USDC possui $28 bilhões em fornecimento circulante. A Circle controla a mint authority. Uma organização decide quantos tokens USDC existem. A mint account torna isso explícito.
Todo token na Solana possui uma mint account que define as regras do token: fornecimento total, decimals, quem pode criar mais tokens, quem pode congelar accounts. Essas informações não estão escondidas no código do contrato — estão armazenadas em uma account pública que qualquer um pode inspecionar.
Mint accounts definem quem controla o fornecimento, quais permissões existem e como os tokens impõem escassez.
A Estrutura da Mint Account
Veja o que uma mint account contém:
pub struct Mint {
pub mint_authority: COption<Pubkey>,
pub supply: u64,
pub decimals: u8,
pub is_initialized: bool,
pub freeze_authority: COption<Pubkey>,
}mint_authority - Quem pode criar novos tokens:
Definido como um endereço: Essa account pode fazer mint de tokens, aumentando o fornecimento
Definido como
None: Ninguém pode fazer mint. O fornecimento é permanentemente fixoPode ser alterado uma vez, depois revogado
supply - Total de tokens em existência:
Aumenta quando tokens são mintados
Diminui quando tokens são queimados
Armazenado como unidades base brutas (sem considerar decimals)
decimals - Quantas casas decimais:
0decimals = indivisível (1 token = 1 unidade base)6decimals = divisível até milionésimos (1 token = 1.000.000 unidades base)9decimals = precisão como SOL (1 token = 1.000.000.000 unidades base)
freeze_authority - Quem pode congelar token accounts:
Definido como um endereço: Essa account pode impedir transferências de token accounts específicas
Definido como
None: Sem capacidade de congelamentoIndependente da mint authority
is_initialized - Se a mint account foi configurada:
Impede o uso de dados de account não inicializada
Definido como true quando a mint account é criada
Mint Authority e Controle de Fornecimento
A mint authority determina quem controla o fornecimento do token. Este único campo define se um token tem escassez fixa ou inflação ilimitada.
Tokens de fornecimento fixo:
mint_authority: NoneNinguém pode criar mais tokens. O fornecimento é limitado permanentemente. Exemplos:
NFTs (fornecimento de 1, sem mint authority)
Moedas meme de fornecimento fixo (fornecimento total mintado no lançamento, authority revogada)
Tokens com limite (fornecimento máximo mintado, depois authority renunciada)
Uma vez que a mint authority é definida como None, é irrevogável. Você não pode restaurar a capacidade de minting. O fornecimento máximo do token é o que existe naquele momento.
Tokens de fornecimento ilimitado:
mint_authority: Some(authority_pubkey)Um endereço pode fazer mint de novos tokens quando quiser. Exemplos:
USDC (a Circle faz mint quando usuários depositam USD)
Stablecoins (emissores fazem mint contra colateral)
Tokens de governança com emissões contínuas
O endereço da authority pode ser uma carteira (controle centralizado), um endereço derivado de programa (controle programático) ou uma multisig (controle distribuído).
Minting controlado por governança:
Muitos protocolos definem a mint authority para um programa de governança. Detentores de tokens votam sobre o minting de novo fornecimento. O programa de governança possui a mint authority e executa operações de mint aprovadas.
Isso cria escassez programática: o fornecimento pode aumentar, mas apenas através de processos de governança definidos.
Freeze Authority
A freeze authority é um controle independente sobre o congelamento de token accounts. Uma account com freeze authority pode impedir que token accounts específicas transfiram tokens.
Por que a freeze authority existe:
Conformidade regulatória para stablecoins reguladas. A freeze authority da USDC permite que a Circle congele accounts vinculadas a atividades ilegais ou ordens judiciais. Sua token account de USDC pode ser congelada sem seu consentimento.
Prevenção de fraudes em plataformas centralizadas. Exchanges podem congelar token accounts se detectarem atividade suspeita.
Como o congelamento funciona:
A freeze authority chama a instrução FreezeAccount em token accounts específicas. Accounts congeladas não podem:
Transferir tokens para fora
Queimar tokens
Fechar a account
Elas ainda podem:
Receber tokens
Existir como accounts válidas
O descongelamento (thaw) reverte o congelamento. Apenas a freeze authority pode descongelar accounts congeladas.
Tokens sem freeze authority:
freeze_authority: NoneNinguém pode congelar nenhuma token account. Transferências são sempre possíveis (assumindo saldo suficiente). Exemplos:
Tokens descentralizados onde congelamento contradiz a missão
Tokens de fornecimento fixo onde o controle é totalmente renunciado
Tokens comunitários que valorizam resistência à censura
Assim como a mint authority, revogar a freeze authority é permanente. Uma vez definida como None, o congelamento torna-se impossível para sempre.
Decimals e Precisão
Os decimals definem como os tokens se dividem em unidades menores.
0 decimals - Tokens indivisíveis:
decimals: 0Você pode possuir 1 token ou 5 tokens, mas não 0,5 tokens. Usado para:
NFTs (você possui 1, não 0,3 de um NFT)
Ingressos (1 ingresso, não um ingresso parcial)
Ações de voto (votos inteiros)
6 decimals - Padrão de stablecoins:
decimals: 6USDC e USDT usam 6 decimals, correspondendo a centavos de USD com precisão extra:
1 USDC = 1.000.000 unidades base
0,01 USDC (1 centavo) = 10.000 unidades base
$0,000001 USDC = 1 unidade base
9 decimals - Precisão de SOL:
decimals: 9SOL usa 9 decimals. 1 SOL = 1.000.000.000 lamports. Muitos tokens na Solana copiam essa precisão para consistência.
Por que isso importa:
Os decimals são definidos na criação da mint e nunca mudam. Escolha com cuidado:
Poucos decimals = precisão insuficiente para pequenas quantidades
Muitos decimals = números desnecessariamente grandes em unidades base
Programas trabalham com unidades base internamente, convertendo para representação decimal apenas para exibição. 1 USDC na sua carteira é armazenado como 1.000.000 unidades base. Transferências especificam unidades base. O campo decimal informa a carteiras e exploradores como exibir o número.
Exemplos Reais
USDC (EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v):
mint_authority: Some(endereço de authority da Circle)
supply: 28.000.000.000.000.000 (28 bilhões com 6 decimals)
decimals: 6
freeze_authority: Some(endereço de freeze authority da Circle)A Circle pode fazer mint de novo USDC quando usuários depositam USD. A Circle pode congelar accounts para conformidade. O fornecimento flutua com base em depósitos/saques.
BONK (DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263):
mint_authority: None
supply: 93.000.000.000.000.000.000 (93 trilhões com 5 decimals)
decimals: 5
freeze_authority: NoneFornecimento fixo. Ninguém pode fazer mint de mais BONK. Ninguém pode congelar accounts. Descentralização total do controle de fornecimento.
Mint de NFT típica:
mint_authority: None
supply: 1
decimals: 0
freeze_authority: NoneUm token indivisível. Sem capacidade de minting. Sem freeze authority. Escassez pura e liberdade de transferência.
Visualizando Dados da Mint Account
Toda mint account é pública. Qualquer um pode inspecionar a configuração de qualquer token.
No Solana Explorer:
Navegue até o endereço da mint (ex.: mint da USDC). Na aba "Token", veja:
Fornecimento atual
Decimals
Mint authority (ou "disabled" se None)
Freeze authority (ou "disabled" se None)
No Solscan:
Pesquise o endereço da mint. "Token Info" mostra todos os campos da mint account com formatação legível.
Programaticamente:
Consulte os dados da mint account usando a RPC da Solana:
const mint = await getMint(connection, mintAddress);
console.log("Supply:", mint.supply.toString());
console.log("Decimals:", mint.decimals);
console.log("Mint Authority:", mint.mintAuthority);
console.log("Freeze Authority:", mint.freezeAuthority);Essa transparência é arquitetural. Tokens da Ethereum escondem authority no código do contrato. Tokens da Solana declaram authority em campos públicos da account. Sem necessidade de ler código — basta inspecionar a account.
Criando e Gerenciando Mint Accounts
Criar uma mint account requer:
Alocar espaço para a mint account (82 bytes)
Transferir SOL rent-exempt para a account (atualmente ~0,00144 SOL)
Atribuir ownership ao programa SPL Token
Inicializar a mint com decimals e authorities
Após a criação, a mint authority pode:
Fazer mint de novos tokens para qualquer token account
Transferir a mint authority para outro endereço
Revogar a mint authority (definir como None)
Após a criação, a freeze authority pode:
Congelar token accounts específicas
Descongelar accounts congeladas
Transferir a freeze authority para outro endereço
Revogar a freeze authority (definir como None)
O fornecimento aumenta através de minting e diminui através de burning. A mint account rastreia automaticamente o fornecimento total. Programas consultando o fornecimento da mint veem totais em tempo real.
Implicações de Segurança
Mint authority é confiança. Manter um token com mint authority significa confiar que essa authority não inflacionará o fornecimento de forma imprevisível.
Riscos de mint authority centralizada:
A authority pode fazer mint de tokens ilimitados, diluindo os detentores
Uma única chave privada controla o fornecimento (roubo ou perda)
Sem transparência nas decisões de minting
Soluções descentralizadas:
Definir mint authority como None (fornecimento fixo)
Usar programa de governança como mint authority (controle pelos detentores de tokens)
Usar multisig como mint authority (controle distribuído)
Publicar cronograma de minting e aplicar programaticamente
Freeze authority é poder. Tokens com freeze authority podem impedir você de transferir. Sua carteira contém tokens que você não pode mover.
Quando a freeze authority é razoável:
Stablecoins reguladas (requisitos de conformidade legal)
Plataformas centralizadas (prevenção de fraudes)
Tokens experimentais (controles de emergência)
Quando evitar:
Protocolos descentralizados (resistência à censura importa)
Tokens reserva de valor (liberdade de transferência é essencial)
Tokens comunitários (nenhuma authority única deve ter controle)
Sempre verifique mint e freeze authority antes de manter valor significativo. Um token com controle centralizado pode ser bom para negociação, mas arriscado para armazenamento a longo prazo.
Mint accounts revelam estruturas de poder. Quem controla o fornecimento? Quem pode congelar accounts? A mint account responde a essas perguntas explicitamente.
Próximo: entendendo token accounts e como os saldos são rastreados por proprietário.