> ## Documentation Index
> Fetch the complete documentation index at: https://docs.intention.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Oracle

> Comment un prix d’indice est produit à partir des données de plateformes, certifié par les validateurs, puis entériné dans le bloc qui le consomme.

Intention n’utilise pas de comité d’oracle externe. **L’ensemble des validateurs est l’oracle.** Chaque validateur produit sa propre vue du prix de chaque instrument, la signe, et le réseau certifie un résultat dans le même événement de consensus que celui qui entérine les transactions réglées contre ce prix.

Il y a deux étapes distinctes, et elles répondent à des questions différentes. L’agrégation demande *combien vaut cet instrument* et se fait par validateur, hors du chemin du consensus. La certification demande *sur quelle valeur le réseau s’accorde pour ce round* et se fait à l’intérieur du consensus.

<div className="dg" data-dg="oracle-path">
  <div className="dg-c" style={{aspectRatio:"720 / 316"}}>
    <svg className="dg-w" viewBox="0 0 720 316" aria-hidden="true">
      <path className="dg-wire" d="M 176.00 90.00 L 176.00 101.60" />

      <path className="dg-head" d="M 176.00 108.00 L 171.60 101.60 L 180.40 101.60 Z" />

      <path className="dg-wire" d="M 176.00 152.00 L 176.00 163.60" />

      <path className="dg-head" d="M 176.00 170.00 L 171.60 163.60 L 180.40 163.60 Z" />

      <path className="dg-wire" d="M 550.00 90.00 L 550.00 101.60" />

      <path className="dg-head" d="M 550.00 108.00 L 545.60 101.60 L 554.40 101.60 Z" />

      <path className="dg-wire" d="M 550.00 152.00 L 550.00 163.60" />

      <path className="dg-head" d="M 550.00 170.00 L 545.60 163.60 L 554.40 163.60 Z" />

      <path className="dg-wire dg--blue" d="M 341.00 130.00 L 384.60 130.00" />

      <path className="dg-head dg--blue" d="M 391.00 130.00 L 384.60 134.40 L 384.60 125.60 Z" />

      <path className="dg-wire dg--green" d="M 550.00 222.00 L 550.00 235.60" />

      <path className="dg-head dg--green" d="M 550.00 242.00 L 545.60 235.60 L 554.40 235.60 Z" />
    </svg>

    <div className="dg-band" style={{left:"0.0000%",top:"8.2278%",width:"48.8889%",height:"62.0253%"}}><span className="dg-cap">Par validateur — hors chemin de consensus</span></div>
    <div className="dg-band" style={{left:"52.7778%",top:"8.2278%",width:"47.2222%",height:"62.0253%"}}><span className="dg-cap">Dans le consensus</span></div>
    <div className="dg-b" style={{left:"2.2222%",top:"15.8228%",width:"44.4444%",height:"11.3924%"}}><span className="dg-t">Plateformes de trading</span></div>
    <div className="dg-b dg--sky" style={{left:"2.2222%",top:"35.4430%",width:"44.4444%",height:"11.3924%"}}><span className="dg-t">Sidecar oracle</span><span className="dg-s">un par validateur</span></div>
    <div className="dg-b dg--blue" style={{left:"2.2222%",top:"55.0633%",width:"44.4444%",height:"11.3924%"}}><span className="dg-t">Le validateur valide et signe</span></div>
    <div className="dg-b dg--blue" style={{left:"55.0000%",top:"15.8228%",width:"42.7778%",height:"11.3924%"}}><span className="dg-t">Gossip entre validateurs</span></div>
    <div className="dg-b dg--green" style={{left:"55.0000%",top:"35.4430%",width:"42.7778%",height:"11.3924%"}}><span className="dg-t">Certifiés par epoch et round</span></div>
    <div className="dg-b dg--green" style={{left:"55.0000%",top:"55.0633%",width:"42.7778%",height:"11.3924%"}}><span className="dg-t">Portés dans le bloc</span></div>
    <div className="dg-b dg--green dg-left" style={{left:"0.0000%",top:"77.8481%",width:"100.0000%",height:"17.7215%"}}><span className="dg-t">Noyau — marquage · marge · liquidation · financement</span><span className="dg-s">règle contre les prix entérinés au même événement de consensus</span></div>
  </div>
</div>

<h2 id="producing-an-index-price">
  Produire un prix d’indice
</h2>

