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

# Solanaアセット検索: NFT、トークン、圧縮アセットを探す

> searchAssetsエンドポイントを使用して、Solana上のNFT、圧縮アセット、及び代替可能トークンを高度なフィルタリング、並べ替え、ページネーションで発見します。

## 概要

`searchAssets` は、DAS APIで最も柔軟な読み取りメソッドです。所有者、コレクションのグループ化、トークンタイプ、属性の組み合わせに一致するアセットを1回のページネーションされたコールで返します。単一のアセット以上または所有者ごとの単純なリストが必要なときに使用します。

`tokenType` はオプションです。省略された場合、`searchAssets` は通常のNFTと圧縮NFTのみを返し、代替可能トークンは含まれません。代替可能トークンを含めるには、`tokenType` を設定します（例えば、`"fungible"` または `"all"`）。受け入れられる値は、`fungible`、`nonFungible`、`regularNft`、`compressedNft`、`all` です。

## いつ使用するか

次の場合に `searchAssets` を使用します:

* ウォレットのアセットを代替可能トークンまたはNFTにフィルタリングする
* 特定のコレクション内でウォレットが所有するアセットをリストする
* 大量の圧縮NFTを発見する
* カーソルページネーションで大きな結果セットに無限スクロールを構築する
* エージェントステータスまたは署名者でMPL Coreアセットをフィルタリングする

単一のアセットには[`getAsset`](/ja/api-reference/das/getasset)を、単純なウォレットリストには[`getAssetsByOwner`](/ja/api-reference/das/getassetsbyowner)を使用します。

<Card title="APIリファレンス" horizontal icon="code" href="/ja/api-reference/das/searchassets">
  searchAssetsの詳細なドキュメントを表示
</Card>

## クイックスタート

```typescript theme={"system"}
// Replace YOUR_API_KEY with your Helius API key
const url = `https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY`;

async function searchAssets(params) {
  const body = {
    jsonrpc: "2.0",
    id: "search-assets-example",
    method: "searchAssets",
    params,
  };
  const res = await fetch(url, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(body),
  });
  if (!res.ok) {
    throw new Error(`${res.status} ${res.statusText}`);
  }
  const { result } = await res.json();
  return result;
}

// Example: fetch first 50 compressed NFTs in a wallet
searchAssets({
  ownerAddress: "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
  tokenType: "compressedNft",
  limit: 50,
}).then(console.log);
```

## トークンタイプの選択

`tokenType` はオプションで、レスポンスに現れる**資産の種類**を指定します。省略された場合、`searchAssets` は通常および圧縮NFTのみを返します。代替可能トークンを含めるには、`tokenType` を設定します。

<ParamField body="tokenType" type="string">
  受け入れられる値: `fungible`、`nonFungible`、`regularNft`、`compressedNft`、`all`。省略時は通常および圧縮NFTがデフォルトです。
</ParamField>

| tokenType       | 得られるもの               | 一般的な使用ケース          |
| --------------- | -------------------- | ------------------ |
| `fungible`      | SPLとToken-2022トークンのみ | ウォレット残高、トークンゲーティング |
| `nonFungible`   | 全てのNFT（圧縮と通常）        | ポートフォリオの概要         |
| `regularNft`    | レガシーとpNFT（非圧縮）       | マーケットプレイスのリスト      |
| `compressedNft` | cNFTのみ               | 非常に安価な大量ミント        |
| `all`           | すべて（トークンとNFT）        | 包括的な発見             |

## ページネーションとソート

Solanaウォレットは数千のアセットを所有できるため、効率的なページ処理が重要です:

* **Page / limit** — クラシックなページネーション (`page` は**1**から始まります)。静的ビューに適しています。
* **Cursor** — 以前のレスポンスから`before`または`after`を渡して、迅速な無限スクロールを実現します。

```json5 sortBy theme={"system"}
"sortBy": {
  "sortBy": "created",      // created | recent_action | updated | none
  "sortDirection": "desc"   // asc | desc
}
```

完全なページ/リミットとカーソル戦略、並列キーセットクエリを含む詳細は[ページネーションガイド](/ja/das/pagination)を参照してください。

## 表示オプション

これらのフラグは**メタデータを追加**します; アセットの返却には影響しません。

| フラグ                      | 効果                   |
| ------------------------ | -------------------- |
| `showNativeBalance`      | ウォレットのSOL残高を含める      |
| `showCollectionMetadata` | コレクションレベルのJSONデータを追加 |
| `showGrandTotal`         | 合計一致件数を返す（遅くなります）    |

```json5 options theme={"system"}
"options": {
  "showNativeBalance": true,
  "showCollectionMetadata": true,
  "showGrandTotal": true
}
```

## MPL Coreエージェント、アセットサイナー、およびMIP-11グループ

