CommunityEscrita e Ediçãogithub.com

mohit-1710/token2022-integration-guard

Aceite qualquer mint Token-2022 no seu programa Solana sem ser drenado. Um guardião Anchor testado que recusa mints hostis on-chain, além de um scanner. Anchor 1.0 + LiteSVM. Construído para o Solana AI Kit.

O que é token2022-integration-guard?

Este skill é essencial para desenvolvedores que integram tokens Token-2022 em programas Solana (AMMs, vaults, empréstimos, staking, pagamentos) do lado do **consumidor** — ou seja, quando o mint é uma entrada não confiável. Diferente de skills focados na criação de tokens, este skill fornece um guardião Anchor testado, um scanner CLI e testes LiteSVM que protegem contra extensões perigosas, como taxas de transferência, hooks de transferência, delegate permanente, estado padrão congelado, transferências confidenciais e pausabilidade. O cerne do skill é o padrão *default-deny*: rejeitar qualquer extensão não explicitamente tratada e nunca confiar no argumento `amount` para creditar valor, medindo sempre o delta recebido. Além disso, inclui comandos para escanear mints (`/scan-mint`), auditar integrações (`/audit-t22-integration`) e um agente especializado que analisa código fonte em busca de bugs de integração. O skill é complementar aos skills de criação de tokens, sendo voltado exclusivamente para a segurança de programas que consomem tokens de terceiros. Suporta Anchor 1.0 e LiteSVM para testes.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add mohit-1710/token2022-integration-guard

Installed? Explore more Escrita e Edição skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Guardião de Integração Token-2022

Autor/inspetor vs consumidor. O material token-2022 do kit e os skills de extensões de tokens (solana-token-extensions, token-2022-extensions) são para o autor do token — escolhendo extensões, criando o mint e um inspetor somente leitura. Este skill é o lado oposto: como um programa consome com segurança um mint de terceiros que não controla. Um mint é entrada não confiável. Onde aqueles skills dizem "integradores devem usar o valor líquido", este skill aplica e testa — um vault guardião que prova a vulnerabilidade de insolvência de cotas e a bloqueia on-chain. Estritamente complementar; instale junto com eles.

Quando usar este skill

Use-o quando o usuário estiver do lado consumidor de um mint Token-2022:

  • Adicionar suporte a Token-2022 a um AMM, vault, mercado de empréstimos, escrow, staking ou fluxo de pagamentos.
  • Decidir se deve listar / colocar em pool / aceitar um token específico ("este mint é seguro para integrar?").
  • Depurar matemática de cotas/LP/escrow que "não fecha" (quase sempre um bug de taxa de transferência).
  • Revisar um programa Anchor/nativo que movimenta tokens SPL quanto à segurança com Token-2022.
  • Escrever testes que provam que sua integração sobrevive a mints hostis.

Se o usuário quiser criar um token com extensões, esse é o lado do emissor — encaminhe para o skill core token-2022.

O modelo de ameaça em um parágrafo

Um mint Token-2022 pode carregar extensões que alteram o comportamento de transferência. Como integrador, você deve assumir que o autor do mint é adversário. As perigosas: uma taxa de transferência faz com que o valor creditado seja menor que o valor enviado (quebra matemática 1:1 de cotas); um hook de transferência executa código controlado pelo emissor em cada transferência (reentrância, DoS, injeção de conta); um delegado permanente pode mover/queimar tokens do seu vault a qualquer momento; estado de conta padrão = congelado torna suas contas de token recém-criadas inutilizáveis; transferências confidenciais ocultam o saldo real da sua contabilidade; pausável permite que o emissor congele seus saques. Negação por padrão.

Procedimento operacional

  1. Escaneie primeiro. Identifique cada extensão no mint e seu impacto como integrador. → scanning.md (CLI executável t22-scan) e extension-risk-matrix.md (o que cada extensão significa).
  2. Decida por perfil. AMM, vault, empréstimo e escrow toleram extensões diferentes. Use os veredictos da matriz (PERMITIR / TRATAR / REJEITAR).
  3. Fortaleça o programa. Aplique os padrões para o que você escolher suportar:
  4. Prove com testes. Escreva testes LiteSVM que carregam o programa Token-2022 real e afirmam que seus guardiões bloqueiam o ataque. → testing.md
  5. Cite fontes / aprofunde-se. → resources.md

Tabela de roteamento

O usuário está lidando com…Leia
"Este mint é seguro para integrar?" / escanear um tokenscanning.md, extension-risk-matrix.md
Quantidades de cotas/LP/escrow erradas, "taxa comendo meus depósitos"transfer-fee-accounting.md
Hooks de transferência, reentrância, ExtraAccountMetaList, CPI na transferênciatransfer-hook-reentrancy.md
Delegado permanente, autoridade de congelamento, congelamento padrão, clawbackpermanent-delegate-and-freeze.md
"Como rejeitar mints perigosos no meu programa?"extension-allowlist-pattern.md
Escrevendo/executando testes para casos extremos de Token-2022testing.md
Quais extensões existem e quão arriscadas sãoextension-risk-matrix.md
Fontes, auditorias, políticas de DEX, leitura adicionalresources.md

O que vem neste skill

ArtefatoCaminhoO que é
CLI Scannertools/t22-scan/t22-scan <mint> --profile=vault → veredicto de risco por extensão + código de saída para CI. Verificado contra mints reais na mainnet.
Programa Guardiãoexamples/guard/Um vault real Anchor 1.0: lista de permissões de extensão on-chain + depósito seguro com medição delta + saque ciente de reentrância.
Testes de ataqueexamples/guard/tests/Testes LiteSVM carregando o programa real spl_token_2022, provando a vulnerabilidade e que o guardião a bloqueia.

Comandos e agente

GatilhoO que faz
/scan-mintEscaneia um endereço de mint e relata o risco de integração para um perfil escolhido.
/audit-t22-integrationAudita o código fonte de um programa quanto a bugs de integração Token-2022.
Agente: token2022-integration-auditorCria um revisor focado que escaneia mints configurados e examina o programa em busca de transfer vs transfer_checked, matemática que confia no valor e verificações de extensão ausentes.

Regras inegociáveis (aplicar em toda integração)

  • Negação por padrão. Rejeite qualquer extensão que você não trate explicitamente. TLV desconhecido = rejeitar.
  • Nunca confie no argumento amount para creditar valor. Meça o delta recebido (reload() + diferença de saldo) ou leia a configuração de taxa; credite o valor recebido.
  • Sempre transfer_checked (mint + decimais), nunca o transfer obsoleto.
  • Fix o programa de token. Defina token::token_program / associated_token::token_program para que um atacante não possa misturar uma conta de token clássico em uma CPI Token-2022.
  • Revalide no uso, não apenas na listagem — o programa de hook de transferência e as taxas de um mint podem mudar.
  • Prove. Envie um teste LiteSVM que falhe sem seu guardião e passe com ele.

Habilidades Relacionadas