Chaque validateur fait tourner son propre sidecar oracle, qui collecte des données auprès de plusieurs plateformes de trading et les réduit à un prix d’indice par instrument. Cette réduction n’est délibérément pas une simple moyenne — une moyenne se déplace trivialement sous l’effet d’une seule source défaillante.

<div className="dg" data-dg="oracle-aggregate">
  <div className="dg-c" style={{aspectRatio:"720 / 236"}}>
    <svg className="dg-w" viewBox="0 0 720 236" aria-hidden="true">
      <path className="dg-wire" d="M 100.67 84.00 L 114.27 84.00" />

      <path className="dg-head" d="M 120.67 84.00 L 114.27 88.40 L 114.27 79.60 Z" />

      <path className="dg-wire" d="M 225.33 84.00 L 238.93 84.00" />

      <path className="dg-head" d="M 245.33 84.00 L 238.93 88.40 L 238.93 79.60 Z" />

      <path className="dg-wire" d="M 350.00 84.00 L 363.60 84.00" />

      <path className="dg-head" d="M 370.00 84.00 L 363.60 88.40 L 363.60 79.60 Z" />

      <path className="dg-wire" d="M 474.67 84.00 L 488.27 84.00" />

      <path className="dg-head" d="M 494.67 84.00 L 488.27 88.40 L 488.27 79.60 Z" />

      <path className="dg-wire" d="M 599.33 84.00 L 612.93 84.00" />

      <path className="dg-head" d="M 619.33 84.00 L 612.93 88.40 L 612.93 79.60 Z" />
    </svg>

    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Filtrer</span><span className="dg-s">valeurs non finies et malformées</span></div>
    <div className="dg-b dg--sky" style={{left:"17.3148%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Médiane</span><span className="dg-s">entre sources</span></div>
    <div className="dg-b dg--sky" style={{left:"34.6296%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Borner</span><span className="dg-s">source à médiane ± bande</span></div>
    <div className="dg-b dg--sky" style={{left:"51.9444%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Pondérer</span><span className="dg-s">par spread et stabilité</span></div>
    <div className="dg-b dg--sky" style={{left:"69.2593%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Plafonner</span><span className="dg-s">par palier</span></div>
    <div className="dg-b dg--green" style={{left:"86.5741%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Prix de l’indice</span></div>
    <div className="dg-b dg-dashed dg-left" style={{left:"0.0000%",top:"69.4915%",width:"100.0000%",height:"26.2712%"}}><span className="dg-t">L’enchaînement compte</span><span className="dg-s">Le filtrage passe en premier : une seule valeur infinie qui survit jusqu’à une médiane ou une somme pondérée contamine tout le reste. Borner plutôt qu’écarter garde chaque source comptée tout en limitant jusqu’où l’une d’elles peut tirer.</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"0.0000%",width:"100.0000%"}}><div className="dg-n">Pas une simple moyenne — une seule source défaillante la déplacerait</div></div>
  </div>
</div>

**Filtrer.** Les valeurs non finies et malformées sont écartées avant de pouvoir toucher quoi que ce soit en aval. Cet enchaînement compte : une seule valeur infinie qui survit jusqu’à une médiane ou une somme pondérée contamine tout le résultat.

**Borner à la médiane.** Une médiane est prise entre les sources, puis chaque source est ramenée à l’intérieur d’une bande autour d’elle. La bande est propre à chaque instrument, et la plus étroite là où le marché est le plus profond :

| Classe d’instrument        | Bande autour de la médiane |
| -------------------------- | -------------------------- |
| Crypto majeures (BTC, ETH) | 1 %                        |
| Stablecoins                | 0,5 %                      |
| Autres                     | 3 %                        |

Une source qui cote en dehors de sa bande n’est pas écartée — elle est ramenée au bord de la bande. La distinction compte : écarter permet à un attaquant de rétrécir l’échantillon, alors que borner garde chaque source comptée tout en limitant jusqu’où l’une d’elles peut tirer le résultat.

**Pondérer par la qualité, puis plafonner.** Les sources bornées sont combinées par moyenne pondérée plutôt qu’à parts égales. Le poids augmente avec la qualité de la cotation — un spread plus serré compte davantage — et avec la stabilité, mesurée en comparant le volume récent à une moyenne journalière de plus long terme, de sorte qu’une plateforme connaissant un pic de volume inhabituel n’en tire aucune influence.

Les poids sont ensuite plafonnés par palier de source, de sorte qu’aucune plateforme ne peut à elle seule dominer le résultat, quelle que soit la qualité apparente de ses cotations :

| Palier                  | Plafond de poids |
| ----------------------- | ---------------- |
| Plateformes de palier 1 | 0,45             |
| Plateformes de palier 2 | 0,35             |

Les instruments cotés en croisé sont convertis dans une devise de cotation commune avant tout cela, pour que la médiane porte sur des nombres comparables plutôt que sur des unités mélangées.

<Note>
  Chaque constante ici est une décision de politique, pas une constante naturelle. Les bandes de déviation, l’affectation des paliers et les plafonds de poids sont de la configuration, et ce sont les leviers que l’on règle quand le comportement d’une plateforme change ou qu’une nouvelle source est ajoutée.
</Note>

<h2 id="certifying-it">
  La certifier
</h2>

Le prix d’indice que produit un sidecar est l’opinion d’un seul validateur. C’est dans le consensus qu’il devient quelque chose contre quoi le réseau peut régler.

Le validateur récupère le prix auprès de son propre sidecar et **le valide avant de le signer** — y compris sa fraîcheur par rapport à un seuil configuré, de sorte qu’un sidecar bloqué ne produit aucune soumission plutôt qu’une soumission périmée. Il signe ensuite les données de prix et diffuse la soumission signée aux autres validateurs par gossip, sous forme de message du réseau de consensus.

Les prix certifiés sont assemblés par epoch (époque) et par round, et portés dans la proposition de bloc. Les signatures qui entérinent les transactions du bloc entérinent donc aussi les prix contre lesquels ces transactions ont été réglées — il n’existe pas de transaction d’oracle séparée, ni de fenêtre entre la publication d’un prix et son utilisation.

**Un validateur ne peut pas proposer de bloc sans observations de prix valides pour le round.** La disponibilité du prix est une condition préalable à la production de blocs, pas une entrée que l’exécution espère trouver.

<h2 id="index-price-and-mark-price">
  Prix de l’indice et prix de marquage
</h2>

Le prix certifié est le **prix de l’indice** — la vue qu’a le réseau du marché externe. Ce n’est pas le prix auquel les transactions s’exécutent.

Le [noyau](/fr/protocol/architecture/kernel) en dérive un **prix de marquage**, lissé et borné pour qu’une dislocation brève de l’indice ne se propage pas en cascade de liquidations. C’est le prix de marquage qu’utilisent réellement la marge, la liquidation et le financement. Voir [Prix de marquage](/fr/trading/mark-price) et [Prix de l’indice](/fr/trading/index-price) pour la vue côté trading.

<h2 id="what-this-does-and-does-not-guarantee">
  Ce que cela garantit, et ce que cela ne garantit pas
</h2>

Cela garantit que le prix contre lequel une transaction a été réglée a été certifié par un quorum de validateurs au round qui a entériné la transaction, et qu’aucun chemin d’exécution n’aurait pu en lire un autre.

Cela ne garantit pas que le prix était juste. Si les plateformes à partir desquelles l’indice est construit sont elles-mêmes fausses — par un mouvement coordonné sur plusieurs d’entre elles, ou par une dislocation à l’échelle du marché — le bornage et la pondération limitent jusqu’où une source unique peut pousser le résultat, mais ils ne peuvent pas fabriquer une information que le marché n’avait pas.

<Warning>
  Le prix est l’entrée externe la plus lourde de conséquences du système de trading. La résistance à la manipulation y est une affaire de degré, pas une propriété binaire. Voir [Avertissements sur les risques](/fr/protocol/security/risks) pour ce qui reste exposé.
</Warning>

<h2 id="where-to-go-next">
  Pour aller plus loin
</h2>

<CardGroup cols={2}>
  <Card title="IntentionBFT" href="/fr/protocol/architecture/intention-bft">
    Comment la certification est liée aux signatures mêmes qui entérinent le bloc.
  </Card>

  <Card title="Chambre de compensation" href="/fr/protocol/architecture/clearinghouse">
    Ce que la marge, la liquidation et le financement font du prix.
  </Card>

  <Card title="Prix de marquage" href="/fr/trading/mark-price">
    Comment l’indice devient le chiffre qui fait bouger les positions.
  </Card>

  <Card title="Avertissements sur les risques" href="/fr/protocol/security/risks">
    Où subsiste le risque de prix, et ce qu’il peut coûter.
  </Card>
</CardGroup>
