> ## 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.

# Como Obter NFTs Solana: Ativos, Coleções e Provas

> Recupere e consulte NFTs Solana, NFTs comprimidos, edições e provas usando a Helius DAS API. Guia completo com exemplos de código e melhores práticas.

## Visão Geral

Este guia abrange a leitura de NFTs e colecionáveis digitais com a Helius Digital Asset Standard (DAS) API: buscar um único ativo, listar NFTs de uma carteira, consultar por coleção ou criador, trabalhar com NFTs comprimidos e provas de Merkle, listar edições e ler o histórico de transações.

Para tokens fungíveis — saldos, suprimento, detentores e preços — veja o [Guia de Obtenção de Tokens SPL](/docs/pt-BR/das/get-tokens). Os mesmos métodos `getAsset` e `getAssetsByOwner` servem tanto para NFTs quanto para tokens; esta página se concentra nos fluxos de trabalho de NFTs e colecionáveis.

## Quando usar isto

Use os métodos nesta página quando você estiver:

* Exibindo os metadados, imagem e atributos de um único NFT
* Listando todos os NFTs que uma carteira possui para um portfólio ou galeria
* Fornecendo um marketplace ou explorador com consultas de coleção e criador
* Verificando ou transferindo NFTs comprimidos (que requerem provas de Merkle)
* Mostrando o histórico de transações on-chain de um NFT
* Listando as edições impressas a partir de um NFT mestre

## Métodos de NFT

Comece com `getAsset` para um único NFT ou `getAssetsByOwner` para a coleção de uma carteira. Cada cartão se liga à sua referência completa da API.

<CardGroup cols={2}>
  <Card title="getAsset" icon="image" href="/docs/pt-BR/api-reference/das/getasset">
    Dados completos de um NFT por seu ID.
  </Card>

  <Card title="getAssetsByOwner" icon="wallet" href="/docs/pt-BR/api-reference/das/getassetsbyowner">
    Todos os NFTs mantidos por uma carteira.
  </Card>

  <Card title="searchAssets" icon="magnifying-glass" href="/docs/pt-BR/das/search">
    Filtrar por coleção, criador, atributos e mais — veja o Guia de Busca de Ativos.
  </Card>

  <Card title="getAssetsByCreator" icon="user" href="/docs/pt-BR/api-reference/das/getassetsbycreator">
    Todos os ativos cunhados por um criador.
  </Card>

  <Card title="getAssetsByGroup" icon="layer-group" href="/docs/pt-BR/api-reference/das/getassetsbygroup">
    Todos os ativos em uma coleção.
  </Card>

  <Card title="getSignaturesForAsset" icon="clock-rotate-left" href="/docs/pt-BR/api-reference/das/getsignaturesforasset">
    Histórico de transações para um ativo.
  </Card>

  <Card title="getNftEditions" icon="copy" href="/docs/pt-BR/api-reference/das/getnfteditions">
    Edições impressas de um NFT mestre.
  </Card>

  <Card title="getAssetProof" icon="shield-check" href="/docs/pt-BR/api-reference/das/getassetproof">
    Prova de Merkle para um NFT comprimido.
  </Card>
</CardGroup>

### Buscar um único NFT

Recupere metadados completos, dados de propriedade e coleção para um NFT por seu 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);
```

### Mais consultas de NFT

<AccordionGroup>
  <Accordion title="Listar NFTs de uma carteira — 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="Por criador — 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="Por coleção — 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="Histórico de transações — 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 Comprimidos

NFTs comprimidos por estado (cNFTs) são **lidos** com os mesmos métodos que NFTs regulares — `getAsset`, `getAssetsByOwner`, e `searchAssets` os retornam. Duas coisas são específicas para a compressão:

* **Provas de Merkle** — operações on-chain, como transferências e queimas, requerem uma prova de `getAssetProof`.
* **Histórico** — use `getSignaturesForAsset` (mostrado acima) para o histórico de transações de um cNFT.

<Accordion title="Obter uma prova 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>

## Melhores práticas

* Use [paginaçao](/docs/pt-BR/das/pagination) para métodos que retornam conjuntos de resultados grandes.
* Lide com erros usando try/catch e replique falhas transitórias com backoff exponencial.
* Cacheie respostas quando apropriado para reduzir chamadas à API.
* Use `getAssetBatch` em vez de muitas chamadas individuais de `getAsset` quando você tiver múltiplos IDs.

## Próximas etapas

<CardGroup cols={3}>
  <Card title="Obter Tokens SPL" icon="coins" href="/docs/pt-BR/das/get-tokens">
    Saldos de tokens fungíveis, suprimento, detentores e preços.
  </Card>

  <Card title="Buscar Ativos" icon="magnifying-glass" href="/docs/pt-BR/das/search">
    Filtrar NFTs por coleção, criador e atributos.
  </Card>

  <Card title="FAQs da DAS API" icon="book" href="/docs/pt-BR/faqs/das-api">
    Perguntas comuns sobre ativos, dados de preço e uso.
  </Card>
</CardGroup>
