Architecture du protocole
Mis à jour le 5 octobre 2026
L’essentiel en 30 secondes
Les contrats du protocole Kal Mydas sur Base mainnet sont organisés en 7 modules fonctionnels, émission du jeton, prévente, réserves de stratégie, conversion de jetons, frais et redistribution, gouvernance et trésorerie. Un dépôt en USDC achète une part d’un livre tenu par le protocole. Le robot travaille avec la réserve du pool et le dépôt porte sa part des gains et des pertes de cette réserve. Les frais sont prélevés sur les gains réalisés et redistribués selon une grille de 7 lignes inscrite en constantes. Le propriétaire d’un pool peut le mettre en pause d’urgence et régler ses paramètres dans les plafonds du code.
- •Est en service un contrat déployé par Kal Mydas, portant du code et effectivement sollicité par le protocole. Les 6 réserves de stratégie en tête, de la génération V5_2_2, sont 6 déploiements d’un même code. Les contrats remplacés portent toujours leur code et restent lisibles sur la chaîne. Nous les listons sur la page Ressources plutôt que de les effacer.
- •Plusieurs portes d’entrée sont ouvertes, la prévente KalPresaleV4, les marchés KAL/USDC, la courbe d’achat KalBondingCurveV2 et le dépôt dans une réserve de stratégie. La première courbe de liaison, KalBondingCurve, est en pause depuis le 6 juillet 2026. Un seul moteur de redistribution, KalFeeSplitV7, répartit les frais entre 7 destinataires dont la grille est inscrite en constantes.
- •La boucle de gouvernance repose sur le veKAL : verrouiller du KAL crée des veKAL non transférables, qui pèsent dans les votes, reçoivent chaque semaine une part des frais en USDC au titre de l’indemnité de service technique et amplifient les récompenses de minage de liquidité par un facteur de 1 + 1,5 × (veKAL de l’adresse ÷ veKAL total), plafonné à 2,5. Ce facteur porte sur le minage de liquidité seul, il ne s’applique pas à la mise en jeu de KAL.
1.Vue d’ensemble
Le protocole Kal Mydas regroupe un ensemble de contrats Solidity déployés sur Base mainnet. KalPool est le moteur générique des réserves de stratégie : il est instancié une fois par stratégie, pour HORIZON, VALKYRIE, REVOLUTION, TREASURY et ORION sur l’or, GENESIS sur le bitcoin. Les autres contrats sont déployés en une seule instance.
Cette architecture suit 3 principes. Le premier est la modularité : chaque module porte une responsabilité unique et un périmètre défini. Le contrat de prévente ne sait rien des frais de gestion, le contrat de redistribution ne sait rien des stratégies. Cette séparation rend la revue de sécurité possible module par module. Le deuxième est l’immuabilité des paramètres critiques : les pourcentages de redistribution, le plafond du jeton et le calendrier de halving sont inscrits comme constantes dans le code, la gouvernance ne peut pas les modifier. Le troisième est la transparence des flux : tout mouvement d’USDC entrant ou sortant émet un évènement on-chain, lisible par n’importe quel explorateur de blocs.
Le diagramme ci-dessous montre la circulation principale du capital. Les paragraphes qui suivent décrivent chaque module en détail.
Diagramme des flux de capital, du dépôt de l’utilisateur jusqu’à la redistribution des frais
2.Module jeton et émission
KalToken est le jeton ERC-20 du protocole, plafonné à 10 000 000 unités. 3 contrats sont aujourd’hui autorisés à créer du KAL, relevé du 5 octobre 2026. Ce sont LiquidityRewards V8_2 pour les récompenses de liquidité et de mise en jeu, KalPlanDotation pour le plan de dotation des applications et KalBondingCurveV2 pour la courbe d’achat. Chacun a son propre plafond. Ce droit s’accorde ou se retire par une transaction du multisig propriétaire du jeton. L’autorisation de LiquidityRewardsV6_3 a été retirée, celle de VeKAL a été révoquée le 22 juillet 2026, celle de KalPresaleV2 le 19 juillet 2026 et celle de KalBondingCurve lors de sa mise en pause du 6 juillet 2026. La prévente en service, KalPresaleV4, n’est pas autorisée à créer du KAL et ne doit jamais l’être : elle distribue un stock préexistant. Chaque création passe par un contrôle de plafond global, aucune fonction ne peut faire dépasser les 10 000 000 unités.
LiquidityRewards V8_2 est le moteur d’émission progressive en service, à la suite de LiquidityRewardsV6_3 puis V7. Il alimente 2 programmes selon un calendrier de halving inspiré du bitcoin, 25 époques de 730 jours, le plafond de l’époque étant divisé par 2 à chaque transition. Le minage de liquidité est plafonné à 150 000 KAL, répartis aujourd’hui entre le marché KAL/USDC V3 (poids de 90 %) et le marché KAL/USDC V2 (poids de 10 %), poids réglables par le propriétaire du contrat. La mise en jeu de KAL est plafonnée à 1 500 000 KAL avec un débit borné par un taux maximum. Le veKAL ne crée aucun KAL, il ne fait que verrouiller des jetons existants. La page Tokenomics porte la table d’émission complète.
KalPoolRewards verse un bonus de fidélité aux participants de longue durée de chaque réserve. Ce bonus est financé par les 5 % de frais sur les résultats que chaque réserve envoie au contrat. Un contrat assistant, déployé mais dont la mise en service n’est pas confirmée à ce jour, permettrait de replacer ses bonus KAL directement dans une réserve de stratégie en une seule transaction atomique. Tant que sa mise en service n’est pas confirmée, il n’est pas présenté comme une fonction disponible.
3.Module prévente et acquisition
KalPresaleV4 organise la prévente en 10 niveaux à prix croissant. Le contrat ne crée pas de KAL, il distribue un stock dont il a été approvisionné, et il applique un plafond par portefeuille propre à chaque niveau. La prévente est plafonnée à environ 492 798 KAL, valeur arrondie du plafond inscrit dans le contrat. L’enveloppe totale de la prévente est de 500 000 KAL : ce plafond, plus les 7 202 KAL déjà remis par le contrat de prévente précédent, hors service depuis le 19 juillet 2026. Ce plafond est la borne dure : quelle que soit la répartition des ventes entre les dix niveaux, le contrat ne remettra jamais davantage. Les dix niveaux totalisent 482 498 KAL avant bonus, et les bonus des trois premiers niveaux portent ce total à 499 998 KAL, un montant supérieur au plafond. Le plafond prime, et la prévente s’arrête à son atteinte, même si un niveau reste ouvert.
KalBondingCurve était le mécanisme d’amorçage post-prévente, doté d’une enveloppe de 450 000 KAL. Ce contrat est en pause depuis le 6 juillet 2026 et son autorisation de création du KAL a été retirée. Il n’est plus une porte d’entrée. Le KAL s’achète aujourd’hui sur les marchés KAL/USDC V3 et V2. Il s’achète aussi par la courbe d’achat KalBondingCurveV2, ouverte, qui crée du KAL dans la limite d’un plafond par fenêtre de 24 heures.
KalReferral tient le registre du parrainage on-chain : le parrain est enregistré au premier achat et reçoit un retour automatique sur les achats de ses filleuls. Ce contrat est volontairement minimaliste, sans pyramide et sans rétrocession à plusieurs niveaux, il ne conserve qu’une trace publique du parrainage initial.
4.Module des réserves de stratégie
C’est le cœur économique du protocole. Dans la génération en tête, V5_2_2, le contrat KalPool est instancié 6 fois, une instance par stratégie, HORIZON, VALKYRIE, REVOLUTION, TREASURY et ORION sur l’or, GENESIS sur le bitcoin. Chaque instance reçoit ses dépôts en USDC, les conserve et applique sa propre grille de frais, sous les plafonds contractuels inscrits dans le contrat, soit 5 000 points de base pour les frais sur résultats et 500 points de base pour les frais de gestion. Le contrat PoolManager tient le registre des réserves.
Le capital déposé ne sort pas du contrat pour aller sur le marché. Ce qui sert de collatéral aux positions vient d’une poche séparée. Cette poche est le capital propre du protocole, formé par la prévente et par les frais accumulés. Le contrat borne ce qui peut en sortir. À tout instant, l’encours confié à l’opérateur ne peut pas dépasser une fraction de cette poche, fixée par un paramètre du contrat.
Le résultat, lui, est partagé. Quand une position se solde par une perte, le contrat répartit cette perte entre la poche du protocole et les dépôts, chacun au prorata de ce qu’il pèse dans le capital total de la réserve. Un déposant supporte donc une part de chaque perte, alors même qu’il n’a financé aucun collatéral. Cette part n’est pas fixe. Elle bouge à chaque dépôt, à chaque retrait et à chaque apport à la poche du protocole. Un gain se partage selon la même règle. Le protocole met son propre capital au travail à côté de celui des déposants et il en supporte les pertes dans les mêmes proportions.
Chaque report de perte est plafonné par le contrat. Rien ne borne en revanche le cumul de ces pertes dans le temps. Le capital déposé peut donc être entamé. Il peut l’être en totalité.
Le retrait ordinaire se fait sans Pass et sans délai, au prix de part du moment, dans la limite de l’USDC présent dans le pool. Il n’est suspendu que pendant une pause d’urgence décidée par le propriétaire du contrat. Le contrat porte aussi une sortie intégrale de la position et une mise en pause individuelle. L’application ne les propose pas, le retrait ordinaire suffit. La sortie intégrale est elle aussi suspendue pendant une pause d’urgence.
Deux contrats de gestion de trésorerie des réserves, l’un dédié à la surveillance et au rééquilibrage, l’autre à l’allocation d’une fraction de la réserve vers des protocoles externes, sont déployés sur Base mainnet et portent du code, mais leur mise en service n’est pas confirmée à ce jour. Nous ne les présentons donc pas comme actifs. Ils ne toucheraient en aucun cas aux dépôts des utilisateurs sans le contrôle de la gouvernance.
5.Module de conversion de jetons
KalSwapV3 est le marché KAL contre USDC que lisent les pools de stratégie en service. KalSwapV2 est le marché KAL contre USDC précédent, toujours ouvert, à formule de produit constant. Un oracle de prix moyen pondéré dans le temps y limite la manipulation par encadrement de transaction. La première génération, KalSwap V1, est vidée depuis le 5 juin 2026 et ne convertit plus rien. KalSwapETH porte la paire USDC contre WETH. KalRouter assure le routage entre les paires. Les fournisseurs de liquidité reçoivent une part matérialisée par un jeton non transférable. Le minage de liquidité, plafonné à 150 000 KAL sur 25 époques, leur verse des récompenses distribuées par LiquidityRewards V8_2 et amplifiées par le facteur veKAL.
BuybackRecirculator est le moteur de la doctrine Zero Burn. Au lieu de détruire les KAL rachetés avec une part des frais, le contrat les réoriente vers la liquidité détenue par le protocole : ces KAL restent mobilisables pour soutenir la liquidité, abonder les programmes de récompenses ou être redistribués. Aucun KAL n’est détruit par le protocole. Une précision que nous ne taisons pas : le contrat du jeton hérite de la bibliothèque standard ERC20Burnable, si bien que tout détenteur reste libre de détruire ses propres KAL. Aucun chemin du protocole ne le fait.
6.Module frais et redistribution
KalFeeSplitV7 reçoit les flux en USDC des réserves de stratégie et les redistribue selon 2 grilles fixes : 35, 20, 15, 10, 10, 5 et 5 % pour les frais sur les résultats, 50 et 50 % pour les frais de gestion mensuels. Ces grilles sont inscrites comme constantes en points de base dans le code et la gouvernance ne peut pas les modifier : elles ont été fixées au déploiement et le resteront tant que le contrat n’est pas remplacé par un successeur explicite. La somme de la grille est vérifiable on-chain par une fonction de contrôle dédiée.
FeeDistributor verse chaque semaine, aux détenteurs de veKAL, la part de 10 % qui leur revient, au prorata du veKAL en circulation au début de la période. Ce versement est une indemnité de service technique : il rétribue la fourniture d’un service de sécurisation et de gouvernance au protocole. Il est versé en USDC, aucun détenteur n’est jamais tenu d’accepter du KAL à la place.
FeeShareBooster applique un multiplicateur dégressif à cette indemnité pour les premiers verrouilleurs, selon un calendrier inscrit dans les constantes du contrat. FeeShareDashboard donne une lecture agrégée des droits, sans détenir de fonds.
7.Module gouvernance et verrouillage
VeKAL met en œuvre le verrouillage des jetons selon le modèle vote-escrow. Un détenteur peut verrouiller son KAL d’une semaine à 4 ans, et le poids obtenu est proportionnel à la durée restante, avec une décroissance linéaire jusqu’à l’échéance et une résolution hebdomadaire. Le veKAL n’est ni transférable ni échangeable : c’est un titre de présence, pas un actif négociable.
KalGovernance est le contrat de vote. Le seuil de proposition est de 1 % du veKAL total, le quorum de 10 %, la durée de vote de 3 jours. Une décision adoptée n’est exécutable qu’après un délai de 48 heures, et elle expire si elle n’est pas exécutée dans les 7 jours qui suivent. Le pouvoir de vote est lu sur des points de contrôle historiques, ce qui interdit de verrouiller massivement juste avant un vote pour le remporter puis de se retirer. Cette protection a été ajoutée en avril 2026 à la suite d’une revue de sécurité.
KalTimelock porte un délai minimum de 24 heures, un délai maximum de 7 jours et une fenêtre de grâce de 48 heures sur les opérations qui lui sont confiées. Les décisions qui passent par lui portent une fenêtre publique avant exécution. Les pools de stratégie en service n’y sont pas rattachés : leur propriétaire peut les mettre en pause ou changer leurs frais sans délai, dans les plafonds du code.
8.Module trésorerie et résilience
TreasuryRWAV2 est prévu pour une couche d’actifs réels, distincte de l’activité des algorithmes et destinée à décorréler une partie de la trésorerie du protocole. Cette trésorerie est vide aujourd’hui. Ce contrat reçoit 5 % des frais sur les résultats. Il appartient au multisig et dispose d’une fonction d’urgence permettant de tout rapatrier vers le fonds de réserve. Nous ne publions pas de taux attendu sur cette couche.
Cette trésorerie sert à tenir le protocole dans la durée et à financer les applications de l’écosystème Kal Mydas, celles qui existent aujourd’hui comme celles qui viendront. Cela ne change rien à la répartition des frais sur les résultats. Ses 7 lignes sont des constantes du contrat KalFeeSplitV7 et la gouvernance ne peut pas les modifier. La part de cette trésorerie est de 5 %, inscrite en constante dans le contrat. Préciser à quoi sert une part n’ouvre pas la discussion sur son montant.
RainyDayFund est le fonds de réserve d’urgence : une réserve en USDC mobilisable uniquement par vote de gouvernance, dans des cas de crise majeure.
CircuitBreaker est un frein automatique. Il observe la santé agrégée des réserves et réduit le multiplicateur d’émission si elle se dégrade. C’est un mécanisme défensif, qui n’a pas vocation à se déclencher en régime nominal.
KalAccessPassV5_3 est le Pass d’accès en service, un jeton non fongible et non transférable, à l’adresse 0x5CC088577e6ED9CE29C53598AF99eb62E2F4dC41. Les pools de stratégie le lisent par un pont, qui porte aussi les périodes d’entrée libre. Il succède à KalAccessPassV5_2, en service du 7 juin au 19 septembre 2026, lui-même successeur de KalAccessPassV5_1. KalAccessPassRenderer produit l’image du Pass. Le paiement du Pass en KAL ouvre une remise de 30 % et le KAL ainsi versé part vers le BuybackRecirculator, jamais vers une destruction.
9.Inventaire des contrats en service
Le tableau ci-dessous liste les principaux contrats en service sur Base mainnet, relevés sur la chaîne le 5 octobre 2026. Les adresses, le propriétaire de chaque contrat et les générations précédentes figurent sur la page Ressources.
Principaux contrats en service sur Base mainnet, relevé du 5 octobre 2026
| Contrat | Module | Rôle principal | Instances |
|---|---|---|---|
| KalToken | Jeton | Jeton ERC-20 du protocole, plafond de 10 000 000 unités | 1 |
| LiquidityRewards V8_2 | Jeton | Minage de liquidité et mise en jeu de KAL, autorisé à créer du KAL | 1 |
| KalPlanDotation | Jeton | Plan de dotation des applications, autorisé à créer du KAL | 1 |
| KalPoolRewards V4 | Jeton | Bonus versé aux déposants de chaque réserve | 1 |
| KalPresaleV4 | Prévente | Prévente en 10 niveaux, distribue un stock préexistant | 1 |
| KalAirdrop | Prévente | Distribution unique aux premiers contributeurs | 1 |
| KalReferral | Prévente | Parrainage on-chain, sans niveau multiple | 1 |
| KalBondingCurveV2 | Prévente | Courbe d’achat, autorisée à créer du KAL, plafond par fenêtre de 24 heures | 1 |
| KalPool V5_2_2 | Réserves | Moteur générique des réserves de stratégie, une instance par stratégie | 6 |
| PoolManager | Réserves | Registre des réserves de stratégie | 1 |
| KalSwapV3 | Conversion | Marché KAL contre USDC lu par les pools de stratégie | 1 |
| KalSwapV2 | Conversion | Marché KAL contre USDC précédent, toujours ouvert | 1 |
| KalSwapETH | Conversion | Paire USDC contre WETH | 1 |
| KalRouter | Conversion | Routage des conversions entre les paires du protocole | 1 |
| KalAeroLPStaking | Conversion | Mise en jeu des parts de liquidité fournies sur un protocole externe | 1 |
| BuybackRecirculator V2 | Conversion | Rachat du KAL puis réorientation vers la liquidité | 1 |
| KalFeeSplitV7 | Frais | Répartition des frais selon une grille inscrite en constantes | 1 |
| FeeDistributor | Frais | Versement hebdomadaire en USDC aux détenteurs de veKAL | 1 |
| FeeShareBooster | Frais | Multiplicateur appliqué à l’indemnité de service | 1 |
| FeeShareDashboard | Frais | Lecture agrégée des droits à l’indemnité de service | 1 |
| VeKAL | Gouvernance | Verrouillage du KAL, de 1 semaine à 4 ans | 1 |
| KalGovernance | Gouvernance | Propositions et votes, délai d’exécution de 48 heures | 1 |
| KalTimelock | Gouvernance | Délai minimum de 24 heures, maximum de 7 jours | 1 |
| TreasuryRWAV2 | Trésorerie | Diversification hors crypto de la trésorerie, vide aujourd’hui | 1 |
| RainyDayFund | Trésorerie | Réserve en USDC mobilisable par vote de gouvernance | 1 |
| CircuitBreaker | Trésorerie | Surveillance des évènements anormaux et pause automatique | 1 |
| KalAccessPassV5_3 | Accès | Pass d’accès en service, jeton non fongible et non transférable | 1 |
| Pont de Pass | Accès | Lu par les pools pour vérifier le Pass, porte l’entrée libre | 1 |
| KalAccessPassRenderer | Accès | Rendu de l’image du Pass d’accès | 1 |
Relevé sur la chaîne le 5 octobre 2026. Les 6 instances de KalPool V5_2_2 partagent le même code. Les contrats remplacés portent encore leur code et restent lisibles, ils sont listés sur la page Ressources. Les contrats tiers sollicités par le câblage n’appartiennent pas au protocole, gTrade en premier.