> ## 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 Asset-Suche: Finden Sie NFTs, Tokens & Komprimierte Assets

> Verwenden Sie den searchAssets-Endpunkt, um NFTs, komprimierte Assets und fungible Tokens auf Solana zu entdecken, mit erweiterten Filter-, Sortier- und Paginierungsfunktionen.

## Übersicht

`searchAssets` ist die flexibelste Lesemethode in der DAS API. Es liefert Assets, die mit einer Kombination aus Filtern übereinstimmen — Besitzer, Sammlungsgruppe, Token-Typ und Attribute — in einem einzigen paginierten Aufruf. Verwenden Sie es, wann immer Sie mehr als nur ein einzelnes Asset oder eine einfache Nach-Besitzer-Liste benötigen.

`tokenType` ist optional. Wird es weggelassen, liefert `searchAssets` nur reguläre und komprimierte NFTs — keine fungiblen Tokens. Um fungible Tokens einzuschließen, setzen Sie `tokenType` (zum Beispiel `"fungible"` oder `"all"`). Akzeptierte Werte sind `fungible`, `nonFungible`, `regularNft`, `compressedNft` und `all`.

## Wann zu verwenden

Verwenden Sie `searchAssets`, wenn Sie:

* Die Assets einer Wallet zu nur fungiblen Tokens oder nur NFTs filtern
* Die Assets auflisten, die eine Wallet innerhalb einer bestimmten Sammlung besitzt
* Komprimierte NFTs in großen Mengen entdecken
* Unendliches Scrollen über große Ergebnismengen mit Cursor-Paginierung erstellen
* MPL Core Assets nach Agentenstatus oder Unterzeichner filtern

Für einzelne Assets verwenden Sie [`getAsset`](/docs/de/api-reference/das/getasset); für eine einfache Wallet-Liste verwenden Sie [`getAssetsByOwner`](/docs/de/api-reference/das/getassetsbyowner).

<Card title="API-Referenz" horizontal icon="code" href="/docs/de/api-reference/das/searchassets">
  Detaillierte Dokumentation für searchAssets anzeigen
</Card>

## Schnellstart

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

## Einen tokenType wählen

`tokenType` ist optional und gibt an, **welche Art von Assets** in der Antwort angezeigt werden. Wird es weggelassen, liefert `searchAssets` nur reguläre und komprimierte NFTs — setzen Sie `tokenType`, um fungible Tokens einzuschließen.

<ParamField body="tokenType" type="string">
  Akzeptierte Werte: `fungible`, `nonFungible`, `regularNft`, `compressedNft`, `all`. Standardmäßig werden reguläre und komprimierte NFTs geliefert, wenn weggelassen.
</ParamField>

| tokenType       | Was Sie bekommen                    | Typischer Anwendungsfall        |
| --------------- | ----------------------------------- | ------------------------------- |
| `fungible`      | Nur SPL und Token-2022 Tokens       | Wallet-Salden, Token-Gating     |
| `nonFungible`   | Alle NFTs (komprimiert und regulär) | Portfolioübersicht              |
| `regularNft`    | Legacy und pNFTs (unkomprimiert)    | Marktplatzangebote              |
| `compressedNft` | Nur cNFTs                           | Extrem günstige Massenprägungen |
| `all`           | Alles (Tokens und NFTs)             | Allumfassende Entdeckung        |

## Paginierung und Sortierung

Solana-Wallets können Tausende von Assets besitzen, daher ist effizientes Paging wichtig:

* **Seite / Limit** — klassische Paginierung (`page` beginnt bei **1**). Gut für statische Ansichten.
* **Cursor** — übergeben Sie `before` oder `after`-Werte aus der vorherigen Antwort für schnelles, unendliches Scrollen.

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

Für vollständige Strategien zur Seiten-/Limit- und Cursor-Paginierung, einschließlich paralleler Keyset-Abfragen, siehe den [Paginierungsleitfaden](/docs/de/das/pagination).

## Anzeigeoptionen

Diese Flags **fügen Metadaten hinzu**; sie ändern niemals, welche Assets zurückgegeben werden.

| Flag                     | Effekt                                                         |
| ------------------------ | -------------------------------------------------------------- |
| `showNativeBalance`      | Enthält den SOL-Saldo der Wallet                               |
| `showCollectionMetadata` | Fügt Sammlungs-Ebenen-JSON-Daten hinzu                         |
| `showGrandTotal`         | Gibt die Gesamtanzahl der Übereinstimmungen zurück (langsamer) |

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

## MPL Core-Agenten, Asset-Unterzeichner und MIP-11-Gruppen

MPL Core-Assets können **Agentenidentität** und **Asset-Unterzeichner**-Metadaten anzeigen, und Assets oder Sammlungen können ein **`groups`-Plugin** (MIP-11) enthalten, das die Gruppenmitgliedschaft beschreibt. Die gleichen optionalen Felder erscheinen bei jeder Asset zurückgebenden DAS-Methode (`getAsset`, `getAssetBatch`, `getAssetsByOwner`, `getAssetsByGroup`, `getAssetsByCreator`, `getAssetsByAuthority` und jedes Element in `searchAssets`).

Verwenden Sie `searchAssets`, um nach Agentenstatus oder Adressen zu filtern:

| Parameter     | Typ     | Zweck                                            |
| ------------- | ------- | ------------------------------------------------ |
| `isAgent`     | boolean | Nur Assets mit Agentenidentität                  |
| `agentToken`  | string  | Übereinstimmung Token-Mint des Agenten (Base58)  |
| `assetSigner` | string  | Übereinstimmung Asset-Unterzeichner PDA (Base58) |

Sie können auch `interface` auf `MplCoreAsset`, `MplCoreCollection` oder `MplCoreGroup` für MPL Core-spezifische Entdeckungen einstellen.

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

Die Antwortfelder `is_agent`, `agent_token` und `asset_signer` werden **weggelassen, wenn nicht anwendbar** (zum Beispiel wird `is_agent` weggelassen, wenn false). Siehe die [searchAssets API-Referenz](/docs/de/api-reference/das/searchassets) für vollständige Schemata.

## Beispiele

Das erste Beispiel zeigt den vollständigen `fetch`-Wrapper. Die restlichen Beispiele folgen dem gleichen Muster und sind zusammengeklappt — erweitern Sie sie für den Anfrageinhalt.

### Suche nach allen fungiblen Tokens in einer Wallet

```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="Suche nach fungiblen Tokens mit nativem Saldo und Token-Informationen">
  ```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="Suche nach Drip NFTs, die von vibhu.sol besessen werden">
  ```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="Suche nach komprimierten Assets in einer Wallet">
  ```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>

## Nächste Schritte

<CardGroup cols={3}>
  <Card title="Paginierung" icon="list" href="/docs/de/das/pagination">
    Seitenbasierte und Keyset-Paginierung für große Ergebnismengen.
  </Card>

  <Card title="Fungible Token-Erweiterung" icon="coins" href="/docs/de/das/fungible-token-extension">
    Wie tokenType, Salden und Preise in den Ergebnissen angezeigt werden.
  </Card>

  <Card title="searchAssets Referenz" icon="code" href="/docs/de/api-reference/das/searchassets">
    Vollständige Anfrage- und Antwort-Schemata.
  </Card>
</CardGroup>
