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

# Comment obtenir des NFTs Solana : actifs, collections et preuves

> Récupérez et interrogez des NFTs Solana, des NFTs compressés, des éditions et des preuves à l'aide de l'API Helius DAS. Guide complet avec exemples de code et meilleures pratiques.

## Vue d'ensemble

Ce guide couvre la lecture de NFTs et de collectibles numériques avec l'API Helius Digital Asset Standard (DAS) : récupération d'un seul actif, liste des NFTs d'un portefeuille, requête par collection ou créateur, travail avec des NFTs compressés et des preuves de Merkle, liste des éditions, et lecture de l'historique des transactions.

Pour les tokens fongibles — soldes, offre, détenteurs et prix — voir le [guide Obtenir des tokens SPL](/docs/fr/das/get-tokens). Les mêmes méthodes `getAsset` et `getAssetsByOwner` servent à la fois les NFTs et les tokens; cette page se concentre sur les workflows des NFTs et des collectibles.

## Quand utiliser cela

Utilisez les méthodes de cette page lorsque vous :

* Affichez les métadonnées, l'image et les attributs d'un seul NFT
* Listez chaque NFT qu'un portefeuille possède pour un portfolio ou une galerie
* Alimentez une marketplace ou un explorateur avec des requêtes de collection et de créateur
* Vérifiez ou transférez des NFTs compressés (qui nécessitent des preuves de Merkle)
* Montrez l'historique des transactions on-chain d'un NFT
* Listez les éditions imprimées à partir d'un NFT maître

## Méthodes NFT

Commencez avec `getAsset` pour un seul NFT ou `getAssetsByOwner` pour la collection d'un portefeuille. Chaque carte est liée à sa référence complète d'API.

<CardGroup cols={2}>
  <Card title="getAsset" icon="image" href="/docs/fr/api-reference/das/getasset">
    Données complètes pour un NFT par son ID.
  </Card>

  <Card title="getAssetsByOwner" icon="wallet" href="/docs/fr/api-reference/das/getassetsbyowner">
    Tous les NFTs détenus par un portefeuille.
  </Card>

  <Card title="searchAssets" icon="magnifying-glass" href="/docs/fr/das/search">
    Filtrez par collection, créateur, attributs, et plus encore — voir le guide Rechercher des actifs.
  </Card>

  <Card title="getAssetsByCreator" icon="user" href="/docs/fr/api-reference/das/getassetsbycreator">
    Tous les actifs mintés par un créateur.
  </Card>

  <Card title="getAssetsByGroup" icon="layer-group" href="/docs/fr/api-reference/das/getassetsbygroup">
    Tous les actifs d'une collection.
  </Card>

  <Card title="getSignaturesForAsset" icon="clock-rotate-left" href="/docs/fr/api-reference/das/getsignaturesforasset">
    Historique des transactions pour un actif.
  </Card>

  <Card title="getNftEditions" icon="copy" href="/docs/fr/api-reference/das/getnfteditions">
    Éditions imprimées à partir d'un NFT maître.
  </Card>

  <Card title="getAssetProof" icon="shield-check" href="/docs/fr/api-reference/das/getassetproof">
    Preuve de Merkle pour un NFT compressé.
  </Card>
</CardGroup>

### Récupérer un seul NFT

Récupérez les métadonnées complètes, la propriété, et les données de collection pour un NFT par son ID :

```typescript theme={"system"}
const response = await fetch('https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: '1',
    method: 'getAsset',
    params: { id: 'F9Lw3ki3hJ7PF9HQXsBzoY8GyE6sPoEZZdXJBsTTD2rk' },
  }),
});

const { result } = await response.json();
console.log(result.content.metadata.name, result.ownership.owner);
```

### Plus de requêtes NFT

