Token-2022 (Token Extensions) é o programa de token Solana que mantém o modelo familiar de mint, conta e transferência do SPL Token clássico, ao mesmo tempo que permite extensões opcionais para anexar campos e regras adicionais na inicialização.
Não é uma nova cadeia e não é um upgrade silencioso do programa clássico. É um ID de programa diferente com um layout base compatível, contas maiores quando as extensões estão habilitadas e compatibilidade de cliente e local que varia por extensão.
Esta página é o guarda-chuva para token-2022-extensions: como o Token-2022 se relaciona com o Token clássico, como funciona o modelo de extensão, o que as principais extensões significam para produtos e código, e como a migração realmente acontece.
Token-2022 (TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb) é um programa de token superset: mesmos conceitos base de mint e conta de token do SPL Token clássico (TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA), mais uma região de extensão type-length-value (TLV) para taxas, hooks, metadados, regras de soulbound, exibição de rendimento e valores confidenciais.
Insight: Escolher Token-2022 é uma decisão de produto e integração, não apenas um flag de CLI. Um ID de programa incorreto na derivação ATA, contas de hook ausentes, taxas retidas ignoradas ou a suposição de saldos clássicos em mints confidenciais ou que pagam juros quebra carteiras, DEXs e cofres.
Conceitos Chave:SPL Token clássico, ID de programa Token-2022, extensão de mint, extensão de conta, layout TLV, metadata / metadata pointer, transfer hook, permanent delegate, non-transferable, interest-bearing, default account state, confidential transfer, token_interface, migração (novo mint).
Quando Usar: Você precisa de políticas ou dados no mint que o Token clássico não pode expressar, ou sua stack padroniza em Token-2022 para novos mints com uma matriz de suporte verificada.
Limitações/Trade-offs: Nem toda carteira, roteador ou indexador suporta todas as extensões. Extensões na inicialização são frequentemente compromissos de produto permanentes. Caminhos confidenciais e com muitos hooks aumentam o custo de CU, a complexidade do cliente e o custo de conformidade.
Tópicos Relacionados: Noções básicas do Token-2022, taxas de transferência e hooks, metadados, permanent delegate e non-transferable, interest-bearing e default account state, transferências confidenciais e migração do SPL Token.
SPL Token clássico é o programa de longa data que a maioria das carteiras e DEXs assume por padrão. Seus layouts de mint e conta de token são fixos: suprimento, decimais, autoridades, saldos, delegados, estado congelado. Políticas além disso residem em programas separados (marketplaces, PDAs de metadados Metaplex, wrappers de transferência personalizados).
Token-2022 mantém esse layout base na frente da conta e anexa dados de extensão. Sem extensões, um mint Token-2022 se comporta de forma muito semelhante a um mint clássico para mint, burn e transferência, mas:
Mints e ATAs são de propriedade do programa Token-2022, não do Token clássico.
Endereços ATA dependem do ID do programa de token passado na derivação.
Clientes devem codificar instruções contra Token-2022 (ou interfaces com conhecimento duplo), não assumir Tokenkeg....
Não há caminho de upgrade compartilhado que transforme um mint clássico existente em Token-2022. Mesma marca, novo programa significa novo mint, novas ATAs e uma migração operacional de detentores e liquidez.
Extensões são módulos opcionais inicializados quando o mint e/ou a conta de token é criada (ou, para algumas extensões de conta, quando a conta é configurada). Elas residem em uma região TLV após os campos SPL base.
Regras práticas:
Escolha no nascimento. Muitas extensões de mint não podem ser removidas posteriormente. Habilitar taxa de transferência, non-transferable ou permanent delegate é um compromisso de produto permanente para aquele mint.
Escopo de mint versus conta. Configuração de taxa, ID do programa do hook, metadata pointer, permanent delegate e autoridade de taxa de juros ficam no mint. Taxas retidas, saldos confidenciais e alguns flags ficam nas contas de token.
Aluguel e tamanho escalam. Mais dados de extensão significam contas maiores e mínimos isentos de aluguel mais altos.
Clientes devem ter conhecimento de extensão. Prefira jsonParsed onde suportado, codecs oficiais do Token-2022 ou DAS para leituras; ainda assim, ramifique com base no ID do programa para escritas.
Família
Intenção
Problema típico se ignorado
Taxa de transferência
Reter bps (e máximo) em transferências
Valores de UX incorretos; taxas nunca coletadas
Hook de transferência
CPI de programa customizado na transferência
Contas extras ausentes; transações falhas
Metadados / ponteiro
Nome, símbolo, URI no ou ao lado do mint
Branding em branco em carteiras não compatíveis
Delegado permanente
Autoridade fixa pode sempre mover tokens
Poder de apreensão não divulgado
Não transferível
Bloquear transferências comuns (soulbound)
Vendas falhas; listagem em DEX impossível
Pagador de juros
Exibição de crescimento de saldo baseado em taxa
UI de saldo desatualizada
Estado padrão da conta
Novas contas começam congeladas ou inicializadas
Congelamento surpresa até descongelamento
Transferência confidencial
Valores ocultos ZK
amount público incorreto; carteiras não suportadas
Metadados de token embutem nome, símbolo e URI nos dados de extensão do mint, para que fungíveis simples não precisem de um PDA de Metadados de Token Metaplex para branding básico. Ponteiro de metadados armazena uma chave pública que aponta para uma conta de metadados externa quando você deseja que os metadados fiquem fora do próprio mint.
O URI geralmente referencia JSON off-chain (imagem, descrição); prefira armazenamento imutável a hosts HTTP mutáveis. Explorers e DAS indexam cada vez mais metadados do Token-2022, mas algumas carteiras ainda esperam Metaplex para ativos semelhantes a NFTs. Metadados no mint não criam um NFT por si só.
Um mint com hook de transferência armazena um ID de programa customizado. Em cada transferência (e movimento relacionado), Token-2022 invoca esse programa para que a política seja executada atomicamente com o movimento do token: listas de permissão, ledgers de royalties, verificações de conformidade, contabilidade.
O programa hook deve implementar a interface que o Token-2022 espera e permanecer mínimo (CU é compartilhado com a transferência). Clientes devem resolver e passar contas extras que o hook exige; contas ausentes é a falha de integração mais comum. Prefira a extensão embutida de taxa de transferência quando a única necessidade é receita em basis points.
Delegado permanente embuti uma chave pública no mint que pode transferir tokens sem a aprovação usual de delegate por conta do detentor. É um controle forte do emissor para caminhos de recuperação e uma divulgação séria de confiança para os usuários.
Não transferível marca o mint para que transferências padrão falhem. Tokens são efetivamente soulbound após a emissão (credenciais, distintivos, acesso não negociável). Mint e burn ainda podem ser aplicados sob autoridades que você configura. Mercados secundários e pools AMM são superfícies de produto inadequadas.
Frequentemente combinado com estado padrão da conta congelado para que novas contas não possam mover fundos até que uma autoridade de congelamento descongele após KYC ou fluxo de reivindicação.
Pagador de juros armazena uma taxa (e autoridade de taxa) no mint. O Token-2022 aplica essa taxa ao converter unidades brutas em um valor de UI, de modo que o saldo exibido cresça ao longo do tempo, enquanto o amount armazenado e o suprimento do mint permanecem exatamente onde estavam. Nada é mintado; esta é uma convenção de exibição para matemática de produto estilo poupança, não rendimento real. UIs devem atualizar com leituras cientes de extensão.
Estado padrão da conta define se novas contas de token começam inicializadas ou congeladas. Congelado por padrão é um padrão de conformidade e airdrop: a criação é bem-sucedida, as transferências esperam o descongelamento.
Transferências confidenciais usam provas de conhecimento zero para que os valores possam repousar e se mover em forma criptografada, enquanto o programa ainda impõe a conservação de valor. O campo público clássico amountnão é o quadro econômico completo uma vez que o valor é depositado em estado confidencial. A geração de prova é do lado do cliente e o suporte de carteira ou RPC é mais restrito do que transferências simples.
Migrar do SPL Token clássico significa: projetar o mint Token-2022 e o conjunto de extensões; confirmar o suporte de carteira, DEX, custódia e indexador; tirar um snapshot dos detentores (e posições de LP); criar o novo mint e fazer airdrop ou reivindicar em ATAs Token-2022; executar ambos os mints em paralelo; depois desativar os depósitos legados.
Não há instrução on-chain de "atualizar este mint" entre programas. Programas que aceitam mints arbitrários de usuários devem usar token_interface (Anchor) ou caminhos duplos equivalentes para que o clássico e o Token-2022 possam coexistir durante a transição.
De ponta a ponta, um ativo Token-2022 toca três camadas:
Inicialização do Mint (ID do programa Token-2022 + TLV de extensão) | v Contas de Token / ATAs (mesmo ID de programa na derivação) | v Instruções (transferência, mint, congelamento, coleta, CPI de hook, provas confidenciais) | v Clientes, carteiras, roteadores, cofres (ramificação por proprietário + extensões)
O ID do programa é a primeira ramificação. Antes de construir PDAs de ATA ou instruções de transferência, leia o owner da conta do mint. Se for Token-2022, todo construtor, alvo de CPI e pacote subsequentes devem corresponder.
A derivação de ATA inclui o programa de token. Com um novo mint Token-2022, você sempre obtém novas ATAs. Passar o tokenProgram errado resulta em um endereço incorreto e bugs silenciosos de conta vazia.
As interações de extensão se compõem. Taxa de transferência mais hook significa que a matemática da taxa e as contas do hook se aplicam. Non-transferable mais permanent delegate bloqueia a transferência do usuário enquanto o delegate ainda pode mover valor. Estado padrão congelado mais autoridade de descongelamento cria contas que não podem transferir até serem descongeladas. Depósito/saque público mais confidencial requer estado de UI em várias etapas (público, pendente, confidencial).
Programas duplos de mint Anchor. Prefira InterfaceAccount + TokenInterface em vez de restrições clássicas apenas Token quando cofres listam mints externos ou escolhidos pelo usuário. Nunca misture as duas árvores de módulos em uma struct de conta: anchor_spl::token::{Mint, TokenAccount} são apenas para Token clássico e sua verificação de proprietário rejeita contas Token-2022. Em Rust nativo, o mesmo se aplica aos construtores de instrução - spl_token::instruction::* começa com check_program_account e retorna IncorrectProgramId para o ID Token-2022, então Token-2022 precisa de spl_token_2022::instruction::*. Não há um caminho de "apenas passe a outra conta de programa".
CLI e stack. Com Solana CLI 3.0.10, aponte spl-token para Token-2022 via --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb. O trabalho local em validadores Agave 4.1.1, Surfpool ou LiteSVM ainda requer a ordem correta de inicialização do programa e extensão. @solana/kit 7.0.0 fornece RPC tipado e codecs; detecte o proprietário via getAccountInfo, depois codifique com helpers cientes de Token-2022.
Use o SPL Token clássico por padrão quando precisar de compatibilidade máxima com locais e nenhuma extensão for necessária. Escolha Token-2022 quando uma extensão for um requisito de produto rígido e você tiver verificado o suporte. Lançar Token-2022 apenas porque é mais novo é como lançamentos que prendem liquidez.
Para cada extensão habilitada, verifique as carteiras de destino (exibição, envio, criação de ATA, valores líquidos de taxa), rotas de DEX ou roteador e contas extras de hook, suporte de depósito de custódia, semântica de saldo do indexador ou DAS, e seus próprios caminhos de programa (token_interface, coleta de taxas, metadados de hook). Teste com pequenas quantias em devnet e mainnet antes de grandes liquidez.
Taxas de transferência precisam de caminhos de coleta ou "crank" para que os tokens retidos cheguem ao tesouro. Hooks precisam de resolvedores de contas extras versionados em todos os caminhos do cliente. O sistema de juros requer política de atualização da UI. O sistema confidencial precisa de arquitetura de custódia de chaves e geração de prova (worker, servidor ou carteira especializada).
O Greenfield é um mint e uma árvore de ATA. A migração envolve registro de mint duplo, pools duplos, análises duplas e um plano de comunicação. Orce engenharia para execução dupla; geralmente dura mais que o dia do airdrop.
"Token-2022 substitui o Token clássico para todos os mints." O Token clássico continua amplamente suportado. Token-2022 é opt-in por mint através de um programa diferente.
"Posso atualizar meu mint clássico in-place." Você não pode. Novo mint, novas ATAs, migração de detentores e liquidez.
"Sem extensões, o ID do programa não importa." Ele sempre importa para propriedade, derivação de ATA e codificação de instrução.
"A extensão de metadados é Metaplex." Metas de branding relacionadas, modelos de conta diferentes.
"Hooks de transferência são políticas gratuitas." Eles custam CU, contas extras e suporte completo do cliente; taxas simples devem usar a extensão de taxa.
"O delegado permanente é apenas outro administrador opcional." Ele pode mover tokens do detentor sob regras de extensão; trate-o com alta confiança.
"Tokens não transferíveis ainda podem ser listados em uma DEX." Transferências comuns falham; pools são inadequados.
"O valor público é sempre a riqueza total em mints confidenciais." Saldos confidenciais não são totalmente refletidos no valor público após o depósito.
"token_interface é opcional para cofres multi-mint." Restrições apenas clássicas rejeitam depósitos Token-2022.
Um programa de token Solana separado que preserva conceitos clássicos de mint e conta, permitindo extensões TLV opcionais para taxas, hooks, metadados, políticas, exibição de rendimento e valores confidenciais.
Qual é o ID do programa Token-2022?
TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb. O SPL Token clássico continua sendo TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA.
Quando um fungível novo deve usar Token-2022?
Quando você precisa de uma extensão específica que o Token clássico não fornece e você verificou o suporte de carteira, DEX e custódia para esse conjunto; caso contrário, o Token clássico maximiza a compatibilidade.
Posso adicionar extensões após o mint ser criado?
Geralmente, você configura extensões na inicialização do mint e da conta. Planeje o conjunto antes da mainnet; não assuma sinalizadores de recursos posteriores.
Como as ATAs diferem para Token-2022?
A derivação de ATA inclui o ID do programa de token. Sempre passe o ID do programa Token-2022 ao derivar e criar contas para mints Token-2022.
Qual a diferença entre um hook de transferência e uma taxa de transferência?
Uma taxa de transferência retém basis points dentro do Token-2022. Um hook de transferência faz CPI para um programa customizado para política arbitrária e requer contas extras de cada cliente.
Tokens não transferíveis são o mesmo que contas congeladas?
Não. Congelado é um estado de conta que pode ser descongelado. Não transferível é uma regra em nível de mint que bloqueia transferências comuns para os tokens desse mint.
O que o delegado permanente permite?
Uma autoridade fixa no mint pode mover tokens sem o padrão usual de delegate aprovado pelo detentor. Divulgue-o e proteja a chave com multisig ou governança quando usado.
Transferências confidenciais ocultam partes ou apenas valores?
A família de extensão é centrada na privacidade de valor via provas ZK e saldos criptografados; não assuma privacidade total de identidade em um L1 público sem um design mais amplo.
Como suporto Token clássico e Token-2022 em um programa Anchor?
Use os tipos token_interface do anchor-spl (InterfaceAccount, TokenInterface) e ramifique clientes com base no ID do programa proprietário do mint.
Como os detentores migram do Token clássico?
Operacionalmente: snapshot, novo mint Token-2022, airdrop ou reivindicação em novas ATAs, execução dupla, depois desativação. Não há uma única instrução de upgrade.
Para onde devo ir a seguir nesta seção?
Comece com Noções Básicas do Token-2022 para passos concretos de CLI e cliente, depois as páginas de extensão em Relacionados para metadados, políticas, rendimento, transferências confidenciais e migração.