27 KiB
27 KiB
Roadmap KSP
Le roadmap décrit les objectifs à atteindre et les grandes étapes prévues. Une série X.Y.x regroupe une famille fonctionnelle ; chaque release concrète reste une unité de développement/session distincte.
Légende
[ ]— prévu / non commencé ;[/]— en cours ;[X]— réalisé et validé ;[C]— annulé ;[R]— reporté.
Discipline de livraison
- Une prerelease vise environ 15 à 20 minutes de travail effectif.
- Une release concrète doit être dimensionnée pour pouvoir être ouverte et clôturée dans une seule session de chat.
- Cette règle fixe une durée maximale par release, pas une obligation de changer de session après chaque release : si une release est clôturée plus vite que prévu, la même session peut ouvrir puis clôturer la release suivante si son propre sizing reste positif et si toutes les frontières version/delta/validation sont conservées.
- Si
pre.001révèle qu'une release est trop grosse, elle est scindée avant implémentation fonctionnelle lourde. - À partir des couches Program/Decode, KSP progresse verticalement groupe par groupe plutôt que par grandes vagues horizontales de decoders/materializers/executors séparés.
0.0.x — Fondation
0.0.1— Initialiser le dépôt.0.0.2— Installer le squelette minimal et les règles initiales.0.0.3— Définir domaines, composants, dépendances, contrats, workers/jobs/scénarios/apps et plan global.- Sélectionner
0.1.1comme première release fonctionnelle et produire son prompt quasi-final. - Clôturer la fondation avec documentation, validations et prompt final ; release stable
0.0.3validée.
0.1.x — Fondations N1
0.1.1—ksp-core-lib: Error/Result, Program IDs fondamentaux et primitives N1.0.1.2—ksp-logging-lib: façade KSP de tracing.0.1.3—ksp-config-lib: documents, profils, environnement, persistence et adapters.0.1.4—ksp-app-config-desk: première application Tauri de référence.
0.2.x — Accès Solana, Wallet et contrats d'extension initiaux
Cadrage
0.2.0— Audit bot3, ordre fonctionnel de0.2.x, architecture durable, discipline de sizing et pipeline RAW/CORE/DECODE/SPECIALIZED stabilisés.0.2.1— HTTP foundation stable : matrice 52+14, runtime/routing/résilience/exécution HTTP, 4 canaris typés,std.transport, adapter Config -> Transport, canaries de clôture, smoke Devnet opt-in et documentation durable validés ; les 48 wrappers typés restants sont reportés à0.2.2–0.2.4.
Releases fonctionnelles décidées/pressenties
0.2.1— HTTP transport foundation réduite par le gatepre.001: crate/settings/JSON-RPC/registry 52 current + 14 deprecated historiques, pool/rôles/limites/retry, Config adapter, documentation et 4 méthodes typées canari (getBalance,getGenesisHash,getHealth,getVersion) publiés stables.0.2.2— HTTP Accounts + Tokens + Cluster : 22 wrappers typés (5 Accounts + 5 Tokens + 12 Cluster), canaries de complétude 52+14, smoke Devnet Transport pur et smoke historique Config -> Transport validés, documentation durable et prompt0.2.3publiés stables.0.2.3— HTTP Transactions stable : 11/11 wrappers typés publiés, classification8 Read / 2 WriteSubmission / 1 Simulation, no-resend ambigu prouvé pour les write submissions,KSP-TRANSPORT-007réaudité conforme sur les 37 wrappers HTTP courants, graphes Cargo et deux smokes Devnet validés ;0.2.4reprend les 15 Blocks/Economics restants.0.2.4— HTTP Blocks + Economics stable : 15/15 wrappersV0_2_4publiés, surface typed complète à 52/52 méthodes courantes, 14/14 historiques conservées, réaudit SIMD/inventaire final etKSP-TRANSPORT-007global validés ; deux smokes Devnet passés avant publication.0.2.5— Wallet foundation stable :.kspwalletV1, VIEW/OWNER indépendants, Argon2id/XChaCha20-Poly1305, autorité Ed25519 OWNER, persistence no-clobber, signature, administration/rotations/révocation VIEW forte, import/export Solana CLI JSON + Base58, canaris adversariaux, interop externe et documentation durable publiés. La clôturepre.010-fix.001–fix.003ajouteed25519-dalek 3.0.0direct, normalise le Rust workspace et installe l’audit structurel Python complémentaire à rustfmt/Clippy.Pubkeyreste viaksp-core-lib, la keypair reste encapsulée dans Wallet et Config/Transport/ExecutionPolicy/Store/Tauri restent hors Wallet.0.2.6—ksp-app-wallet-desk+.kspwalletV2 stables : composition Config/Wallet/HTTP/Logging, lifecycle VIEW/OWNER, balance, administration/import/export, wire binaire V2, APIs multi-version, migration V1 -> V2 explicite et runtime Tauri packagé user-writable validés ; bundles Linux.deb/.rpm/.AppImageproduits avant publication. Plan clôturé :docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md.0.2.7— WebSocket Solana standard stable : 9 familles subscribe/unsubscribe typées (18/18 opérations), sessions physiques multiples explicites, subscriptions logiques typées, lifecycle/reconnect/resubscribe/backpressure/shutdown bornés, Config V2, non-régression HTTP 52+14, compliance finale, smoke WebSocket Devnet et audit de dépendances validés ; publicationrel.001et prompt0.2.8prêts.0.2.8— Helius LaserStream WebSocket stable : façade provider dédiée sur l’actor WebSocket partagé, sept familles standard réutilisées (account/logs/program/root/signature/slot/slotsUpdates) +transactionSubscribe/transactionUnsubscribe,block/voteabsents, heartbeat Ping 60 s Helius-only, Config V2/secrets redacted, lifecycle adversarial, compliance HTTP 52+14 / Standard WS 18/18 et graphes Cargo finaux validés ; prompt0.2.9prêt.0.2.9— Yellowstone gRPC standard/provider-neutral stable : moteur Tonic/Protobuf KSP partagé, sept unary standard retenues,Subscribebidi et neuf variantes d’update, lifecycle/backpressure/reconnect/replay bornés sans promesse lossless, Config Transport V3 backward V1/V2 avec provider/protocol séparés, profils PublicNode Mainnet/Testnet authentifiés parx-token, smoke liveSubscribe -> Slot2/2 PASS et graphes Cargo finaux inspectés ;SubscribeDeshredreste hors scope.0.2.10— OrbitFlare Yellowstone gRPC stable : profil Config V3 Devnet, License Key injectée comme metadata secrètex-token, smoke liveSubscribe -> Slot + Pingvalidé deux fois, sans modification du moteur N1/N2 ni heartbeat provider.0.2.11— Off-chain price transport stable :ksp-offchain-transport-libexpose SOL/USD via huit adapters RESTreqwestsans SDK provider, décimal exact, sémantiques/provenance explicites, registry/availability/rate limits et refresh single/many/all génériques ; Configstd.offchain_transportconstruit le service sans dépendance inverse, DexScreener reste lié à une paire explicite sans discovery, aucun consensus/fallback automatique n’est introduit, et le smoke live keyless final passe 7/7 après correction CoinMarketCap V2.0.2.12— SOL Prices Desk + projection prix Wallet stables : HID provider-neutral avec refresh row/selected/all et batch1..=64, observations/timestamps exacts sans polling/consensus, puis refresh balance Wallet enrichi d’une moyenne SOL/USD consumer-owned et d’un équivalent USD exact best-effort ; smoke live de composition, workspace complet et bundles Tauri Linux validés.0.2.13— Interface / wire foundation stable :ksp-interface-libexposePubkey,ProgramAccountMetaetProgramInstructionpassifs, admission bornée à 255 account metas / 10 240 bytes, erreurs etDebugsans payload hostile, façade crate-root et consumer externe canaris ; graphe strictInterface -> Core, sans serde/codec générique,solana-instruction, réseau ni logging runtime.0.2.14— Program API foundation stable :ksp-program-apiexpose une surface instruction-only ouverte avecProgramInstructionRecognition,ProgramInstructionDecodeOutcome<Decoded>etProgramInstructionDecoder; implémentation externe avec Program Pubkey opaque validée, 10 exports crate-root / 3 modules de production verrouillés, graphe strict Core + Interface, sans registry/runtime/serde/codec/Store/Materializer/Execution. Le prompt0.3.1prépare Store RAW-only.
TODO/IDEAS — providers Yellowstone non planifiés
- TODO — Helius LaserStream gRPC : réauditer lorsque l'accès live gRPC est raisonnablement disponible ; conserver N1/N2 Yellowstone inchangés, vérifier auth/endpoints/Subscribe/Ping/replay/from_slot/erreurs provider et traiter les preprocessed transactions comme extension Helius séparée.
- TODO — eRPC : réauditer accès, auth/IP policy, capabilities et produits complémentaires avant toute décision d’implémentation.
- TODO — Triton : réauditer la frontière Yellowstone upstream / extensions Triton, notamment Deshred et futures extensions.
- TODO — Alchemy : réauditer auth, replay, limites et capabilities Yellowstone avant toute intégration.
- TODO — QuickNode : réauditer auth, compression,
from_slot, filtres et limites de plan. - TODO — Chainstack : réauditer networks, auth, add-on et capabilities Yellowstone.
- IDEAS — Tatum, Shyft, Solinfra, NodeFlare et autres providers : conserver comme candidats exploratoires sans numéro de release ni engagement d’implémentation.
Règles Transport pour toute la série
- Couvrir toutes les méthodes/opérations documentées pour la surface normative ciblée par chaque release.
- Conserver les méthodes deprecated/obsolete encore fonctionnelles et émettre un
warnKSP lors de leur utilisation. - Implémenter les méthodes unstable/experimental ciblées et émettre un
warnKSP lors de leur utilisation. - Centraliser la metadata de statut des méthodes plutôt que disperser des warnings ad hoc.
- Garder
ksp-onchain-transport-libindépendant deksp-config-lib, du Store et des modèles Program/métier.
Architecture de données — progression canonique
La progression durable cible est :
RAW -> STRUCTURAL -> DECODED -> DOMAIN
- RAW et STRUCTURAL ne nécessitent aucun décodage Program.
- La progression n'est pas une chaîne obligatoire pour chaque famille : une donnée event-only peut s'arrêter en N1, et un état de compte pourra aller directement vers un futur decoder si aucune décomposition STRUCTURAL utile n'existe.
- À la fin des couches horizontales RAW/STRUCTURAL réellement persistées, ajouter les jobs/workers/apps nécessaires avant d'ouvrir la couche suivante.
- À partir de DECODED, avancer verticalement groupe par groupe ; DOMAIN désigne les projections métier et la matérialisation est le processus qui les produit.
0.3.x — RAW / acquisition persistée
0.3.1—ksp-store-apistable : modèles N1 RAW backend-agnosticRawTransactionetRawAccountStateavec observations, provenance, payload/hash/timestamps bornés, 10 capabilities object-safe, queries cursorisées sans plafond métier arbitraire, outcomes idempotence/conflit et lifecycle logique rétention/tombstone/force-rehydrate ; aucun backend physique, Config, runtime Store, notification dédiée ni surface STRUCTURAL/DECODED/DOMAIN.0.3.2—ksp-store-lib+ksp-store-postgres-libstables comme fondation runtime/backend PostgreSQL : featurepostgrespar défaut,Storelié à un uniqueRawNetworkId, Configstd.storeavec targets/basesdevnet/mainnet/testnet, pool Deadpool borné,tokio-postgres, TLS RustlsDisabled/VerifyFull, moteur de migrations privéV000+ SHA-256/advisory lock, health/readiness portable et close borné. Gate complet + PostgreSQL réel major 17 verts ; aucune table/capabilityRawTransaction/RawAccountStatemétier n'est encore ajoutée.0.3.3— Vertical slice PostgreSQLRawTransactioncomplète surksp-store-lib+ksp-store-postgres-lib: six capabilities transaction/observation/rétention, V001 physique liée à un réseau, acquisition canonical+observation atomique, idempotence/conflit, get/list keyset cursorisé, archive/purge/tombstone/ForceRehydrate, hardening des erreurs et du schéma, concurrence et rollback validés sur PostgreSQL 17.0.3.4— Vertical slice PostgreSQLRawAccountStatecomplète surksp-store-lib+ksp-store-postgres-lib: quatre capabilities account ajoutées aux six transaction pour une conformance RAW 10/10, V002 additive de 32 ressources au-dessus de V000/V001 immuables, state+observation atomiques, idempotence/conflit exacts, metadata Yellowstone observation-only, get/list keyset(slot,pubkey,state_hash)avec cursor KSPA anti-replay, hardening cross-family et live validé sur PostgreSQL 17 sans rétention destructive account.0.3.5—ksp-interface-libétendu avec deux familles passives réellement partagées :SlotLifecycleEvent(Processed,FirstShredReceived,Completed,CreatedBank,Dead,OptimisticallyConfirmed,Rooted) etTransactionExecutionEvent(slot + TransactionSignature[64] + Succeeded/Failed). Interface reste Core-only, provider-neutral, sans serde/codec/runtime/event bus et sans duplication deRawTransaction/RawAccountState; les DTOs riches restent Transport-owned et les candidats non convergents restent différés.0.3.6—ksp-job-api+ksp-job-backfill-libstables pour la première verticale historiqueRawTransaction: lifecycle/cancellation/latest-value runtime-neutral, scopesLatest/Before/After/signatures explicites, découverte/hydratation Transport observée, RAW v1 canonique, persistance Store atomique/idempotente, concurrence bornée, frontier contiguë, checkpoint/reprise caller-owned, snapshots sûrs et hardening externe sans dépendance backend/provider directe.0.3.7—ksp-app-backfill-desklivrée comme Desk Tauri KSP spécialisée : composition Config Mainnet/Devnet/Testnet, quatre scopes HTTP, validation/start single-run, monitoring latest-valueksp-backfill-status, Cancel ciblé/idempotent, Resume in-session par checkpoint Rust-only réémis pour un nouveau JobId, autocomplete libre depuisksp-core-lib, hardening IPC/dependency boundaries et build Linux.deb/.rpm/.AppImage. Aucun SQL/backend/provider physique ni checkpoint durable n’est exposé.0.3.8—ksp-app-store-deskV1 RAW livrée sur le gabarit KSP courant comme application Tauri read-only backend-neutral. La Desk compose Config + Logging +ksp-store-lib, expose health/runtime sûrs, DataTablesserverSidepourRawTransaction,RawAccountStateet leurs observations, détails bornés, provenance sûre et états de rétention/tombstone, sans SQL/backend physique/Transport dans l'application. La nouvelle inspection random-accessoffset + limit + counts exactsreste distincte de la pagination machine cursor/keyset conservée pour workers/backfills/replays. Le gate final et les builds Linux.deb/.rpmsont verts.0.3.9— Introduireksp-worker-apicomme API générique et volontairement courte de lifecycle/health/progression/snapshot pour services continus, distincte deksp-job-apiet sans dépendance Solana/Transport/Store/Tauri. Une fois l'API Worker fonctionnellement fermée, terminer la release par un audit fonctionnel exhaustif des sources/méthodes d'acquisitionRawTransaction: HTTP, WS standard, extensions provider, Yellowstone gRPC, blocks/slots, discovery + hydration, replay/gap-repair et combinaisons multi-provider. Cet audit prépare0.3.10sans ajouter d'endpoint ni de Config provider dans0.3.9.0.3.10— Introduireksp-worker-raw-transaction-ingest-libmulti-source dès V1. Le worker compose les stratégies retenues par l'audit0.3.9comme sources alternatives, complémentaires, redondantes ou spécialisées live/catch-up/gap-repair, converge versRawTransaction + RawTransactionObservation, persiste parksp-store-libet utiliseksp-worker-apipour supervision/cancellation. Cette release porte aussi, et seulement si l'audit les justifie, les adaptations nécessaires deksp-onchain-transport-lib/ksp-config-lib: futures sources Helius HTTP/WS Mainnet/Devnet avec réutilisation deKSP_SECRET_HELIUS_API_KEY, capabilities/tier réaudités au moment du travail, la canonicalisation logiquemainnetétant déjà matérialisée en0.3.9-pre.006-fix.003,0.3.10ne doit ajouter qu'un éventuel alias de frontière si une source externe l'exige réellement. Aucun decode Program ni dépendance backend/provider directe dans le worker.0.3.11— Introduireksp-app-raw-transaction-ingest-desk, Desk Tauri KSP spécialisée qui choisit et supervise une ou plusieurs sources/méthodes réellement admises par0.3.10: lifecycle, health, rates, backpressure, reconnect/recovery, gap state et compteurs sûrs. La Desk ne réimplémente ni discovery, hydration, déduplication, reprise ni persistence ; l'inspection détaillée des RAW persistés reste la responsabilité deksp-app-store-desk.0.3.12— Étendreksp-job-backfill-libetksp-app-backfill-deskau backfill multi-source/multi-stratégie à partir de la même matrice d'acquisition auditée en0.3.9. Conserver la stratégie actuellegetSignaturesForAddress + getTransactioncomme première voie HTTP valide, puis ajouter seulement les voies historiques/catch-up/gap-repair réellement pertinentes et sûres (par exemple block/slot, replay provider lorsqu'il existe), sans supposer qu'une source live WS constitue un historique universel.
TODO/IDEAS — applications spécialisées et control plane
- TODO — faire évoluer
ksp-app-store-deskavec chaque nouvelle couche réellement persistée : RAW d'abord, puis STRUCTURAL, DECODED, journal de processing/materialization et projections DOMAIN selon les contrats effectivement disponibles. Les vues avancées restent backend-agnostiques et passent uniquement parksp-store-lib. - TODO — différer une future
ksp-app-control-deskjusqu'à ce que KSP dispose au minimum d'un niveau N3/D3 de processing/materialization exploitable et de plusieurs decoders réels. Cette application sera une surface end-user simplifiée : démarrer/arrêter les flux autorisés, lancer une recherche courante, voir l'état global et les erreurs importantes. Elle ne recopiera pas le diagnostic détaillé, les réglages avancés, les tables complètes ni toutes les fonctions desksp-app-*-deskspécialisées, qui resteront les outils d'administration, développement et investigation approfondie.
TODO/IDEAS — taxonomie N1, processing et rétention
- TODO — maintenir la matrice d’admission HTTP/WS/gRPC/provider lors de toute nouvelle famille N1 : plusieurs sources ne convergent vers un même struct que si elles satisfont la même sémantique sans perte.
- TODO
0.3.9— produire après fermeture deksp-worker-apiune matrice RAW Transaction unique et réutilisable par0.3.10puis0.3.12, couvrant discovery, hydration/direct payload, filtres, ordering/duplicates, reconnect/replay, gap repair, backpressure, commitment, provenance, quotas, gaps Transport/Config et applicability continuous-ingest/catch-up/backfill. - TODO Helius futur — ne pas ajouter d'URL/endpoints Helius en
0.3.8ni pendant la construction générique de Worker API. L'audit0.3.9réévalue les capabilities/tier courants ;0.3.10peut ensuite ajouter les profils HTTP/WS réellement nécessaires en réutilisant exclusivementKSP_SECRET_HELIUS_API_KEYvia Config. - TODO réseau — audit fermé en
0.3.9:mainnetest l'identité logique canonique KSP ;mainnet-betareste un alias legacy/externe.pre.006-fix.003normalise Config/Store/Transport/tests pendant N1 RAW sans migration des données expérimentales, qui peuvent être droppées/recréées. RawAccountState+ observation — contrat commun stabilisé en0.3.1avec bytes complets + slot, provenance séparée et enrichissements source-specific optionnels ; la persistence PostgreSQL physique est complétée en0.3.4avec les quatre capabilities account et la conformance RAW 10/10.- TODO — statut/commitment transactionnel restant :
0.3.5couvre uniquement le fait passif d’exécutionslot + signature + outcome; réauditer séparémentsignatureSubscribeetgetSignatureStatuseslorsqu’un consumer de commitment/snapshot réel apparaît, sans fusionner snapshot, transition et execution update dans un modèle Option-soup. - IDEA — logs realtime enrichis :
logsSubscribealimente déjà la projection minimaleTransactionExecutionEvent, mais un éventuelTransactionLogEventportant les lignes de log reste différé dansdocs/IDEAS.mdjusqu’à démonstration d’un consumer et de bornes explicites.logMessagesreste dansRawTransactionjusqu’à STRUCTURAL ; le wake-up post-commit reste distinct et Store API-owned conformément àKSP-NOTIFY-*. - slot/root/slotsUpdates —
0.3.5stabiliseSlotLifecycleEventpour l’intersection réellement partagée, sans persistence Store par défaut et sans promettre l’ordre/complétude du flux. - TODO — vote realtime : reste hors Interface tant qu’aucun consumer transversal et aucune sémantique provider-neutral suffisamment précise ne justifient un contrat partagé.
- IDEA —
RawBlock: ne rouvrir que si une information block-level non reconstructible devient nécessaire ;getBlockdoit d’abord être traité comme source deRawTransaction, pas comme invitation à recopier le ledger en blocs. - REJET ACTUEL — Yellowstone
Entry: trop bas niveau et aucune destination replay/decomposition/event métier justifiant un modèle KSP n’est identifiée. - TODO — processing ledger : reprendre l’idée kbot2/kbot3
stage + processor identity/version + input identity/hash + terminal status, sans faire d’unprocessed: boolla preuve durable unique ; prévoir force replay/version upgrades lorsque les processors seront ouverts. - lifecycle RAW logique —
RawRetentionState, tombstone minimal, normal-skip et force-rehydrate sont stabilisés en0.3.1pourRawTransaction. - rétention physique
RawTransactionPostgreSQL —0.3.3matérialiseFull -> Archived -> Purged, tombstone et ForceRehydrate atomiques ;Compactedreste explicitement unsupported tant qu’aucune représentation compactée réelle n’existe. - TODO — policy de rétention/compaction : définir les critères d’éligibilité fondés sur les preuves de processing et la maintenance worker/job ; Store applique une transition demandée mais ne décide pas seul qu’un RAW peut être archivé/purgé, et la compaction physique ne sera ajoutée qu’avec un besoin réel.
- frontière
ksp-interface-lib/ksp-store-api— ownership documenté et canaris de non-duplication stabilisés en0.3.1; les events passifs non persistés restent Interface, les modèles persistants/replayables restent Store API. - IDEA — réauditer la structure de processing/decode/materialization historique kbot2/kbot3 lors de l’ouverture de N2/N3 ; conserver l’isolation instruction/CPI et les statuts terminal/versionnés, sans reprendre automatiquement le schéma SQL historique.
Série STRUCTURAL suivante
- Définir la persistence STRUCTURAL canonique Solana générique pour les familles réellement décomposables.
- Implémenter en priorité
RawTransaction -> STRUCTURALsans decoder Program : transaction/message, comptes/références, instructions top-level, CPI/inner instructions, logs/meta/balances/return data et relations structurelles. - Vérifier avant extension si d'autres familles N1 possèdent une vraie décomposition STRUCTURAL utile ; ne pas créer de niveau vide par convention.
- Ajouter replay/backfill RAW -> STRUCTURAL avec processing versionné.
- Ajouter le worker/service STRUCTURAL utile sans le coupler à un worker RAW concret.
- Faire évoluer
ksp-app-store-deskavec des vues/requêtes STRUCTURAL lorsque cette couche est réellement persistée ; ne pas créer une seconde application de browsing des mêmes données.
Séries DECODED/DOMAIN/EXECUTION — progression verticale
Priorité 1 — Solana Core Programs
- Wire/decoding des programmes Core nécessaires transversalement.
- Matérialisation et projections utiles.
- Préparation d'exécution, policy et scénarios Devnet pour les opérations retenues.
Priorité 2 — SPL token/trading
- SPL Token.
- Associated Token Account.
- Token-2022 et extensions pertinentes.
- Pour chaque famille : decode -> materialize -> domain projection -> prepare -> policy -> execute -> scenarios.
Priorité 3 — Metadata token
- Metaplex Token Metadata.
- Token-2022 Metadata.
- [R] Solana Program Metadata (SPM) — redéveloppement plus tard avec le décodage généraliste.
Priorité 4 — Anchor
- Introduire les contrats et mécanismes Anchor nécessaires aux protocoles trading suivants.
Priorité 5 — DEX à fort intérêt
- Meteora, y compris vaults/fees/positions/états auxiliaires nécessaires à son groupe.
- Raydium, y compris programmes satellites nécessaires.
- Pump, y compris fee program et composants launch/bonding/pool nécessaires.
- Orca, y compris programmes satellites nécessaires.
- Chaque groupe est terminé verticalement avant de devenir secondaire au profit du suivant.
Market Desk V1
- Après les premiers groupes Meteora/Raydium/Pump/Orca, introduire une petite
ksp-app-market-deskspécialisée. - Visualiser tokens, pools/markets, liquidité, swaps/trades, prix, volumes, OHLC/candles et activité live/récente lorsque disponible.
- Lire les projections DOMAIN KSP ; ne pas reconstruire la logique protocolaire dans l'UI.
Routing
- Jupiter.
- OKX et autres routeurs selon besoin réel.
- Enrichir Market Desk avec routes, legs, DEX impliqués, fees/slippage et comparaison quote/execution lorsque disponible.
Trading-adjacent puis décodage généraliste
- Ajouter ensuite les programmes indépendants utiles au trading : oracles, locks/vesting indépendants, lifecycle token, risk/signaux, etc.
- Ne jamais y repousser un satellite appartenant à un groupe DEX déjà ciblé.
- Étendre enfin le décodage au reste de Solana selon valeur fonctionnelle.
Trading Intelligence et produits ultérieurs
- Statistiques/features/datasets historiques.
- Signaux, risque, anomalies et patterns.
- Replay analytique/backtests.
- XGBoost puis autres modèles lorsque les données et contrats sont stables.
- Construire ensuite les produits de trading opérationnel au-dessus de ces couches.
- Faire évoluer Market Desk vers davantage d'analyse sans la confondre avec l'application globale ou l'orchestrateur.
- Étudier plus tard les autres applications Wallet : mobile, extensions navigateur et web.