Boas Práticas Token-2022
Regras para escolher extensões Token-2022 e enviar clientes compatíveis no Agave 4.1.1.
Como Usar Esta Lista
- Aplique A antes de habilitar qualquer extensão no init do mint
- Revise B antes de enviar integração de carteira ou DEX
- Use C para programas on-chain aceitando tokens arbitrários
A - Seleção de Extensão
- Habilite somente extensões que precisa. Extensões imutáveis são compromissos permanentes de produto.
- Prefira transfer fee em vez de hook para receita bps simples. Hooks adicionam complexidade de resolução de contas no cliente.
- Evite confidential transfers a menos que legal e caminho de carteira confirmados. Suporte do ecossistema é mais estreito.
- Documente soulbound/non-transferable claramente. Usuários não devem esperar liquidez de mercado secundário.
- Planeje migração como novo mint. Sem caminho de upgrade do SPL Token clássico.
B - Integração Cliente
- Detecte ID de programa owner do mint antes de toda instrução. Ramificações
Tokenkeg...vsTokenzQd...em todos os builders. - Passe programa de token na derivação ATA.
findAssociatedTokenPdarequertokenProgramcorreto. - Busque e anexe contas extras de hook. Contas ausentes falham transferências silenciosamente em txs mal construídas.
- Mostre valores líquidos de transfer fee. Exiba bruto, taxa e recebimento do destinatário antes do usuário assinar.
- Teste swaps no DEX alvo com valor pequeno. Suporte Token-2022 do roteador é específico por mint.
- Use DAS para metadata de portfólio. Combine com ID de programa correto em parsers customizados.
C - Programas On-Chain
- Use
token_interfacepara cofres listando tokens externos. ConstraintTokenclássica rejeita depósitos Token-2022. - Valide implicações de extensão no README. ex.: tokens non-transferable quebram mercados de saque.
- Mantenha programas hook mínimos. Lógica pesada em toda transferência estoura limites de CU.
- Automatize cranks de harvest de taxa. Taxas retidas não chegam à tesouraria sem instruções harvest.
- Não assuma campo
amountpara saldos confidenciais. Indexadores precisam parsers conscientes de extensão.
FAQs
Novos fungíveis devem usar Token-2022?
Somente quando uma extensão fornece requisito rígido - senão Token clássico maximiza compatibilidade.
Erro de extensão mais comum?
Habilitar transfer hooks sem suporte SDK para contas extras em todos os caminhos do cliente.
Como testar extensões?
Mint devnet + Surfpool 0.12.0 + testes smoke de carteira/DEX alvo antes da mainnet.
token_interface obrigatório?
Sim para programas DeFi aceitando mints arbitrários escolhidos pelo usuário.
Posso misturar NFTs Metaplex e fungível Token-2022?
Sim - padrões diferentes para tipos de ativo diferentes no mesmo app.
Armadilhas de metadata imutável?
Verifique flags de imutabilidade no init do mint - URI errada permanente sem caminho de upgrade.
Confusão freeze + default frozen?
Default frozen afeta contas novas; freeze authority ainda necessária para thaw.
Orientação para indexador?
Parse extensões TLV ou use DAS; não assuma somente contas de 165 bytes.
Quando migrar do clássico?
Quando benefício da extensão supera fricção de liquidez e carteira do novo mint.
Constante ID de programa?
TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb em todos os clusters.
Relacionados
- Noções Básicas de Token-2022 - visão geral
- Migrando do SPL Token - plano de cutover
- Transfer Hooks - política avançada
Versões da stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 e LiteSVM 0.6.x.