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

# Как получить NFT в Solana: активы, коллекции и доказательства

> Получайте и запрашивайте NFT в Solana, сжатые NFT, издания и доказательства с помощью Helius DAS API. Полное руководство с примерами кода и рекомендациями.

## Обзор

В этом руководстве описано чтение NFT и цифровых коллекционных объектов с помощью Helius Digital Asset Standard (DAS) API: получение отдельного актива, списка NFT кошелька, поиск по коллекции или создателю, работа со сжатыми NFT и доказательствами Меркла, получение списка изданий и чтение истории транзакций.

Информацию о взаимозаменяемых токенах — балансах, предложении, держателях и ценах — см. в [руководстве по получению SPL-токенов](/docs/ru/das/get-tokens). Методы `getAsset` и `getAssetsByOwner` работают как с NFT, так и с токенами. Эта страница посвящена процессам работы с NFT и коллекционными объектами.

## Когда это использовать

Используйте методы на этой странице, когда вам нужно:

* Отобразить метаданные, изображение и атрибуты отдельного NFT
* Получить список всех NFT, принадлежащих кошельку, для портфеля или галереи
* Реализовать поиск по коллекции и создателю для маркетплейса или обозревателя
* Проверить или передать сжатые NFT, для которых требуются доказательства Меркла
* Показать историю транзакций NFT в блокчейне
* Получить список изданий, выпущенных из мастер-NFT

## Методы для работы с NFT

Начните с `getAsset` для отдельного NFT или с `getAssetsByOwner` для коллекции кошелька. Каждая карточка содержит ссылку на полную справку по API.

<CardGroup cols={2}>
  <Card title="getAsset" icon="image" href="/docs/ru/api-reference/das/getasset">
    Полные данные об одном NFT по его идентификатору.
  </Card>

  <Card title="getAssetsByOwner" icon="wallet" href="/docs/ru/api-reference/das/getassetsbyowner">
    Все NFT, хранящиеся в кошельке.
  </Card>

  <Card title="searchAssets" icon="magnifying-glass" href="/docs/ru/das/search">
    Фильтрация по коллекции, создателю, атрибутам и другим параметрам — см. руководство по поиску активов.
  </Card>

  <Card title="getAssetsByCreator" icon="user" href="/docs/ru/api-reference/das/getassetsbycreator">
    Все активы, выпущенные создателем.
  </Card>

  <Card title="getAssetsByGroup" icon="layer-group" href="/docs/ru/api-reference/das/getassetsbygroup">
    Все активы в коллекции.
  </Card>

  <Card title="getSignaturesForAsset" icon="clock-rotate-left" href="/docs/ru/api-reference/das/getsignaturesforasset">
    История транзакций актива.
  </Card>

  <Card title="getNftEditions" icon="copy" href="/docs/ru/api-reference/das/getnfteditions">
    Издания, выпущенные из мастер-NFT.
  </Card>

  <Card title="getAssetProof" icon="shield-check" href="/docs/ru/api-reference/das/getassetproof">
    Доказательство Меркла для сжатого NFT.
  </Card>
</CardGroup>

### Получение отдельного NFT

Получите полные метаданные, сведения о владельце и данные коллекции для одного NFT по его идентификатору:

```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);
```

### Другие запросы NFT

<AccordionGroup>
  <Accordion title="List a wallet's NFTs — 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="By creator — 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="By 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="Transaction history — 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>

## Сжатые NFT

NFT со сжатым состоянием (cNFT) **читаются** теми же методами, что и обычные NFT: `getAsset`, `getAssetsByOwner` и `searchAssets` также возвращают их. Со сжатием связаны две особенности:

* **Доказательства Меркла** — для операций в блокчейне, таких как передача и сжигание, требуется доказательство из `getAssetProof`.
* **История** — используйте `getSignaturesForAsset`, показанный выше, чтобы получить историю транзакций cNFT.

<Accordion title="Get a Merkle proof — 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>

## Рекомендации

* Используйте [пагинацию](/docs/ru/das/pagination) для методов, возвращающих большие наборы результатов.
* Обрабатывайте ошибки с помощью try/catch и повторяйте запросы при временных сбоях, применяя экспоненциальную задержку.
* При необходимости кешируйте ответы, чтобы сократить количество вызовов API.
* Если у вас несколько идентификаторов, используйте `getAssetBatch` вместо множества отдельных вызовов `getAsset`.

## Следующие шаги

<CardGroup cols={3}>
  <Card title="Get SPL Tokens" icon="coins" href="/docs/ru/das/get-tokens">
    Балансы взаимозаменяемых токенов, предложение, держатели и цены.
  </Card>

  <Card title="Search Assets" icon="magnifying-glass" href="/docs/ru/das/search">
    Фильтрация NFT по коллекции, создателю и атрибутам.
  </Card>

  <Card title="DAS API FAQ" icon="book" href="/docs/ru/faqs/das-api">
    Часто задаваемые вопросы об активах, данных о ценах и использовании.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.