Architecture générale
Tout passe par un serveur Vivra unique. Il lit la chaîne en continu, et n'y écrit que par deux chemins : le Buyback Bot (via le contrat BuybackBurner) et le job de trésorerie (claims de l'escrow Pons). Les agents n'appellent que des services externes, à travers leurs outils.
[Diagram: architecture.png in the repo — Front (dapp, landing, back-office) → Vivra server (analysis, API+WebSocket, orchestrator + 6 agents, Buyback Bot, treasury job, X/Telegram bots, Postgres + queues) → Robinhood Chain (Pons, tokens, BuybackBurner, Fees CTO wallet) and external services (Surplus, X API, Telegram, hosting, Pons CTO).]
La flèche de gauche relie le serveur aux services externes : inférence, posts, groupes, hébergement des sites et dossiers CTO.
Stack recommandée#
| Brique | Choix |
|---|---|
| Serveur | TypeScript sur Node 22 |
| Données | Postgres ; Redis avec BullMQ pour les files de tâches |
| Chaîne | viem ; contrats en Solidity avec Foundry, tests sur un fork du mainnet |
| Agents | client compatible OpenAI (openai npm) branché sur Surplus, runner maison (build pack, T20) |
| Front | Next.js ; connexion par email via un service d'envoi (Resend, Postmark ou équivalent) |
| Hébergement | API et workers sur un hébergeur de conteneurs ; sites des tokens CTO sur Cloudflare Pages ou Vercel |
| RPC | Alchemy, avec un second fournisseur en secours |
Environnements#
| Environnement | Chaîne | Usage |
|---|---|---|
| Test | Robinhood Chain testnet, chain id 46630 | développement, CTO test des contrats |
| Pré-production | fork du mainnet | répétition générale d'un cycle complet |
| Production | Robinhood Chain mainnet, chain id 4663 | lancement |