Les jetons YES et NO commencent comme deux droits garantis par un même ensemble complet de collatéral. La division crée ces droits, la fusion les réunit et le rachat les paie selon un résultat enregistré. Acheter un jeton à un autre trader est une opération distincte.
Ce troisième article de Comment fonctionnent Polymarket et Kuest suit les actifs sous l’interface, le système de négociation et les contrats. Si versement et prix vous paraissent encore interchangeables, commencez par la signification du prix d’un marché prédictif.
Commencez par le collatéral, pas par un prix
Utilisez notre question fictive : « L’Observatoire A publiera-t-il une température d’au moins 30.0°C pour la Ville B à 12:00 UTC à la Date C ? » Supposez que la source, l’arrondi, la solution de repli et les règles d’annulation ont été précisés. Nous modéliserons une condition binaire standard du Conditional Tokens Framework (CTF), avec YES en premier et NO en second.
Le collatéral est l’actif engagé pour garantir les positions. Dans cet exemple, un jeton gagnant verse une unité de collatéral ; une unité n’est pas automatiquement un dollar. Un stablecoin introduit des risques d’émetteur, de transfert et de valeur même lorsque l’interface affiche un symbole dollar.
Tous les soldes ci-dessous excluent frais, gas et financement. Ils utilisent une condition, un actif de collatéral et aucune position parente. Ces hypothèses permettent de rapprocher chaque unité sans mélanger les actifs d’un autre marché dans le calcul.
CTF utilise normalement un jeton ERC-20 comme collatéral et des soldes ERC-1155 pour les résultats. ERC-1155 permet à un contrat de suivre de nombreux identifiants de jeton : un solde YES pour la question de température et un solde YES pour une élection sont des actifs distincts, même s’ils apparaissent sous le même symbole.
Un ensemble complet possède une identité précise
Préparer une condition enregistre son oracle, son identifiant de question et son nombre de résultats. Cela ne dépose pas de collatéral et ne crée les soldes de résultat de personne. Dans le code CTF de Kuest examiné, préparation et division sont des fonctions séparées.
Pour CTF, l’identifiant de condition est keccak256(abi.encodePacked(oracle, questionId, outcomeSlotCount)). L’adresse de l’oracle fait partie de cette identité : le même identifiant de question attribué à un autre oracle produit une condition différente.
Une collection identifie un ensemble de résultats, y compris toute collection parente. L’adresse du collatéral et l’identifiant de collection identifient ensuite la position. La dérivation d’une collection possède son propre algorithme ; utilisez la fonction auxiliaire getCollectionId du contrat plutôt que d’inventer un hachage des libellés. Le guide CTF pour développeurs explique cette construction.
Une carte de construction, pas une formule de hachage de collection. Des collatéraux ou chemins de collections différents produisent des positions différentes.
Dans notre exemple binaire, la partition est [1, 2] : des masques de bits sélectionnant séparément le premier et le second emplacement de résultat. Ensemble, ils couvrent tous les résultats sans chevauchement. La collection parente est constituée de 32 octets nuls : cette division part du collatéral et non d’une position parente déjà conditionnelle.
Par conséquent, des titres identiques ne suffisent pas pour fusionner. Vérifiez réseau, contrat de jeton, condition, collatéral et chemin de collections. Un YES Polymarket et un NO Kuest ne peuvent pas former un ensemble complet local simplement parce que les questions se ressemblent.
Division : bloquer 100 et recevoir 100 de chaque résultat
Commencez avec 100 unités de collatéral. Une division réussie les transfère au contrat CTF et émet 100 YES plus 100 NO pour l’appelant. L’implémentation de division valide la partition et effectue ces changements d’actifs dans une seule transaction ; un échec annule l’opération.
Une paire correspond à une unité de collatéral. La division crée les deux soldes de résultat sans choisir de prévision.
Le portefeuille possède maintenant 200 jetons de résultat, mais seulement 100 paires complètes. Chaque paire YES–NO est garantie par une unité de collatéral. Pour un résultat ordinaire YES, son YES verse un et son NO zéro ; un résultat ordinaire NO inverse cette répartition. La division a créé du stock, pas doublé la richesse.
Détenir les deux côtés n’exprime pas non plus une prévision directionnelle. Un teneur de marché peut diviser pour obtenir du stock à proposer des deux côtés. Vendre ensuite une partie des YES laisse une exposition différente, car le portefeuille conserve les NO correspondants ; la division seule n’a fourni aucun acheteur ni assuré de revenus de négociation.
Un achat ordinaire peut au contraire transférer des jetons existants entre comptes. Si un autre trader vous vend 10 YES existants, son solde YES baisse et le vôtre augmente ; ce transfert n’a pas besoin d’émettre de nouveaux YES ou NO. L’origine du stock et son prix d’acquisition sont des questions différentes.
Fusion : brûler 40 paires et libérer 40 de collatéral
Avant résolution, vous pouvez fusionner des quantités égales des résultats correspondants. À partir de 100 YES et 100 NO, fusionnez 40 paires : le contrat brûle 40 de chaque et restitue 40 de collatéral. Vous conservez 60 YES, 60 NO et 40 de collatéral utilisable.
Brûler des paires correspondantes libère leur garantie. Les soldes de résultat restants ne sont ni brûlés ni payés.
Ce registre suit uniquement notre portefeuille et la garantie attribuable à ses ensembles complets ; ce n’est pas le solde total du contrat. Frais, gas et financement restent exclus.
Les soldes du portefeuille sont indiqués sous la forme collatéral / YES / NO.
Étape | Soldes du portefeuille | Garantie |
|---|---|---|
| Départ | 100 / 0 / 0 | 0 |
| Diviser 100 | 0 / 100 / 100 | 100 |
| Fusionner 40 | 40 / 60 / 60 | 60 |
| Fusionner les 60 restants | 100 / 0 / 0 | 0 |
La dernière ligne est une suite possible, pas une étape effectuée avant l’exemple de rachat ci-dessous. Elle ramène le portefeuille à ses soldes initiaux avant coûts, démontrant une conservation plutôt qu’un bénéfice.
Avec 60 YES et seulement 20 NO correspondants, vous pouvez fusionner au maximum 20 paires. Les 40 YES restants conservent une exposition au résultat. Un YES seul ne peut pas libérer une unité complète avant résolution, puisqu’il ne couvre pas le résultat NO.
L’implémentation de fusion n’exige pas de résultat de versement. La recombinaison d’ensembles complets fonctionne avant résolution ; la fonction n’est pas limitée à cette période. Elle utilise la garantie de la paire plutôt que de rechercher un acheteur dans le carnet.
Rachat : utiliser le résultat, pas la dernière cotation
Reprenez maintenant l’état précédent avec 40 de collatéral et 60 de chaque jeton. Si le résultat enregistré est YES, le rachat de ces soldes sélectionnés verse 60 de collatéral pour YES et zéro pour NO. Le portefeuille atteint 100 de collatéral avant coûts ; les jetons rachetés sont brûlés.
Un portefeuille ne détenant que les 60 YES recevrait le même versement YES de 60 unités. Le rachat n’exige pas que son propriétaire fournisse aussi des NO. C’est la différence essentielle avec une fusion avant résolution : un résultat enregistré détermine quels droits individuels paient.
Dans la fonction de rachat examinée, le montant de chaque position sélectionnée est son solde multiplié par le numérateur de versement concerné, puis divisé par le dénominateur. Celui-ci est la somme des numérateurs enregistrés. Sélectionner une position rachète tout son solde dans cette fonction CTF ; aucun argument ne permet de préciser un montant partiel.
Collatéral reçu pour 100 jetons de chaque résultat, avant coûts. Le cas 50/50 est une capacité du CTF normal, pas une promesse ni un résultat NegRisk pris en charge.
Pour 100 de chaque jeton, [1, 0] verse 100 à YES / 0 à NO, et [0, 1] verse 0 à YES / 100 à NO. Un versement normal CTF pris en charge de [1, 1] a un dénominateur de 2 et verse 50 de chaque côté. Il s’agit de collatéral reçu, pas de bénéfice net ; les coûts d’acquisition comptent toujours.
Cette capacité de versement fractionné n’est pas une promesse universelle de remboursement en cas d’annulation. Les règles du marché et son mécanisme de résolution doivent autoriser ce résultat. Un événement NegRisk lié demande ses propres règles de versement et de récupération prises en charge ; ne supposez pas qu’une solution de repli binaire ordinaire s’applique.
Le contrat calcule en unités de base entières et arrondit les divisions vers le bas. Si un jeton de collatéral possède six décimales, 100 unités représentent 100000000 unités de base ; une seule unité de base avec un versement par moitié est arrondie à zéro. Les décimales affichées ne doivent jamais être transmises comme entiers bruts au contrat.
L’arrivée à l’heure de fin du marché n’établit pas un versement. Le rachat exige un dénominateur de versement enregistré non nul ; l’oracle et sa procédure configurée doivent d’abord fournir le résultat. Cela peut entraîner une attente même lorsque la négociation est terminée.
Vendre et faire racheter sont des sorties différentes
Vendre exige un intérêt acheteur exécutable. Vous transférez des jetons de résultat à un acheteur au prix convenu, sous réserve de quantité disponible, de coûts d’exécution et d’un règlement réussi. Cela peut clôturer une position avant le résultat, mais un point médian affiché n’est pas une offre d’achat disponible.
Une vente demande un acheteur et un prix exécutable. Le rachat demande un résultat enregistré et la bonne voie de contrat.
Le rachat utilise le versement enregistré et la voie de contrat appropriée après résolution. Il ne demande aucun nouvel acheteur dans le carnet. Une acquisition à 0.60 suivie d’un versement gagnant d’une unité produit un gain brut de 0.40 par jeton ; un résultat perdant produit une perte de 0.60, avant coûts dans les deux cas.
Acheter les deux résultats sous leur valeur de fusion ne permet un écart brut qu’après l’exécution réelle de quantités égales du même ensemble complet. Côtés non exécutés, identifiants incorrects, frais, approbations, échec de transaction et risque de collatéral peuvent effacer cet écart ou laisser une exposition directionnelle. Une cotation seule n’est pas une stratégie terminée.
La différence Kuest : le contexte du créateur accompagne les positions
Kuest conserve cette mécanique d’actifs CTF et ajoute à la préparation des conditions une adresse de créateur et une référence externe de métadonnées. Sa fonction de mise à jour des métadonnées réserve les mises à jour au créateur ou à un administrateur et enregistre l’ancienne référence, la nouvelle et l’auteur de la mise à jour.
Pour un opérateur, cela fournit, au niveau du code source, un moyen d’associer une condition à son créateur et de suivre les changements de référence des métadonnées. Cela ne stocke pas tout le document du marché dans le registre CTF, ne fige pas toutes les règles affichées et ne décide pas du versement. Les opérateurs ont toujours besoin de documents accessibles et d’une voie de résolution clairement identifiée.
Le guide public CTF sépare les opérations de division, de fusion et de rachat du registre de positions. Un adaptateur NegRisk constitue une autre voie de contrat ; identifiez son interface publiée et son collatéral avant de tenter la même opération de stock.
Les autorisations suivent cette voie : la division demande une autorisation de dépense du collatéral pour le CTF ou l’adaptateur concerné. La fusion et le rachat à risque négatif demandent aussi que l’adaptateur soit autorisé à gérer les positions CTF. Les approbations de négociation n’autorisent pas automatiquement ces opérations de stock.
Vérification de version au 30 octobre 2026 : la documentation actuelle de gestion des positions de Polymarket distingue les adaptateurs de collatéral CTF du Router et du PositionManager de Protocol V2. Un numéro de version ou un nom de méthode similaire ne démontre pas la compatibilité avec une autre plateforme. Utilisez la voie documentée pour la position réelle.
Les explications CTF de Kuest ci-dessus peuvent être vérifiées dans son contrat Polygon au code publiquement vérifié. Elles n’établissent pas le collatéral, les autorisations ou le mécanisme de résolution actifs de chaque marché listé. Avant d’activer des actions de stock, confirmez ces détails et présentez division, fusion et rachat comme des mouvements d’actifs distincts.
Vous préparez cette expérience pour votre audience ? Créez votre propre marché prédictif avec Kuest, en apportant les règles du marché, les juridictions de l’audience prévue et les besoins de liquidité nécessaires pour choisir la bonne configuration opérationnelle.
