> ## 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を取得する方法: 資産、コレクション、証明書

> Helius DAS APIを使用してSolana NFT、圧縮NFT、エディション、証明書を取得し、クエリを行います。コード例とベストプラクティスを含む完全ガイド。

## 概要

このガイドでは、Helius Digital Asset Standard (DAS) APIを使用してNFTとデジタルコレクティブルを読み取る方法を説明します。単一の資産の取得、ウォレットのNFT一覧、コレクションまたはクリエイターによるクエリ、圧縮NFTとマークリ証明書の操作、エディションの一覧、トランザクション履歴の読み取りについて解説します。

代替トークン — 残高、供給量、保有者、価格 — については[Get SPL Tokens ガイド](/ja/das/get-tokens)を参照してください。同じ`getAsset`および`getAssetsByOwner`メソッドはNFTとトークンの両方に対応しており、このページはNFTとコレクティブルのワークフローに焦点を当てています。

## 使用時期

このページのメソッドを使用する場合:

* 単一のNFTのメタデータ、画像、属性を表示する場合
* ポートフォリオやギャラリーのためにウォレットが所有するすべてのNFTを一覧する場合
* コレクションおよびクリエイターのクエリでマーケットプレイスやエクスプローラーを動かす場合
* 圧縮NFTの検証や転送（マークリ証明が必要）
* NFTのオンチェーントランザクション履歴を表示する場合
* マスターNFTから印刷されたエディションを一覧表示する場合

## NFTメソッド

単一のNFTには`getAsset`、ウォレットのコレクションには`getAssetsByOwner`から始めます。各カードはその完全なAPIリファレンスにリンクしています。

<CardGroup cols={2}>
  <Card title="getAsset" icon="image" href="/ja/api-reference/das/getasset">
    IDで指定した1つのNFTの完全なデータ。
  </Card>

  <Card title="getAssetsByOwner" icon="wallet" href="/ja/api-reference/das/getassetsbyowner">
    ウォレットが保有するすべてのNFT。
  </Card>

  <Card title="searchAssets" icon="magnifying-glass" href="/ja/das/search">
    コレクション、クリエイター、属性などでフィルタリング。詳細はSearch Assetsガイドを参照。
  </Card>

  <Card title="getAssetsByCreator" icon="user" href="/ja/api-reference/das/getassetsbycreator">
    クリエイターによって作成されたすべての資産。
  </Card>

  <Card title="getAssetsByGroup" icon="layer-group" href="/ja/api-reference/das/getassetsbygroup">
    コレクション内のすべての資産。
  </Card>

  <Card title="getSignaturesForAsset" icon="clock-rotate-left" href="/ja/api-reference/das/getsignaturesforasset">
    資産のトランザクション履歴。
  </Card>

  <Card title="getNftEditions" icon="copy" href="/ja/api-reference/das/getnfteditions">
    マスターNFTからのエディション。
  </Card>

  <Card title="getAssetProof" icon="shield-check" href="/ja/api-reference/das/getassetproof">
    圧縮NFTのためのマークリ証明。
  </Card>
</CardGroup>

### 単一のNFTを取得する

1つのNFTの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);
```

### 他のNFTクエリ

<AccordionGroup>
  <Accordion title="ウォレットのNFTを一覧表示 — 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="クリエイター別 — 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="コレクション別 — 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="トランザクション履歴 — 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`のすべてがそれを返します。圧縮に特有な点は2つあります。

* **マークリ証明** — 転送や焼却などのオンチェーン操作には`getAssetProof`からの証明が必要です。
* **履歴** — cNFTのトランザクション履歴は`getSignaturesForAsset`（上記参照）を使用します。

<Accordion title="マークリ証明を取得 — 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>

## ベストプラクティス

* 大量の結果セットを返すメソッドには[ページネーション](/ja/das/pagination)を使用します。
* try/catchでエラーを処理し、指数バックオフで一時的な失敗を再試行します。
* API呼び出しを減らすために適切な場合にはレスポンスをキャッシュします。
* 複数のIDがある場合には、多数の単一の`getAsset`呼び出しの代わりに`getAssetBatch`を使用します。

## 次のステップ

<CardGroup cols={3}>
  <Card title="SPLトークンの取得" icon="coins" href="/ja/das/get-tokens">
    代替トークンのバランス、供給量、保有者、価格。
  </Card>

  <Card title="資産の検索" icon="magnifying-glass" href="/ja/das/search">
    NFTをコレクション、クリエイター、属性でフィルタリング。
  </Card>

  <Card title="DAS API FAQ" icon="book" href="/ja/faqs/das-api">
    資産、価格データ、使用法に関する一般的な質問。
  </Card>
</CardGroup>
