# Bridge de Solana vers Chiliz Chain

Pour relier un jeton existant de Solana à Chiliz Chain, vous devez écrire et déployer deux contrats intelligents distincts : un OFT Adapter sur la chaîne où le jeton existe déjà (Solana), et un Native OFT sur la chaîne de destination (Chiliz Chain).

*Notez que LayerZero propose son propre QuickStart pour les contrats OFT :*

{% embed url="<https://docs.layerzero.network/v2/developers/evm/oft/quickstart>" %}

## Prérequis

{% hint style="info" %}
Le pont entre Solana (non-EVM) et Chiliz Chain (EVM) nécessite un développement dual-stack.\
Vous devrez configurer des environnements et des portefeuilles pour les deux écosystèmes.

Vous aurez donc besoin des environnements suivants :

* Pour les interactions avec Solana : [Rustup](https://rustup.rs/) (les contrats intelligents Solana utilisent le langage de programmation Rust), [Solana CLI et le framework Anchor](https://solana.com/docs/intro/installation) , et [le SDK Solana de LayerZero](https://docs.layerzero.network/v2/tools/sdks/solana-sdk).
* Pour les interactions avec Chiliz Chain : Node/npx et Hardhat.
  {% endhint %}

Ce guide nécessite ce qui suit :

* L’adresse de mint du jeton SPL existant que vous souhaitez relier à Chiliz Chain.
* Un portefeuille Web3 pour chaque chaîne :
  * Pour Solana : [Solflare](https://www.solflare.com/) portefeuille avec [configuration de Solana Mainnet](https://solana.com/docs/references/clusters). Voici [leur guide de configuration](https://www.solflare.com/guides/how-to-set-up-your-first-crypto-wallet-with-solflare-step-by-step/).
  * Pour Chiliz Chain : portefeuille MetaMask avec [la configuration RPC de Chiliz Chain](/fr-ai/develop/basics/connect-to-chiliz-chain/connect-using-rpc.md).
* Assez de jetons de gaz sur chaque chaîne pour payer les déploiements des contrats ainsi que les frais de gaz pour l’envoi des messages.
  * Sur Solana : des jetons SOL.
  * Sur Chiliz Chain : des jetons CHZ.

## Étape 1 : développement du contrat

{% hint style="info" %}
**Le défi des « Shared Decimals »**

Comme l’Ethereum Virtual Machine (EVM) gère les mathématiques des jetons différemment de Solana, nous devons aligner leur précision décimale avant que les jetons ne traversent le pont :

* Solana (source) : les jetons SPL natifs ont généralement une précision de 9 décimales.
* Chiliz Chain (destination) : les jetons ERC-20 standard (et votre nouveau OFT de destination) utilisent généralement 18 décimales.

Si vous envoyiez une charge utile à 9 décimales depuis Solana directement vers Chiliz sans conversion, le contrat EVM interpréterait mal le montant, ce qui entraînerait le mint d’une fraction microscopique de jeton sur la chaîne de destination.

Pour normaliser les calculs, LayerZero utilise une configuration `sharedDecimals` . Par défaut, le standard OFT LayerZero V2 définit `sharedDecimals` à 6.

* Lorsqu’un utilisateur relie 1,00 jeton SPL depuis Solana, l’Adapter Solana réduit le nombre à 6 décimales (considérant les 3 dernières décimales du jeton SPL comme de la « poussière » et les laissant en toute sécurité dans le portefeuille de l’utilisateur).
* La charge utile du message à 6 décimales est envoyée à travers le pont.
* Le Native OFT de Chiliz Chain reçoit le nombre à 6 décimales et le convertit *vers le haut* à ses 18 décimales locales avant de minter le jeton ERC-20 dans le portefeuille EVM de l’utilisateur.

[En savoir plus ici](https://docs.layerzero.network/v2/faq#what-is-shareddecimals-can-i-override-default-shareddecimals-in-an-oft-contract).
{% endhint %}

### Développement du programme Solana

Comme votre jeton existe déjà sur Solana, vous n’avez pas besoin de créer un nouveau contrat de jeton. À la place, vous déploierez un programme Solana OFT Adapter écrit en Rust. Ce programme agira comme un coffre-fort décentralisé, conservant en toute sécurité vos jetons SPL lorsque les utilisateurs les relient à Chiliz Chain, et les libérant lorsqu’ils les renvoient.

LayerZero fournit un workspace Anchor avec des contrats préconstruits et audités, afin que vous n’ayez pas à écrire la logique Rust à partir de zéro.

#### **1. Cloner le SDK Solana de LayerZero**

Commencez par cloner le dépôt officiel des outils de développement de LayerZero, qui contient l’exemple de Solana OFT Adapter.

Ouvrez votre terminal et exécutez :

{% code overflow="wrap" %}

```bash
git clone https://github.com/LayerZero-Labs/devtools.git
cd devtools/examples/oft-solana
npm install
```

{% endcode %}

#### **2. Construire le programme d’Adapter Solana**

Ce répertoire est un workspace Anchor contenant à la fois les implémentations Native OFT et OFT Adapter. Vous devez compiler le programme Rust pour générer votre identifiant unique de programme Solana.

{% code overflow="wrap" %}

```bash
anchor build
```

{% endcode %}

Une fois la compilation terminée, récupérez votre nouvel identifiant de programme en exécutant :

{% code overflow="wrap" %}

```bash
anchor keys list
```

{% endcode %}

{% hint style="warning" %}
Vous devez mettre à jour le fichier `Anchor.toml` et la macro `declare_id!` à l’intérieur du fichier `programs/oft-adapter/src/lib.rs` avec votre nouvel identifiant de programme avant le déploiement.
{% endhint %}

#### **3. Déploiement sur Solana Mainnet**

Assurez-vous que votre Solana CLI est configurée pour Mainnet et que votre portefeuille local dispose de suffisamment de $SOL pour couvrir la taille du déploiement et le loyer du stockage.

{% code overflow="wrap" %}

```bash
solana config set --url mainnet-beta
anchor deploy
```

{% endcode %}

#### **4. Initialisation de l’OFT Adapter**

Contrairement au Native OFT (qui nécessite la création d’un nouveau Mint), l’initialisation de l’Adapter lie simplement votre nouvel identifiant de programme déployé à l’adresse de mint SPL existante.

Le SDK LayerZero fournit des tâches Hardhat pour gérer cette initialisation depuis la ligne de commande. Assurez-vous que votre endpoint LayerZero Solana (`30168`) est configuré, puis exécutez :

{% code overflow="wrap" lineNumbers="true" %}

```bash
npx hardhat lz:oft-adapter-solana:init --program-id <YOUR_NEW_PROGRAM_ID> --mint <YOUR_EXISTING_SPL_MINT_ADDRESS_BASE58> --shared-decimals 6
```

{% endcode %}

Il y a ici des paramètres cruciaux :

* `--mint`: il doit s’agir de l’adresse de mint Base58 exacte du jeton SPL que vous souhaitez relier. L’Adapter créera un compte d’escrow spécifiquement pour ce jeton.
* `--shared-decimals 6`: cela détermine comment l’Adapter met à l’échelle la charge utile avant de l’envoyer à l’EVM. Si votre jeton Solana a 9 décimales, laisser 6 décimales partagées ici garantit une traduction sûre à travers le pont sans problème de dépassement.

Une fois cette transaction d’initialisation confirmée sur Solana, votre Adapter est actif et prêt à verrouiller vos jetons SPL en toute sécurité !

### Développement du contrat Chiliz

Comme votre jeton SPL Solana n’existe pas encore sur Chiliz Chain, vous devez déployer un contrat Native `OFT` . Ce contrat servira de minter. Lorsqu’il recevra un message vérifié de votre Adapter Solana, il mintera les jetons ERC-20 correspondants ; lorsqu’un utilisateur renverra des jetons vers Solana, il les brûlera.

{% hint style="info" %}
Comme nous l’avons expliqué dans « Le défi des Shared Decimals », votre Adapter Solana réduit la charge utile à 6 décimales avant de l’envoyer.

L’implémentation EVM de LayerZero est telle que vous n’avez pas besoin d’écrire une logique de mise à l’échelle personnalisée. Par défaut, le contrat `OFT.sol` utilise 18 décimales locales et 6 décimales partagées. Il détectera automatiquement la charge utile à 6 décimales arrivant de Solana et la mettra à l’échelle au format standard à 18 décimales ($$ $1 \times 10^{18}$ $$) avant de minter le jeton ERC-20 dans le portefeuille de l’utilisateur.
{% endhint %}

#### Déployer l’OFT sur Chiliz Chain

Créez un nouveau fichier nommé `ChilizNativeOFT.sol` dans le dossier `contracts/` de votre projet Hardhat :

{% code lineNumbers="true" %}

```solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.22;

import { OFT } from "@layerzerolabs/lz-evm-oapp-v2/contracts/oft/OFT.sol";
import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";

contract ChilizNativeOFT is OFT {
    constructor(
        string memory _name,    // Le nom du jeton (doit correspondre à votre jeton SPL Solana)
        string memory _symbol,  // Le symbole du jeton (doit correspondre à votre jeton SPL Solana)
        address _lzEndpoint,    // L’adresse de l’endpoint LayerZero V2 sur Chiliz
        address _delegate       // L’adresse capable d’effectuer des modifications de configuration
    ) OFT(_name, _symbol, _lzEndpoint, _delegate) Ownable(_delegate) {}
}
```

{% endcode %}

Ne le déployez pas encore ! Mais gardez ceci à l’esprit :

* Assurez-vous que les paramètres `_name` et le `_symbol` correspondent exactement à votre jeton SPL Solana d’origine afin d’offrir une expérience unifiée à vos utilisateurs.
* Lors du déploiement sur Chiliz Mainnet, vous passerez l’adresse de l’endpoint Chiliz V2 (`0x6F475642a6e85809B1c36Fa62763669b1b48DD5B`) comme `_lzEndpoint`.

## Étape 2 : configuration LayerZero

Maintenant que votre Adapter Solana est initialisé et que votre Native OFT Chiliz est prêt à être déployé, vous devez configurer la connexion entre eux.

Le principal défi ici est le format des adresses. La messagerie cross-chain de LayerZero exige que toutes les adresses de pairs soient formatées en `bytes32`. La toolbox Hardhat LayerZero V2 gère cela automatiquement en décodant votre identifiant de programme Solana Base58 et en le complétant au format EVM standard.

Le [Générateur de configuration simple](https://docs.layerzero.network/v2/tools/simple-config) est la méthode recommandée pour générer la configuration de câblage, car il automatise le câblage bidirectionnel et applique en coulisses les configurations de sécurité recommandées.

Créez ou mettez à jour votre fichier `layerzero.config.ts` à la racine de votre projet Hardhat :

{% code lineNumbers="true" %}

```typescript
import { ExecutorOptionType } from '@layerzerolabs/lz-v2-utilities';
import { OAppEnforcedOption, OmniPointHardhat } from '@layerzerolabs/toolbox-hardhat';
import { EndpointId } from '@layerzerolabs/lz-definitions';
import { generateConnectionsConfig } from '@layerzerolabs/metadata-tools';

// Définir les contrats
const solanaContract: OmniPointHardhat = {
    eid: EndpointId.SOLANA_V2_MAINNET,
    address: 'YourSolanaAdapterProgramIdHereInBase58', 
    // NOTE : les non-EVM utilisent 'address' au lieu de 'contractName'
};

const chilizContract: OmniPointHardhat = {
    eid: EndpointId.CHILIZ_V2_MAINNET,
    contractName: 'ChilizNativeOFT', // Nom de votre déploiement Hardhat sur EVM
};

// Définir les options d’exécution pour Chiliz (gaz EVM)
const EVM_ENFORCED_OPTIONS: OAppEnforcedOption[] = [
    {
        msgType: 1, 
        optionType: ExecutorOptionType.LZ_RECEIVE,
        gas: 200000, // Unités de gaz EVM standard pour minter des jetons sur Chiliz
        value: 0,
    },
];

// Définir les options d’exécution pour le retour vers Solana (Compute Units et Lamports)
const SOLANA_ENFORCED_OPTIONS: OAppEnforcedOption[] = [
    {
        msgType: 1, 
        optionType: ExecutorOptionType.LZ_RECEIVE,
        gas: 200000,    // Compute Units Solana pour exécuter le déverrouillage
        value: 2500000, // Lamports pour couvrir les frais de loyer de création de l’ATA
    },
];

// Exporter la configuration générée
export default async function () {
    return {
        contracts: [
            { contract: solanaContract },
            { contract: chilizContract },
        ],
        connections: await generateConnectionsConfig([
            [
                solanaContract, 
                chilizContract,
                [['LayerZero Labs'], []], 
                [1, 1], 
                [EVM_ENFORCED_OPTIONS, SOLANA_ENFORCED_OPTIONS], // Options [Vers Chiliz EVM, Vers Solana SVM]
            ],
        ]),
    };
}
```

{% endcode %}

Le générateur gère la conversion automatique de votre adresse Solana Base58 en le format EVM `bytes32` complété requis par le contrat intelligent Chiliz.

## Étape 3 : flux de déploiement

À ce stade, votre Adapter Solana est déjà compilé, déployé et initialisé (comme couvert dans l’étape 1). Maintenant, vous devez déployer la partie EVM du pont — le Native OFT — sur Chiliz Chain.

Vous utiliserez Hardhat pour déployer ce contrat sur Chiliz Mainnet.

### **1. Script de déploiement du Native OFT Chiliz**

Dans votre projet Hardhat, créez un script de déploiement dans votre répertoire `deploy/` nommé `01_deploy_chiliz_native_oft.ts`. Ce script initialisera le nouveau jeton ERC-20 sur Chiliz.

{% code lineNumbers="true" %}

```typescript
import { DeployFunction } from 'hardhat-deploy/types';

const deployOFT: DeployFunction = async ({ getNamedAccounts, deployments }) => {
    const { deploy } = deployments;
    const { deployer } = await getNamedAccounts();

    // Détails du jeton (doivent strictement correspondre à votre jeton SPL Solana existant)
    const TOKEN_NAME = "My Solana Token";
    const TOKEN_SYMBOL = "SOLTKN";

    // L’adresse de l’endpoint Mainnet V2 Chiliz
    const CHILIZ_ENDPOINT_V2 = "0x6F475642a6e85809B1c36Fa62763669b1b48DD5B";

    console.log("Déploiement du Native OFT sur Chiliz Mainnet...");

    await deploy('ChilizNativeOFT', {
        from: deployer,
        args: [
            TOKEN_NAME,         // _name
            TOKEN_SYMBOL,       // _symbol
            CHILIZ_ENDPOINT_V2, // _lzEndpoint
            deployer            // _delegate (Owner)
        ],
        log: true,
        waitConfirmations: 2,
    });
};

export default deployOFT;
deployOFT.tags = ['ChilizNativeOFT'];
```

{% endcode %}

### **2. Déploiement du programme Solana**

Petit rappel : votre Adapter Solana n’utilise pas Hardhat pour son déploiement initial. Vous devriez déjà avoir :

1. Exécuté `anchor build` et le `anchor deploy` pour pousser le programme Rust sur Solana Mainnet.
2. Exécuté la tâche `lz:oft-adapter-solana:init` pour lier votre Adapter à votre adresse de mint SPL existante.
3. Copié l’identifiant de programme Base58 résultant dans votre fichier `layerzero.config.ts` .

### **3. Exécution du déploiement Chiliz**

Assurez-vous que votre fichier `hardhat.config.ts` dispose correctement de l’URL RPC et de la clé privée configurées pour le réseau `chiliz` .

Exécutez la commande suivante dans votre terminal pour déployer le Native OFT :

{% code lineNumbers="true" %}

```bash
npx hardhat deploy --network chiliz --tags ChilizNativeOFT
```

{% endcode %}

Une fois le déploiement terminé, Hardhat enregistrera l’adresse du contrat Chiliz nouvellement mintée dans le dossier `deployments/` . Vous avez maintenant des contrats actifs sur Solana (SVM) et Chiliz Chain (EVM), mais ils ne sont pas encore autorisés à communiquer entre eux.

## Étape 4 : câblage et pairage

À ce stade, vous avez un programme Adapter Rust sur Solana et un Native OFT EVM sur Chiliz Chain. Pour leur permettre de communiquer en toute sécurité, vous devez les « câbler » ensemble comme pairs de confiance.

Tout comme pour le pont dans la direction opposée, nous traitons ici avec deux machines virtuelles complètement différentes (SVM et EVM). Pour cette raison, configurer correctement les options imposées (limites de gaz) est essentiel pour garantir que vos transactions ne se bloquent pas sur la chaîne de destination.

### **Les « options imposées » pour Chiliz (EVM)**

Lorsqu’un utilisateur relie son jeton SPL depuis Solana vers Chiliz, l’Executor LayerZero a besoin de gaz EVM pour appeler la fonction `lzReceive` sur votre contrat Chiliz afin de minter les jetons ERC-20.

Inversement, pour le retour (de Chiliz vers Solana), l’Executor aura besoin de Compute Units Solana et de Lamports pour déverrouiller les jetons SPL et éventuellement payer le loyer d’un Associated Token Account (ATA).

### **Mise à jour de la configuration**

Pour garantir que l’Executor dispose de suffisamment de gaz dans les deux directions, vous devez définir ces limites dans votre fichier `layerzero.config.ts` avant le câblage.

Mettez à jour le tableau `connections` dans votre fichier de configuration pour inclure les éléments suivants `enforcedOptions`:

{% code lineNumbers="true" %}

```typescript
import { EndpointId } from '@layerzerolabs/lz-definitions';
import { ExecutorOptionType } from '@layerzerolabs/lz-v2-utilities';

// ... (tableau des contrats de l’étape 3)

    connections: [
        // Chemin 1 : Solana -> Chiliz (la route principale)
        {
            from: 'YourSolanaAdapterProgramIdHereInBase58',
            to: 'ChilizNativeOFT',
            config: {
                enforcedOptions: [
                    {
                        msgType: 1, // Transfert OFT standard
                        optionType: ExecutorOptionType.LZ_RECEIVE,
                        gas: 200000, // Gaz EVM standard pour minter des jetons sur Chiliz
                        value: 0,    // Aucun transfert natif nécessaire sur l’EVM Chiliz
                    }
                ]
            },
        },
        // Chemin 2 : Chiliz -> Solana (le trajet retour)
        {
            from: 'ChilizNativeOFT',
            to: 'YourSolanaAdapterProgramIdHereInBase58',
            config: {
                enforcedOptions: [
                    {
                        msgType: 1, 
                        optionType: ExecutorOptionType.LZ_RECEIVE,
                        gas: 200000,    // Compute Units Solana pour le déverrouillage
                        value: 2500000, // Lamports (couvre les frais de loyer ATA si nécessaire)
                    }
                ]
            },
        },
    ],
// ...
```

{% endcode %}

### **Exécution de la tâche de câblage**

Une fois votre configuration enregistrée, la toolbox LayerZero V2 automatise le processus de pairage. Elle décode votre adresse Solana Base58, la complète au format `bytes32` EVM requis, et soumet les transactions de configuration à la fois au Solana Mainnet et au Chiliz Mainnet.

Exécutez la commande suivante dans votre terminal :

{% code lineNumbers="true" %}

```bash
npx hardhat lz:oapp:wire --oapp-config layerzero.config.ts
```

{% endcode %}

{% hint style="info" %}
Le CLI vous demandera de confirmer les transactions. Il utilisera votre portefeuille Solana configuré pour soumettre la transaction source (coûtant des $SOL) et Hardhat pour soumettre la transaction de destination Chiliz (coûtant des $CHZ).
{% endhint %}

Du côté Chiliz, la toolbox Hardhat de LayerZero générera et exécutera automatiquement 6 transactions de configuration requises :

1. `setSendLibrary`: assigne la V2 MessageLib pour l’envoi des messages.
2. `setReceiveLibrary`: assigne la MessageLib pour la réception des messages.
3. `setConfig` (Send Library) : configure les DVN et l’Executor.
4. `setConfig` (Receive Library) : configure les DVN pour la vérification entrante.
5. `setEnforcedOptions`: garantit des paramètres d’exécution cohérents (en particulier en s’assurant que suffisamment de Compute Units Solana sont payées pour le trajet retour).
6. `setPeer`: lie cryptographiquement l’EID Chiliz à l’identifiant de programme Base58 de votre Adapter Solana (converti en `bytes32`).

Le SDK Solana gère en coulisses les instructions programmatiques équivalentes pour la partie SVM.

Une fois les deux transactions confirmées, votre pont Solana-vers-Chiliz est officiellement opérationnel et autorisé en toute sécurité !

## Étape 5 : fonctionnement et tests

Avec votre Adapter Solana déployé, votre Native OFT Chiliz initialisé et les deux correctement reliés, votre jeton SPL est officiellement prêt à traverser la séparation SVM/EVM. La dernière étape consiste à exécuter et suivre un transfert test de Solana vers Chiliz Chain.

### **1) Préparation de votre portefeuille Solana**

Contrairement à l’EVM où vous devez exécuter au préalable une transaction `approve()` distincte pour accorder une autorisation à un Adapter, Solana gère les approbations et les transferts de jetons dans les mêmes instructions de transaction.

Cependant, vous devez vous assurer que votre portefeuille Solana local (celui configuré dans votre projet) détient bien un solde des jetons SPL que vous souhaitez relier, ainsi qu’assez de $SOL pour payer les frais de transaction source et les frais de message cross-chain LayerZero.

**2) Envoi du message cross-chain vers Chiliz**

La toolbox LayerZero V2 inclut une tâche Hardhat pour envoyer des transferts OFT directement depuis la ligne de commande, même lorsque la chaîne source est Solana.

Contrairement aux transferts Solana-vers-Solana, votre destination ici est une adresse de portefeuille hexadécimale EVM standard (par exemple, `0x123...`). Le CLI LayerZero gère automatiquement le padding et la conversion des octets pour la charge utile.

Exécutez la commande suivante dans votre terminal :

{% code lineNumbers="true" %}

```bash
npx hardhat lz:oft:send \
  --oapp-config layerzero.config.ts \
  --from-eid 30168 \
  --to-eid 30409 \
  --to <YOUR_CHILIZ_EVM_WALLET_ADDRESS> \
  --amount 10
```

{% endcode %}

{% hint style="info" %}
Que se passe-t-il ici ?

1. Le script estime les frais cross-chain en `$SOL`.
2. Il construit une transaction qui transfère 10 jetons SPL de votre portefeuille vers le compte d’escrow de l’Adapter Solana.
3. L’Adapter réduit le montant du jeton SPL à 9 décimales jusqu’aux 6 décimales partagées.
4. L’endpoint LayerZero émet le paquet vers le Chiliz Mainnet.
   {% endhint %}

### **3) Suivi du paquet sur LayerZero Scan**

Comme le pont depuis Solana implique une traduction entre deux mécanismes de consensus entièrement différents et la finalisation de la transaction sur le SVM avant l’exécution sur l’EVM, un délai asynchrone est normal.

Pour suivre ce parcours en temps réel, cliquez sur le lien LayerZero Scan qui apparaît dans la sortie du CLI.

En savoir plus sur cet outil ici :

{% embed url="<https://docs.layerzero.network/v2/developers/evm/tooling/layerzeroscan>" %}

{% hint style="info" %}
Le Native OFT Chiliz aura automatiquement remonté la charge utile à 6 décimales au format standard EVM à 18 décimales, de sorte que vous recevez exactement 10 jetons complets
{% endhint %}

### **4) Résolution des messages bloqués**

Si votre transaction est marquée comme confirmée sur Solana mais échoue à s’exécuter sur Chiliz, le coupable le plus fréquent est une erreur EVM de manque de gaz.

* Si le `gas` paramètre dans votre `enforcedOptions` (configuré à l’étape 5) était défini trop bas pour que le réseau Chiliz puisse traiter la `lzReceive` fonction de mint, l’Executor LayerZero échouera à livrer le message.
* Correction : vous ne perdez pas vos jetons. Vous pouvez pousser manuellement un message bloqué via l’interface utilisateur de LayerZero Scan. Il suffit de connecter votre portefeuille EVM à Chiliz Chain, de cliquer sur le bouton « Force Resume » ou « Execute » sur l’explorateur de blocs, et de payer vous-même les frais de gaz Chiliz pour finaliser le mint.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.chiliz.com/fr-ai/develop/advanced/use-omnichain-tokens/bridging-from-solana-to-chiliz-chain.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
