> For the complete documentation index, see [llms.txt](https://docs.chiliz.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chiliz.com/fr/developper/notions-avancees/travailler-avec-les-nfts/heberger-votre-nft-sur-ipfs.md).

# Héberger votre NFT sur IPFS

Si vous ne le savez pas encore, posséder un NFT ne signifie pas que le fichier du NFT est téléversé tel quel sur la blockchain.\
Au contraire, un NFT correspond à un bloc de blockchain qui contient un certain token. Ce token stocke un "pointeur" ou lien, appelé `tokenURI`, qui contient l'adresse en ligne d'un fichier de métadonnées, lequel référence lui-même le fichier multimédia en utilisant un autre URI.

En raison de la nature pair à pair de la blockchain, vous ne pouvez pas simplement héberger votre fichier NFT et son fichier de métadonnées sur n'importe quel service d'hébergement web. Votre `tokenURI` doit rester permanent (ou "immuable") et portable entre les applications et les marketplaces, aussi longtemps que possible, éventuellement pour toujours.

C'est là qu'intervient IPFS.

## **À propos d'IPFS**

[IPFS](https://ipfs.tech/), pour InterPlanetary File System (Système de Fichiers InterPlanétaire), est un réseau de fichiers décentralisé qui a pour but d'héberger et de partager des données sur des réseaux distribués. Les plateformes NFT peuvent récupérer des données depuis IPFS au lieu de dépendre d'un seul serveur, et le protocole IPFS donne l'impression que tous les fichiers hébergés sont locaux.

{% hint style="success" %}
**Dois-je apprendre IPFS maintenant ?**

Cela dépend de la méthode choisie pour minter votre NFT :

* En utilisant du code vanilla (tel que [viem](https://viem.sh/) ou [ethers](https://ethers.org/)) :\
  **Oui**, vous avez besoin d'un `tokenURI` valide (par exemple, `ipfs://.../metadata.json`) au préalable.
* Via un tableau de bord comme [thirdweb](https://thirdweb.com/) :\
  **Non**. Le téléversement sur IPFS est intégré. Vous pouvez toujours coller un `ipfs://...` existant si vous en avez un dans les paramètres NFT.
* En utilisant la plupart des SDKs Web3 (comme le [Multichain SDK de Rarible](https://docs.rarible.org/reference/getting-started)) :\
  **Oui**, ils attendront un URI. Certains outils peuvent aider avec les téléversements, mais pas la plupart.
  {% endhint %}

Le site IPFS propose [une page détaillée sur les bonnes pratiques de stockage NFT](https://docs.ipfs.tech/how-to/best-practices-for-nft-data/#types-of-ipfs-links-and-when-to-use-them).

## Détails du téléversement NFT

Lors du téléversement de votre NFT, vous devez effectuer deux téléversements vers le Content Identifier (CID) qu'IPFS génère pour vous :

* Le contenu lui-même, pour lequel IPFS retourne une URL IPFS pour le fichier hébergé.
* Le fichier de métadonnées, qui référence le CID du fichier multimédia, et doit contenir l'URL IPFS du fichier.

Les deux doivent être téléversés sur IPFS sous le même CID.

Idéalement, votre ensemble d'outils prend cela en charge afin que vous n'ayez pas à tout faire manuellement.

À titre d'information, voici à quoi ressemblerait un fichier `metadata.json` minimal :

```json
{ 
    "name": "Stadium Pass #25456456", 
    "description": "PSG supporter entry ticket", 
    "image": "ipfs:///filename.png",           // pour les images statiques uniquement !
    // "animation_url": "ipfs:///filename.mp4" // pour les fichiers vidéo et audio.
    "attributes": [
    { 
        "trait_type": "Tier", 
        "value": "Gold" 
    }] 
}
```

Pour en savoir plus sur la structure des métadonnées NFT (par exemple, pourquoi vous devriez utiliser `image` pour les images et `animation_url` pour les vidéos), nous vous conseillons de lire ce document d'OpenSea :

{% embed url="<https://docs.opensea.io/docs/metadata-standards#metadata-structure>" %}

Note : *Vous n'êtes pas censé écrire le fichier de métadonnées from scratch !*\
Votre ensemble d'outils devrait être capable de le générer pour vous.

{% hint style="success" %}
Vous pouvez soit [exécuter votre propre nœud IPFS](https://docs.ipfs.tech/how-to/command-line-quick-start/), soit payer un hébergeur IPFS, tel que [Pinata](https://pinata.cloud/), qui propose un plan tarifaire gratuit qui pourrait être suffisant pour vos besoins.

Suivez [le guide de démarrage rapide de Pinata](https://docs.pinata.cloud/quickstart) pour obtenir vos identifiants API (composés d'une clé API, d'un secret API et d'un token JWT) et votre domaine Dedicated Gateway (par exemple, `blue-genetic-quail-122.mypinata.cloud`).
{% endhint %}

Cette documentation n'ayant pas pour but de tout décrire sur IPFS, nous vous conseillons d'approfondir le sujet via des recherches en ligne. Vous pouvez commencer par ce guide explicatif de Pinata :

{% embed url="<https://docs.pinata.cloud/ipfs-101/how-does-ipfs-work-with-nfts>" %}

... ou ce billet de blog de thirdweb :

{% embed url="<https://blog.thirdweb.com/guides/securing-pinning-your-nft-with-ipfs/>" %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.chiliz.com/fr/developper/notions-avancees/travailler-avec-les-nfts/heberger-votre-nft-sur-ipfs.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
