CommunityRédaction et éditiongithub.com

mohit-1710/token2022-integration-guard

Acceptez n'importe quel mint Token-2022 dans votre programme Solana sans être vidé. Un garde-fou Anchor testé qui refuse les mints hostiles on-chain, plus un scanner. Anchor 1.0 + LiteSVM. Conçu pour le Solana AI Kit.

Qu'est-ce que token2022-integration-guard ?

Cette compétence répond au problème critique de sécurité des intégrations Token-2022 sur Solana : comment consommer en toute sécurité un mint que vous ne contrôlez pas. Les mints Token-2022 peuvent embarquer des extensions modifiant le comportement des transferts (frais, hooks, délégués permanents, gel, etc.), ce qui expose les programmes intégrateurs (AMM, coffres, lending, staking) à des attaques comme le vol de parts, la réentrance ou la confiscation de fonds. L'outil fournit un scanner CLI (`t22-scan`) qui identifie toutes les extensions d'un mint et évalue leur risque selon le profil d'intégration (coffre, AMM, prêt). Il inclut également un programme Anchor 1.0 de démonstration (un coffre) qui implémente un allowlist d'extensions on-chain, une comptabilité des frais de transfert par delta, et une protection contre la réentrance des transfer hooks. Des tests LiteSVM utilisant le vrai programme `spl_token_2022` prouvent que les garde-fous bloquent les attaques. Cette compétence est conçue pour les développeurs utilisant le Solana AI Kit, Anchor 1.0 et LiteSVM.

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

Installed? Explore more Rédaction et édition skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Guide d'intégration Token-2022

Auteur/inspecteur contre consommateur. Le kit contient du matériel token-2022 et des compétences générales sur les extensions de tokens (solana-token-extensions, token-2022-extensions) destinés à l'auteur du token — choix des extensions, création du mint et un inspecteur en lecture seule. Cette compétence est le côté opposé : comment un programme consomme en toute sécurité un mint tiers qu'il ne contrôle pas. Un mint est une entrée non fiable. Là où ces compétences disent « les intégrateurs doivent utiliser le montant net », cette compétence applique et teste ce principe — un coffre de garde qui démontre le piège de l'insolvabilité des parts et le bloque on-chain. Strictement complémentaire ; installez-les côte à côte.

Quand utiliser cette compétence

Utilisez-la lorsque l'utilisateur est du côté consommateur d'un mint Token-2022 :

  • Ajout du support Token-2022 à un AMM, coffre, marché de prêt, séquestre, staking ou flux de paiement.
  • Décision de lister / mettre en pool / accepter un token spécifique (« ce mint est-il sûr à intégrer ? »).
  • Débogage de calculs de parts/LP/séquestre qui « ne tombent pas juste » (presque toujours un bug de frais de transfert).
  • Revue d'un programme Anchor/natif qui déplace des tokens SPL pour la sécurité Token-2022.
  • Écriture de tests prouvant que votre intégration survit à des mints hostiles.

Si l'utilisateur souhaite créer un token avec des extensions, c'est le côté émetteur — reportez-vous à la compétence Token-2022 principale.

Le modèle de menace en un paragraphe

Un mint Token-2022 peut porter des extensions qui modifient le comportement des transferts. En tant qu'intégrateur, vous devez supposer que l'auteur du mint est hostile. Les plus dangereuses : un frais de transfert réduit le montant crédité par rapport au montant envoyé (casse la mathématique 1:1 des parts) ; un hook de transfert exécute du code contrôlé par l'émetteur à chaque transfert (réentrance, déni de service, injection de comptes) ; un délégué permanent peut déplacer/brûler des tokens depuis votre coffre à tout moment ; état de compte par défaut = gelé rend vos nouveaux comptes token inutilisables ; les transferts confidentiels masquent le solde réel à votre comptabilité ; pausable permet à l'émetteur de geler vos retraits. Refus par défaut.

Procédure opérationnelle

  1. Scannez d'abord. Identifiez chaque extension sur le mint et son impact sur l'intégrateur. → scanning.md (CLI exécutable t22-scan) et extension-risk-matrix.md (signification de chaque extension).
  2. Décidez par profil. AMM, coffre, prêt et séquestre tolèrent différentes extensions. Utilisez les verdicts de la matrice (ALLOW / HANDLE / REJECT).
  3. Durcissez le programme. Appliquez les modèles pour ce que vous choisissez de supporter :
  4. Prouvez-le avec des tests. Écrivez des tests LiteSVM qui chargent le vrai programme Token-2022 et vérifient que vos garde-fous bloquent l'attaque. → testing.md
  5. Citez les sources / approfondissez. → resources.md

Table de routage

L'utilisateur traite…Lisez
« Ce mint est-il sûr à intégrer ? » / scanner un tokenscanning.md, extension-risk-matrix.md
Montants de parts/LP/séquestre erronés, « les frais mangent mes dépôts »transfer-fee-accounting.md
Hooks de transfert, réentrance, ExtraAccountMetaList, CPI sur transferttransfer-hook-reentrancy.md
Délégué permanent, autorité de gel, gel par défaut, clawbackpermanent-delegate-and-freeze.md
« Comment rejeter les mints dangereux dans mon programme ? »extension-allowlist-pattern.md
Écrire/exécuter des tests pour les cas limites Token-2022testing.md
Quelles extensions existent et leur niveau de risqueextension-risk-matrix.md
Sources, audits, politiques DEX, lectures complémentairesresources.md

Ce qui est fourni dans cette compétence

ArtéfactCheminDescription
Scanner CLItools/t22-scan/t22-scan <mint> --profile=vault → verdict de risque par extension + code de sortie pour CI. Vérifié sur des mints mainnet réels.
Programme de gardeexamples/guard/Un véritable coffre Anchor 1.0 : liste blanche d'extensions on-chain + dépôt sécurisé avec mesure de delta des frais + retrait protégé contre la réentrance.
Tests d'attaqueexamples/guard/tests/Tests LiteSVM chargeant le vrai programme spl_token_2022, prouvant le piège et que le garde-fou le bloque.

Commandes et agent

DéclencheurAction
/scan-mintScanne une adresse de mint et rapporte le risque d'intégration pour un profil choisi.
/audit-t22-integrationAudite le source d'un programme pour les bugs d'intégration Token-2022.
Agent : token2022-integration-auditorCrée un réviseur ciblé qui scanne les mints configurés et cherche dans le programme transfer vs transfer_checked, les mathématiques qui font confiance au montant, et les vérifications d'extension manquantes.

Règles non négociables (appliquées à chaque intégration)

  • Refus par défaut. Rejetez toute extension que vous ne gérez pas explicitement. TLV inconnu = rejet.
  • Ne faites jamais confiance à l'argument amount pour créditer une valeur. Mesurez le delta reçu (reload() + différence de solde) ou lisez la configuration des frais ; créditez le montant reçu.
  • Utilisez toujours transfer_checked (mint + décimales), jamais l'ancien transfer.
  • Épinglez le programme de tokens. Définissez token::token_program / associated_token::token_program pour qu'un attaquant ne puisse pas mélanger un compte Token classique dans un CPI Token-2022.
  • Re-validez à l'utilisation, pas seulement au listing — le programme de hook de transfert et les frais d'un mint peuvent changer.
  • Prouvez-le. Fournissez un test LiteSVM qui échoue sans votre garde-fou et passe avec.

Skills associés