MPL Coreアセットは、**エージェントの身元**および**アセットサイナー**のメタデータを公開することができ、アセットまたはコレクションはグループメンバーシップを説明する\*\*`groups`プラグイン\*\*（MIP-11）を含むことがあります。同じオプションフィールドは、すべてのアセット返却DASメソッド（`getAsset`、`getAssetBatch`、`getAssetsByOwner`、`getAssetsByGroup`、`getAssetsByCreator`、`getAssetsByAuthority`、および`searchAssets`の各項目）で表示されます。

エージェントステータスまたはアドレスでフィルタリングするには、`searchAssets`を使用します:

| パラメータ         | タイプ     | 目的                          |
| ------------- | ------- | --------------------------- |
| `isAgent`     | boolean | エージェントアイデンティティを持つアセットのみ     |
| `agentToken`  | string  | エージェントトークンミント(base58)にマッチする |
| `assetSigner` | string  | アセットサイナーPDA(base58)にマッチします  |

MPL Core固有の発見には、`interface`を`MplCoreAsset`、`MplCoreCollection`、または`MplCoreGroup`に設定することもできます。

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "searchAssets",
  "params": {
    "ownerAddress": "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
    "tokenType": "all",
    "isAgent": true,
    "page": 1,
    "limit": 10
  }
}
```

レスポンスフィールド`is_agent`、`agent_token`、`asset_signer`は**該当しないときは省略されます**（例えば、`is_agent`がfalseのときに省略されます）。完全なスキーマについては[searchAssets APIリファレンス](/ja/api-reference/das/searchassets)を参照してください。

## 例

最初の例は、完全な`fetch`ラッパーを示しています。残りの例は同じパターンに従い折りたたまれています — リクエストボディを展開してください。

### ウォレット内のすべての代替可能トークンを検索する

```typescript theme={"system"}
const url = `https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY`

const searchAssets = async () => {
  const response = await fetch(url, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      jsonrpc: '2.0',
      id: 'my-id',
      method: 'searchAssets',
      params: {
        ownerAddress: '86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY',
        tokenType: 'fungible',
      },
    }),
  });
  const { result } = await response.json();
  console.log("Search Assets: ", result);
};
searchAssets();
```

<Accordion title="ネイティブバランスとトークン情報を持つ代替可能トークンを検索">
  ```typescript theme={"system"}
  const url = `https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY`

  const searchAssetsTokenInfo = async () => {
      const response = await fetch(url, {
          method: 'POST',
          headers: {
              'Content-Type': 'application/json',
          },
          body: JSON.stringify({
              jsonrpc: '2.0',
              id: 'my-id',
              method: 'searchAssets',
              params: {
                  ownerAddress: '86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY',
                  tokenType: 'fungible',
                  options: {
                      showNativeBalance: true,
                  },
              },
          }),
      });

      const { result } = await response.json();

      result.items.forEach(item => {
        console.log(item.token_info);
      });

      console.log("Native Balance: ", result.nativeBalance);
  };

  searchAssetsTokenInfo();
  ```
</Accordion>

<Accordion title="vibhu.solが所有するDrip NFTを検索">
  ```typescript theme={"system"}
  const url = `https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY`

  const searchAssetsDrip = async () => {
    const response = await fetch(url, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        jsonrpc: '2.0',
        id: 'my-id',
        method: 'searchAssets',
        params: {
          ownerAddress: 'BAVjpySHMMGDpq3whU7qaqCCRE8ksCeGwxa53Qv2i8jS',
          grouping: ["collection", "DRiP2Pn2K6fuMLKQmt5rZWyHiUZ6WK3GChEySUpHSS4x"],
          page: 1,
          limit: 1000
        },
      }),
    });
    const { result } = await response.json();
    console.log("Drip Haus Assets: ", result);
  };
  searchAssetsDrip();
  ```
</Accordion>

<Accordion title="ウォレット内の圧縮アセットを検索">
  ```typescript theme={"system"}
  const url = `https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY`

  const searchAssetsCompressed = async () => {
    const response = await fetch(url, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        jsonrpc: '2.0',
        id: 'my-id',
        method: 'searchAssets',
        params: {
          ownerAddress: '2k5AXX4guW9XwRQ1AKCpAuUqgWDpQpwFfpVFh3hnm2Ha',
          compressed: true,
        },
      }),
    });
    const { result } = await response.json();
    console.log("Search Assets: ", result);
  };
  searchAssetsCompressed();
  ```
</Accordion>

## 次のステップ

<CardGroup cols={3}>
  <Card title="ページネーション" icon="list" href="/ja/das/pagination">
    大規模な結果セットのためのページベースとキーセットページネーション。
  </Card>

  <Card title="代替可能トークン拡張" icon="coins" href="/ja/das/fungible-token-extension">
    tokenType、残高、価格が結果にどのように表示されるか。
  </Card>

  <Card title="searchAssetsリファレンス" icon="code" href="/ja/api-reference/das/searchassets">
    完全なリクエストとレスポンスのスキーマ。
  </Card>
</CardGroup>
