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

# Introduction à counsel : les marchés de prédiction sur le XRP Ledger

> Comment fonctionnent les pools parimutuels de counsel, pourquoi les cotes restent indicatives jusqu'à la clôture, et comment la conception non dépositaire on-chain garde chaque pari et chaque paiement vérifiables.

counsel est un marché de prédiction parimutuel natif L1 qui tourne sur le XRP Ledger. Il n'y a ni bridge, ni smart contract, ni base de données de référence. Le ledger fait office de registre, de pool et de piste d'audit. La vérité des prix (l'oracle natif XLS-47), l'argent (XRP) et l'attribution (SourceTag) sont tous des primitives natives du ledger : ainsi, toute personne ayant accès à un nœud du ledger peut recalculer chaque répartition à partir des premiers principes.

> Take counsel of your pillow.

## Comment fonctionne un pari

Vous pariez en envoyant un Payment XRP natif vers le compte du pool d'un marché. Deux tags portent le sens :

<ParamField path="DestinationTag" type="integer">
  L'indice de l'issue que vous soutenez.
</ParamField>

<ParamField path="SourceTag" type="integer">
  Le tag d'attribution de counsel, qui marque le Payment comme un pari counsel.
</ParamField>

Vous signez ce Payment vous-même, dans votre propre wallet (Xaman, GemWallet ou Crossmark). counsel construit le Payment non signé et vous le renvoie ; votre wallet le signe et le soumet. counsel ne détient, ne demande et ne touche jamais votre clé privée.

## Les pools parimutuels

Les parieurs misent dans des pools d'issues. À la résolution du marché, les participants du côté gagnant se partagent l'intégralité du pool, y compris les mises perdantes, après des frais de protocole forfaitaires de 3 %. Il n'y a ni carnet d'ordres, ni appariement de contreparties. Le pool lui-même est le marché, et le pool fixe les cotes.

La formule de paiement est exacte :

| Symbole | Signification                                                 |
| ------- | ------------------------------------------------------------- |
| `T`     | Pool brut, la somme de toutes les mises sur toutes les issues |
| `r`     | Taux de frais, en général `0.03`                              |
| `W`     | Total misé sur l'issue gagnante                               |
| `sᵢ`    | Une mise gagnante individuelle                                |

```
N        = T × (1 − r)         net pool after the 3% takeout
payoutᵢ  = floor(sᵢ × N / W)    rounded down to whole XRP drops
dust     = N − Σ payoutᵢ        rounding residue, to operator reserve
```

<Note>
  Les frais sont prélevés sur l'ensemble du pool brut avant la répartition. Ils ne sont jamais appliqués sélectivement sur les gains des gagnants.
</Note>

## Cotes indicatives et ligne finale

counsel affiche un tableau de cotes en direct. Tant qu'un marché est ouvert, chaque issue affiche une probabilité implicite indicative et un paiement indicatif par unité, recalculés en temps réel à mesure que les XRP affluent :

* `implied_prob` = `outcome_drops / total_drops`
* `payout_per_unit` = XRP indicatifs reversés par 1 XRP misé si cette issue gagne, après frais

Ces chiffres sont purement indicatifs. Parce que counsel est un véritable marché parimutuel et non à cotes fixes, chaque nouvelle mise déplace les cotes de toutes les issues. La ligne finale est fixée par l'état du pool au moment du `bet_cutoff`. Un parieur précoce ne peut pas verrouiller un prix observé avant la clôture.

## Résolution

Les marchés se résolvent de deux manières, selon leur famille.

<CardGroup cols={2}>
  <Card title="Famille A : prix crypto" icon="bitcoin-sign">
    Se résout automatiquement face à l'oracle de prix natif XLS-47.
  </Card>

  <Card title="Famille B : monde réel" icon="globe">
    Se résout par une issue proposée par l'opérateur, puis une fenêtre de contestation cautionnée, puis une finalisation par le comité multisig.
  </Card>
</CardGroup>

### Pools annulés

Un pool est annulé et intégralement remboursé, sans aucun frais prélevé, lorsqu'il ne peut pas se résoudre proprement. Cela couvre un pool à sens unique (pas de côté perdant à partager), un marché sans gagnant, un événement annulé et un oracle obsolète. Dans tous les cas d'annulation, les mises sont restituées en totalité.

## Entièrement on-chain et vérifiable

Chaque action du cycle de vie de counsel laisse une trace on-chain :

* Les définitions de marché sont des mémos JSON sur un Payment vers le compte de registre.
* Les paris sont des Payments XRP taggés (`DestinationTag` = indice de l'issue, `SourceTag` = attribution counsel).
* Les résolutions sont publiées sous forme de mémos référençant la valeur de l'oracle ou le hash de la preuve.
* Les paiements sont des Payments XRP signés en multisig par le comité, avec un mémo de paiement attaché.

L'application reconstruit la totalité de son état à partir du ledger. Il n'y a pas de base de données de référence, donc n'importe qui peut vérifier la répartition d'un paiement en lisant les mêmes transactions.

## Modèle de confiance

counsel est dépositaire-transparent, et non sans confiance (trustless). Les mises reposent dans des comptes de pool propres à chaque marché, sécurisés par une `SignerList` multisig dont la clé maîtresse est désactivée. Aucune clé seule ne peut déplacer des fonds d'un pool : le règlement requiert un seuil de signatures du comité. Tout est on-chain et recalculable, de sorte que la garde des fonds est transparente et auditable, même si elle n'est pas entièrement sans confiance.

## Le parcours développeur canonique

Les bots sont des citoyens de premier rang dans counsel. Un bot est un client XRPL ordinaire : il lit un marché, récupère un Payment de pari non signé, le signe avec sa propre clé et le soumet. L'API publique est une API REST en lecture seule, sans clé d'API.

<Steps>
  <Step title="Trouver un marché et une issue">
    `GET /markets` liste les marchés ouverts et les indices de leurs issues.
  </Step>

  <Step title="Récupérer une intention de pari non signée">
    `GET /markets/:id/bet-intent?account=...&outcome=...&amount=...` renvoie un Payment XRPL non signé ainsi que les cotes projetées après votre mise.
  </Step>

  <Step title="La signer dans votre propre wallet">
    Signez le Payment renvoyé avec votre propre clé. counsel ne le voit jamais.
  </Step>

  <Step title="La soumettre au XRPL">
    Soumettez le Payment signé. Le pool se met à jour et le tableau de cotes bouge.
  </Step>
</Steps>

<CodeGroup>
  ```bash curl theme={null}
  curl https://api.counsel.markets/markets
  ```

  ```ts counsel-js theme={null}
  import { Counsel } from "counsel-js";

  const counsel = new Counsel({ baseUrl: "https://counsel.markets" });
  const { markets } = await counsel.markets();

  // fetch an unsigned bet intent, sign with your own key, submit
  const hash = await counsel.placeBet(process.env.BOT_SEED, markets[0].id, 0, 5);
  console.log("bet placed:", hash);
  ```
</CodeGroup>

## Ce que vous pouvez faire

* Parier sur des marchés : marchés ouverts de prix crypto et du monde réel sur [counsel.markets](https://counsel.markets).
* Copy-trading : répliquez les paris ouverts d'un leader de façon non dépositaire. Vous signez chaque réplique dans votre propre wallet, dimensionnée selon votre propre mise, avec les cotes projetées affichées avant la signature.
* Faire tourner des bots : l'API publique renvoie des Payments de pari non signés avec les cotes projetées après mise, et un bot est un client XRPL ordinaire.

## Étapes suivantes

<CardGroup cols={2}>
  <Card title="Comment ça marche" icon="circle-nodes" href="/how-it-works">
    Le cycle de vie pari, clôture, résolution et paiement, avec la mécanique de l'oracle et du multisig.
  </Card>

  <Card title="Placer un pari" icon="hand-pointer" href="/placing-a-bet">
    Connectez un wallet, sélectionnez une issue et soumettez un Payment de pari.
  </Card>

  <Card title="Référence de l'API" icon="code" href="/api-reference">
    Endpoints REST en lecture seule pour les marchés, les positions, les feeds, les profils et le classement.
  </Card>

  <Card title="SDK counsel-js" icon="cube" href="/sdk/overview">
    Récupérez une intention non signée, signez avec votre propre clé et soumettez.
  </Card>

  <Card title="Copy trading" icon="copy" href="/guides/copy-trading">
    Répliquez les paris ouverts d'un leader de façon non dépositaire, dimensionnés selon votre propre mise.
  </Card>

  <Card title="Discord" icon="discord" href="https://discord.gg/gjhUxUgv9r">
    Posez vos questions et suivez le développement avec la communauté counsel.
  </Card>
</CardGroup>
