> 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/pt-br/desenvolver/avancado/trabalhar-com-nfts/hospedar-nft-ipfs.md).

# Hospedar seu NFT no IPFS

Se você ainda não sabe, ter um NFT não significa que o arquivo do NFT está carregado diretamente no blockchain.\
Em vez disso, um NFT corresponde a um bloco do blockchain que contém um certo token. Esse token armazena um "ponteiro" ou link, chamado `tokenURI`, que contém o endereço online de um arquivo de metadados, que por sua vez referencia o arquivo de mídia usando outro URI.

Devido à natureza peer-to-peer do blockchain, você não pode simplesmente hospedar seu arquivo NFT e seu arquivo de metadados em qualquer serviço de hospedagem web. Seu `tokenURI` precisa ser permanente (ou "imutável") e portátil entre apps e marketplaces, pelo maior tempo possível, talvez para sempre.

É aqui que o IPFS entra em cena.

## **Sobre o IPFS**

O [IPFS](https://ipfs.tech/), sigla para InterPlanetary File System, é uma rede de arquivos descentralizada que serve para hospedar e compartilhar dados em redes distribuídas. Plataformas NFT podem buscar dados do IPFS em vez de depender de um único servidor, e o protocolo IPFS faz com que pareça que todos os arquivos hospedados são locais.

{% hint style="success" %}
**Preciso aprender sobre o IPFS agora?**

Depende do método escolhido para mintar seu NFT:

* Usando código vanilla (como [viem](https://viem.sh/) ou [ethers](https://ethers.org/)):\
  **Sim**, você precisa de um `tokenURI` válido (ex.: `ipfs://.../metadata.json`) com antecedência.
* Por meio de um dashboard como o [thirdweb](https://thirdweb.com/):\
  **Não**. O upload para IPFS está integrado. Você ainda pode colar um `ipfs://...` existente se tiver um nos parâmetros do NFT.
* Usando a maioria dos SDKs Web3 (como o [Rarible Multichain SDK](https://docs.rarible.org/reference/getting-started)):\
  **Sim**, eles esperarão um URI. Algumas ferramentas podem ajudar com uploads, mas a maioria não.
  {% endhint %}

O site do IPFS tem [uma página extensa sobre melhores práticas de armazenamento de NFTs](https://docs.ipfs.tech/how-to/best-practices-for-nft-data/#types-of-ipfs-links-and-when-to-use-them).

## Detalhes do upload de NFT

Ao fazer o upload do seu NFT, você precisa realizar dois uploads para o Content Identifier (CID) que o IPFS gera para você:

* O conteúdo em si, para o qual o IPFS retorna uma URL IPFS para o arquivo hospedado.
* O arquivo de metadados, que referencia o CID do arquivo de mídia e deve conter a URL IPFS para o arquivo.

Ambos devem ser carregados no IPFS sob o mesmo CID.

Idealmente, seu conjunto de ferramentas cuida disso para que você não precise fazer tudo manualmente.

Para fins informativos, veja como seria um arquivo `metadata.json` mínimo:

```json
{ 
    "name": "Stadium Pass #25456456", 
    "description": "PSG supporter entry ticket", 
    "image": "ipfs:///filename.png",           // for static images only!
    // "animation_url": "ipfs:///filename.mp4" // for video and audio files.
    "attributes": [
    { 
        "trait_type": "Tier", 
        "value": "Gold" 
    }] 
}
```

Para saber mais sobre a estrutura de metadados de NFT (por exemplo, por que você deve usar `image` para imagens e `animation_url` para vídeos), recomendamos ler este documento da OpenSea:

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

Nota: *Você não deve escrever o arquivo de metadados do zero!*\
Seu conjunto de ferramentas deve ser capaz de gerá-lo para você.

{% hint style="success" %}
Você pode [executar seu próprio nó IPFS](https://docs.ipfs.tech/how-to/command-line-quick-start/) ou pagar por um serviço de hospedagem IPFS, como o [Pinata](https://pinata.cloud/), que oferece um plano gratuito que pode ser suficiente para suas necessidades.

Siga o [guia de início rápido da Pinata](https://docs.pinata.cloud/quickstart) para obter suas credenciais de API (composta de chave de API, segredo de API e token JWT) e seu domínio de Gateway Dedicado (por exemplo, `blue-genetic-quail-122.mypinata.cloud`).
{% endhint %}

Como esta documentação não pretende descrever tudo sobre o IPFS, recomendamos que você explore o tema por meio de pesquisas online. Você pode começar com este explicador da Pinata:

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

... ou este post do 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/pt-br/desenvolver/avancado/trabalhar-com-nfts/hospedar-nft-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.
