name: solana-agent-ops description: Opérations de production pour les agents autonomes et les bots qui effectuent des transactions sur Solana. Couvre l'atterrissage fiable des transactions (simulation d'abord, dimensionnement du budget de calcul et des frais de priorité, bundles Jito, nonces durables, confirmation/réessai), la gestion et l'approvisionnement automatisé d'une flotte de paires de clés, l'idempotence "exactement une fois", la limitation de débit RPC et le basculement, la planification, la surveillance et les alertes, ainsi que les barrières de sécurité (kill switches, plafonds de dépenses, disjoncteurs). À utiliser lors de la construction, du renforcement ou du débogage de tout ce qui signe et envoie des transactions Solana sans surveillance : bots de trading, d'arbitrage ou de liquidation, teneurs de marché, agents IA exécutant des actions on-chain, tâches cron, gardiens, scripts de distribution ou d'airdrop. user-invocable: true
Compétence Agent Ops Solana
C'est la couche entre "mon bot fonctionne sur mon ordinateur" et "mon bot s'exécute sans surveillance sur le mainnet sans perdre d'argent".
Elle suppose que vous savez déjà construire une transaction. Ce qu'elle couvre, c'est tout ce qui permet à un agent de survivre en production : faire atterrir les transactions de manière fiable, conserver en toute sécurité les clés d'une flotte de signataires, ne jamais dépenser deux fois lors d'une nouvelle tentative, rester sous les limites RPC, s'exécuter selon un planning et s'arrêter avant de causer des dégâts.
Pour la construction de transactions de base, @solana/kit, et les modèles de programmes et de clients, cela étend solana-dev-skill. C'est le module complémentaire opérationnel par-dessus ; cela ne réenseigne pas comment construire des instructions.
Quand utiliser cette compétence
Dirigez-vous ici lorsque l'utilisateur fait l'une des choses suivantes :
- Construire ou exploiter un bot, un gardien ou un agent qui signe et envoie des transactions sans surveillance humaine
- Se demander pourquoi une transaction n'atterrit pas : abandonnée, blocage expiré, ou jamais confirmée
- Gérer de nombreux portefeuilles signataires et s'inquiéter du stockage des clés, du financement ou de la rotation
- S'inquiéter qu'une nouvelle tentative puisse entraîner une double dépense, ou qu'une action puisse s'exécuter deux fois
- Rencontrer des erreurs 429 ou des limites de débit d'un fournisseur RPC
- Mettre un agent sur un cron ou un planificateur et vouloir qu'il échoue en toute sécurité
- Ajouter une surveillance, des alertes, des kill switches ou des plafonds de dépenses à un bot existant
Si la tâche consiste en une construction de transaction ponctuelle (construire une instruction, un CPI, un PDA), cela appartient à solana-dev-skill, pas ici.
Aiguillage des tâches
Lisez uniquement le fichier dont vous avez besoin. Une cible principale par tâche.
| Tâche | Lecture |
|---|---|
| Transaction abandonnée / expirée / n'atterrit pas / lente | transaction-landing.md |
| Dimensionnement des unités de calcul + frais de priorité | transaction-landing.md |
| Bundles Jito / MEV / multi-tx atomique | transaction-landing.md |
| Gestion de N portefeuilles signataires, stockage des clés, recharges de financement | keypair-fleet.md |
| "Cela a-t-il déjà été exécuté ?" / empêcher la double exécution | idempotency.md |
| Erreurs 429, budgets RPC, basculement de point d'accès | rate-limiting.md |
| Exécution sur cron / un cycle par exécution / codes de sortie | scheduling.md |
| Bilans de santé, alertes de solde/échec, tableaux de bord | monitoring.md |
| Kill switches, plafonds de dépenses, disjoncteurs, exécution à blanc | safety.md |
| Documentation officielle, fournisseurs RPC, bibliothèques | resources.md |
Le modèle opérationnel (lisez ceci en premier)
Chaque agent de production doit être construit autour de quatre invariants. Les fichiers de modules sont organisés pour les faire respecter :
- Simulez avant d'envoyer. Une transaction qui échoue à la simulation échouera on-chain, alors découvrez-le gratuitement. (transaction-landing.md)
- Chaque envoi est idempotent. Si le processus plante et redémarre en pleine action, le rejouer ne doit pas produire de double effet. Cela signifie des clés d'idempotence plus des vérifications on-chain ou dans un magasin d'état, pas espérer qu'il n'a pas été exécuté. (idempotency.md)
- L'argent a un plafond par cycle. Plafonds de dépenses, limites de glissement, et un disjoncteur qui se déclenche sur les anomalies, le tout appliqué dans le code plutôt que dans votre tête. (safety.md)
- Un cycle par exécution, sortie propre. Les planificateurs vous réinvoquent, donc un processus qui sort avec un code non nul sur un hoquet RPC transitoire vous alertera à 3h du matin pour rien. (scheduling.md)
Stack par défaut (Juin 2026)
- Client :
@solana/kit(web3.js v2). Les schémas web3.js v1 sont notés là où l'écosystème les utilise encore. - Exécution : Node 22+ / TypeScript 5.5+. Les schémas Rust sont donnés pour les gardiens qui ont besoin d'être rapides.
- RPC : neutre vis-à-vis des fournisseurs. Les spécificités de Helius, Triton et QuickNode sont signalées, jamais imposées.
- Bundles : Jito (
jito-tsou l'API REST block-engine), optionnel, pour l'atomicité et la protection contre le MEV. - Planification : cron simple, minuteurs systemd, GitHub Actions, ou cron serverless, le tout un cycle par exécution.
Voir resources.md pour les liens officiels derrière chacun de ces éléments.
Compétences de kit associées (ne pas dupliquer)
- Construction d'agents comme framework : SendAI
solana-agent-kit. Cette compétence est la couche opérationnelle par dessus. - API des fournisseurs RPC (Helius Sender, l'API des frais de priorité, Laserstream) : la compétence Helius. Celle-ci reste neutre vis-à-vis des fournisseurs et vous indique quelle fonctionnalité du fournisseur résout quel problème opérationnel.
- Garde de clés multisig pour les trésoreries et l'autorité de mise à niveau : la compétence Squads. Cette compétence couvre la gestion opérationnelle d'une flotte de signataires, les clés chaudes qui envoient les transactions de routine, ce qui est un problème différent.