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

# searchAssets

> Поиск NFT, сжатых NFT и токенов Solana по владельцу, создателю, коллекции, интерфейсу, сжатию, роялти и другим признакам с помощью DAS searchAssets в OrbitFlare.

## Обзор

`searchAssets` объединяет фильтры в одном запросе. Используйте его, когда ни один отдельный метод `getAssetsBy*` не подходит, например для запроса «сжатые NFT из этой коллекции, принадлежащие этому кошельку» или «взаимозаменяемые токены, которые хранит этот кошелёк».

По умолчанию должен совпасть каждый фильтр (`conditionType: "all"`). Задайте `conditionType: "any"`, чтобы найти активы, удовлетворяющие хотя бы одному фильтру, и `negate: true`, чтобы инвертировать результат.

## Параметры

### Фильтры

<ResponseField name="ownerAddress" type="string">
  Кошелёк владельца (base-58).
</ResponseField>

<ResponseField name="creatorAddress" type="string">
  Адрес создателя (base-58).
</ResponseField>

<ResponseField name="creatorVerified" type="boolean">
  Вместе с `creatorAddress` находить только верифицированных создателей.
</ResponseField>

<ResponseField name="authorityAddress" type="string">
  Адрес полномочия (base-58).
</ResponseField>

<ResponseField name="grouping" type="[string, string]">
  Ключ и значение группы, например `["collection", "J1S9H3QjnRtBbbuD4HjPV6RpRhwuk4zKbxsnCHuTgh9w"]`.
</ResponseField>

<ResponseField name="delegate" type="string">
  Адрес делегата (base-58).
</ResponseField>

<ResponseField name="interface" type="string">
  Интерфейс актива, например `V1_NFT`, `ProgrammableNFT`, `MplCoreAsset` или `FungibleToken`. Полный список см. в разделе [Объект актива](/ru/das-api/asset-object).
</ResponseField>

<ResponseField name="tokenType" type="string">
  `fungible`, `nonFungible`, `regularNFT`, `compressedNFT` или `all`.
</ResponseField>

<ResponseField name="ownerType" type="string">
  `single` (NFT) или `token` (взаимозаменяемые токены).
</ResponseField>

<ResponseField name="compressed" type="boolean">
  Находить сжатые или несжатые активы.
</ResponseField>

<ResponseField name="compressible" type="boolean">
  Находить активы, которые можно сжать.
</ResponseField>

<ResponseField name="frozen" type="boolean">
  Находить замороженные или незамороженные активы.
</ResponseField>

<ResponseField name="burnt" type="boolean">
  Находить сожжённые или действующие активы.
</ResponseField>

<ResponseField name="supply" type="number">
  Находить по точному значению предложения.
</ResponseField>

<ResponseField name="supplyMint" type="string">
  Находить по минту предложения (base-58).
</ResponseField>

<ResponseField name="royaltyTargetType" type="string">
  `creators`, `fanout` или `single`.
</ResponseField>

<ResponseField name="royaltyTarget" type="string">
  Адрес получателя роялти (base-58).
</ResponseField>

<ResponseField name="royaltyAmount" type="number">
  Роялти в базисных пунктах.
</ResponseField>

<ResponseField name="jsonUri" type="string">
  Точный URI JSON-метаданных.
</ResponseField>

<ResponseField name="name" type="string">
  Название актива. Требует `ownerAddress`.
</ResponseField>

### Логика

<ResponseField name="conditionType" type="string">
  `all` (по умолчанию) или `any`.
</ResponseField>

<ResponseField name="negate" type="boolean">
  Возвращать активы, которые не соответствуют условиям.
</ResponseField>

### Пагинация и вывод

<ResponseField name="page" type="number">
  Номер страницы, начиная с 1. См. [Пагинация](/ru/das-api/pagination).
</ResponseField>

<ResponseField name="limit" type="number">
  Количество результатов на странице. Максимум и значение по умолчанию: 1 000.
</ResponseField>

<ResponseField name="cursor" type="string">
  Курсор из предыдущего ответа.
</ResponseField>

<ResponseField name="before" type="string">
  Вернуть активы с ID до указанного.
</ResponseField>

<ResponseField name="after" type="string">
  Вернуть активы с ID после указанного.
</ResponseField>

<ResponseField name="sortBy" type="object">
  `{ "sortBy": "id" | "created" | "updated" | "recent_action" | "none", "sortDirection": "asc" | "desc" }`
</ResponseField>

<ResponseField name="options" type="object">
  [Параметры отображения](/ru/das-api/display-options): `showNativeBalance` (с `ownerAddress`), `showUnverifiedCollections`, `showCollectionMetadata`, `showInscription`. Также принимается как `displayOptions`.
</ResponseField>

## Ответ

Список с `last_indexed_slot`, `total`, `limit`, `page` или `cursor`, `items` ([объекты активов](/ru/das-api/asset-object)) и, при `showNativeBalance`, `nativeBalance`.

## Примеры кода

### Действующие NFT в коллекции

```bash theme={"theme":{"light":"github-light","dark":"github-dark-default"}}
curl https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY -X POST -H "Content-Type: application/json" -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "searchAssets",
  "params": {
    "grouping": ["collection", "J1S9H3QjnRtBbbuD4HjPV6RpRhwuk4zKbxsnCHuTgh9w"],
    "burnt": false,
    "page": 1,
    "limit": 1
  }
}'
```

```json theme={"theme":{"light":"github-light","dark":"github-dark-default"}}
{
  "jsonrpc": "2.0",
  "result": {
    "last_indexed_slot": 457714710,
    "total": 1,
    "limit": 1,
    "page": 1,
    "items": [
      {
        "interface": "ProgrammableNFT",
        "id": "JEGruwYE13mhX2wi2MGrPmeLiVyZtbBptmVy9vG3pXRC",
        "content": {
          "metadata": { "name": "Mad Lads #6867", "symbol": "MAD" }
        },
        "burnt": false
      }
    ]
  },
  "id": 1
}
```

### Взаимозаменяемые токены в кошельке

```bash theme={"theme":{"light":"github-light","dark":"github-dark-default"}}
curl https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY -X POST -H "Content-Type: application/json" -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "searchAssets",
  "params": {
    "ownerAddress": "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
    "tokenType": "fungible",
    "page": 1,
    "limit": 100,
    "options": { "showNativeBalance": true }
  }
}'
```

### Сжатые NFT из одной коллекции в кошельке

```typescript theme={"theme":{"light":"github-light","dark":"github-dark-default"}}
const RPC_URL = 'https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY';

const response = await fetch(RPC_URL, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'searchAssets',
    params: {
      ownerAddress: '86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY',
      grouping: ['collection', 'DRiP3vrQ7LuvQtmwL74RcejviWmQ1HuuKFcJdUpYG6Di'],
      compressed: true,
      page: 1,
      limit: 1000,
    },
  }),
});
const { result } = await response.json();
console.log(`${result.items.length} compressed DRiP NFTs`);
```

## Распространённые ошибки

| Код | Сообщение | Решение |
| - | - | - |
| -32602 | Owner address must be provided in order to search assets by name | Добавьте `ownerAddress` при фильтрации по `name` |
| -32602 | Validation Error: Invalid pubkey ... | Убедитесь, что каждый фильтр по адресу содержит действительное значение base-58 |
| -32602 | unknown field | Проверьте названия параметров; фильтры записываются в camelCase |
| -32602 | Pagination Sorting Error | Курсорам и диапазонам требуется `sortBy: "id"`; для других видов сортировки используйте `page` |


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