<AccordionGroup>
  <Accordion title="Lister les NFTs d'un portefeuille — getAssetsByOwner">
    ```typescript theme={"system"}
    const getNFTsByOwner = async (ownerAddress) => {
      const response = await fetch('https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({
          jsonrpc: '2.0',
          id: '1',
          method: 'getAssetsByOwner',
          params: { ownerAddress, page: 1, limit: 10 },
        }),
      });

      const { result } = await response.json();
      return result;
    };

    getNFTsByOwner('86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY');
    ```
  </Accordion>

  <Accordion title="Par créateur — getAssetsByCreator">
    ```typescript theme={"system"}
    const getAssetsByCreator = async (creatorAddress) => {
      const response = await fetch('https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({
          jsonrpc: '2.0',
          id: '1',
          method: 'getAssetsByCreator',
          params: { creatorAddress, page: 1, limit: 100 },
        }),
      });

      const { result } = await response.json();
      return result;
    };

    getAssetsByCreator('9uBX3ASjxWvNBAD1xjbVaKA74mWGZys3RGSF7DdeDD3F');
    ```
  </Accordion>

  <Accordion title="Par collection — getAssetsByGroup">
    ```typescript theme={"system"}
    const getAssetsByCollection = async (collectionAddress) => {
      const response = await fetch('https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({
          jsonrpc: '2.0',
          id: '1',
          method: 'getAssetsByGroup',
          params: { groupKey: 'collection', groupValue: collectionAddress, page: 1, limit: 100 },
        }),
      });

      const { result } = await response.json();
      return result;
    };

    getAssetsByCollection('J1S9H3QjnRtBbbuD4HjPV6RpRhwuk4zKbxsnCHuTgh9w');
    ```
  </Accordion>

  <Accordion title="Historique des transactions — getSignaturesForAsset">
    ```typescript theme={"system"}
    const getNFTTransactionHistory = async (mintAddress) => {
      const response = await fetch('https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({
          jsonrpc: '2.0',
          id: '1',
          method: 'getSignaturesForAsset',
          params: { id: mintAddress, page: 1, limit: 100 },
        }),
      });

      const { result } = await response.json();
      return result;
    };

    getNFTTransactionHistory('FNt6A9Mfnqbwc1tY7uwAguKQ1JcpBrxmhczDgbdJy5AC');
    ```
  </Accordion>
</AccordionGroup>

## NFTs compressés

Les NFTs compressés (cNFTs) sont **lus** avec les mêmes méthodes que les NFTs réguliers — `getAsset`, `getAssetsByOwner`, et `searchAssets` les renvoient tous. Deux éléments sont spécifiques à la compression :

* **Preuves de Merkle** — les opérations on-chain telles que les transferts et les destructions nécessitent une preuve de `getAssetProof`.
* **Historique** — utilisez `getSignaturesForAsset` (montré ci-dessus) pour l'historique des transactions d'un cNFT.

<Accordion title="Obtenir une preuve de Merkle — getAssetProof">
  ```typescript theme={"system"}
  const getProof = async (id) => {
    const response = await fetch('https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        jsonrpc: '2.0',
        id: '1',
        method: 'getAssetProof',
        params: { id },
      }),
    });

    const { result } = await response.json();
    return result; // { root, proof, node_index, leaf, tree_id }
  };

  getProof('Bu1DEKeawy7txbnCEJE4BU3BKLXaNAKCYcHR4XhndGss');
  ```
</Accordion>

## Meilleures pratiques

* Utilisez [la pagination](/docs/fr/das/pagination) pour les méthodes qui renvoient de grands ensembles de résultats.
* Traitez les erreurs avec try/catch et réessayez les échecs transitoires avec un backoff exponentiel.
* Mettez en cache les réponses lorsque cela est approprié pour réduire les appels API.
* Utilisez `getAssetBatch` au lieu de nombreuses appels simples `getAsset` lorsque vous avez plusieurs IDs.

## Prochaines étapes

<CardGroup cols={3}>
  <Card title="Obtenir des tokens SPL" icon="coins" href="/docs/fr/das/get-tokens">
    Soldes, offre, détenteurs, et prix des tokens fongibles.
  </Card>

  <Card title="Rechercher des actifs" icon="magnifying-glass" href="/docs/fr/das/search">
    Filtrer les NFTs par collection, créateur, et attributs.
  </Card>

  <Card title="FAQ de l'API DAS" icon="book" href="/docs/fr/faqs/das-api">
    Questions courantes sur les actifs, les données de prix et l'utilisation.
  </Card>
</CardGroup>
