Que fait solana-arb-executor ?
Met en place le chemin chaud d'exécution Rust pour l'arbitrage Solana : stream -> détection -> simulation -> bundle -> envoi, encadré par une barrière de risque (plafonds, coupe-circuit, kill-switch) et une barrière de confirmation. Il s'agit de la couche on-chain que les travaux antérieurs ne faisaient qu'analyser : agiprolabs/claude-trading-skills est en Python pour l'analyse (signaux, backtests, pas d'exécution), et les compétences TypeScript d'arbitrage abandonnent le chemin sensible à la latence. C'est le véritable espace blanc – la partie qui doit être rapide, correcte et sûre.
Économie honnête (élément porteur) : l'arbitrage spatial DEX sur Solana est dominé par l'infrastructure et fortement contesté ; les écarts de prix bruts vont aux acteurs ayant une meilleure position réseau qu'une seule machine. L'avantage durable d'un opérateur individuel n'est pas la vitesse brute – c'est le placement correct des transactions (simulation d'abord, bon prix CU, taille du pourboire, discipline de réessai), la discipline de risque (plafonds/coupe-circuit/kill-switch), et les opportunités moins disputées (écarts de taux de financement, écarts de taux entre plateformes, opérations à plus long horizon). Ceci est un squelette + des connaissances, pas un bot hébergé et pas une machine à profit garantie.
PRÉCÉDENCE (à lire avant toute génération de code)
- Lisez
references/safety-rails.mden premier. TOUT chemin d'exécution émis doit lui obéir. - N'émettez jamais de code qui envoie une transaction de transfert de fonds / de signature sans une barrière de confirmation humaine typée explicite ; aucun drapeau ne la désactive. Valeurs par défaut
DRY_RUN=true,REQUIRE_CONFIRM=true. Toujours simuler avant de soumettre. - Utilisez les versions de crate épinglées dans
references/sdk-versions.md(vérifiées 2026-06). Signalezjito-sdk-rustcomme étant un early 0.x. - Déléguez le travail lié aux programmes / Anchor / IDL / signature de transactions à
../solana-dev/viareferences/delegation.md. Ne le dupliquez pas ici. - Plafonds obligatoires (notional max, position max, perte quotidienne max) + coupe-circuit + kill-swift gate chaque ordre avant qu'il ne puisse atteindre la barrière de confirmation.
Guide d'orientation des tâches
Faites correspondre l'intention de l'utilisateur à exactement une feuille.
| L'utilisateur demande... | Ouvrez cette feuille |
|---|---|
| conception du chemin chaud / budget de latence | references/architecture.md |
| flux de comptes/slots / ingestion ShredStream | references/streaming-ingestion.md |
| bundle Jito / pourboire / timing du leader | references/jito-bundles.md |
| envoi de transaction / frais de priorité / simulation / réessais | references/transaction-landing.md |
| détection d'opportunité / spread / seuil | references/opportunity-detection.md |
| risque / coupe-circuit / kill-switch / plafonds | references/risk-and-killswitch.md |
| sécurité / barrière de confirmation | references/safety-rails.md |
| crate / version / installation | references/sdk-versions.md |
| programme / Anchor / signature | references/delegation.md |
Divulgation progressive
- Routeur (ce fichier) : uniquement des pointeurs – aucun contenu volumineux.
- Feuilles (~60-200 lignes chacune) : denses, correctes, minimales. Le code vit dans
skill/templates/. - La logique pure est testable hors ligne :
templates/src/fees.rsettemplates/src/risk.rssont std-only et autonomes – exécutezrustc --edition 2021 --test fees.rs(etrisk.rs) indépendamment. La crate complète (stream.rs,jito.rs,detector.rs,main.rs) se compile aveccargo builden utilisant les crates épinglées. - Délégation :
../solana-dev/pour les programmes / transactions / signatures.
Agents
| Agent | Rôle | Modèle |
|---|---|---|
agents/arb-execution-architect.md | Conçoit le budget de latence, la topologie d'ingestion/envoi et l'enveloppe de risque avant le code | opus |
agents/rust-perf-engineer.md | Relie le stream -> détecteur -> RiskGate -> bundle Jito avec simulation préalable | sonnet |
Commandes
| Commande | Action |
|---|---|
commands/scaffold-executor.md | Émet le squelette de la crate exécutrice (valeurs par défaut DRY_RUN + REQUIRE_CONFIRM) |
commands/wire-yellowstone.md | Génère le module d'ingestion gRPC Yellowstone avec reconnexion/backoff |
commands/add-killswitch.md | Ajoute le RiskGate avec plafonds + coupe-circuit + kill-switch |