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

# Abfrage mit GraphQL

> Abfrage von geparsten Ereignissen mit GraphQL, einschließlich typisierter Transfer-, Zusammenfassungs- und Anweisungsfelder.

## Übersicht

Die GraphQL-Schnittstelle stellt beide Methoden für geparste Ereignisse bereit: Parse Transactions über `transactions` und Parsed Transaction History über `transactionsByAddress`. Senden Sie GraphQL-Operationen an `POST /v1/parsed-events/graphql`. Es liefert dasselbe geparste Transaktionsmodell wie die [REST-Endpunkte](/docs/de/parsed-events/quickstart#rest-referenz), während es den Clients ermöglicht, nur die benötigten Felder auszuwählen.

GraphQL enthält `rawTransaction` nur, wenn das Feld ausgewählt ist. Dynamische Parser-Payloads bleiben JSON-Skalare, einschließlich dekodierter Anweisung `args`, Transaktionsausführung `error`, Zusammenfassung `parsedData` und `rawTransaction`.

## Endpunkt

Senden Sie GraphQL-Operationen an `POST /v1/parsed-events/graphql`. Authentifizieren Sie sich mit dem `api-key` Abfrageparameter.

<Tabs>
  <Tab title="JavaScript">
    ```javascript theme={"system"}
    const url = "https://mainnet.helius-rpc.com/v1/parsed-events/graphql?api-key=YOUR_API_KEY";

    const response = await fetch(url, {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        query: `query ParseTransactions($signatures: [String!]!) {
          transactions(signatures: $signatures, commitment: CONFIRMED) {
            signature
            parserStatus
          }
        }`,
        variables: {
          signatures: [
            "5xSKzM8bvpudE521jikHqASzMr23Ms4X4ieY3K8oFPFrJWCSSgYocJmHznrR8b12voDxKDH8ykdCLXSRrx6duVLH",
          ],
        },
      }),
    });

    const data = await response.json();
    console.log(data);
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={"system"}
    curl -X POST "https://mainnet.helius-rpc.com/v1/parsed-events/graphql?api-key=YOUR_API_KEY" \
      -H "content-type: application/json" \
      -d '{
        "query": "query ParseTransactions($signatures: [String!]!) { transactions(signatures: $signatures, commitment: CONFIRMED) { signature parserStatus } }",
        "variables": {
          "signatures": ["5xSKzM8bvpudE521jikHqASzMr23Ms4X4ieY3K8oFPFrJWCSSgYocJmHznrR8b12voDxKDH8ykdCLXSRrx6duVLH"]
        }
      }'
    ```
  </Tab>
</Tabs>

## Transaktionen parsen

```graphql theme={"system"}
query ParseTransactions($signatures: [String!]!) {
  transactions(signatures: $signatures, commitment: CONFIRMED) {
    signature
    parserStatus
    parsed {
      slot
      blockTime
      fee
      feePayer
      transactionStatus
      nativeTransfers {
        fromUserAccount
        toUserAccount
        amount
      }
      tokenTransfers {
        fromUserAccount
        toUserAccount
        fromTokenAccount
        toTokenAccount
        rawTokenAmount
        decimals
        tokenStandard
        mint
      }
      summary {
        type
        description
        parsedData
      }
      instructions {
        instructionIndex
        innerInstructionIndex
        programId
        programName
        instructionName
        summary {
          type
          description
          parsedData
        }
        decoded {
          args
          accounts {
            name
            pubkey
            isSigner
            isWritable
          }
        }
      }
    }
    parserError {
      code
      message
    }
  }
}
```

Variablen:

```json theme={"system"}
{
  "signatures": ["5xSKzM8bvpudE521jikHqASzMr23Ms4X4ieY3K8oFPFrJWCSSgYocJmHznrR8b12voDxKDH8ykdCLXSRrx6duVLH"]
}
```

## Geparste Transaktionshistorie

```graphql theme={"system"}
query AddressHistory($address: String!) {
  transactionsByAddress(
    address: $address
    limit: 100
    sortOrder: DESC
    commitment: CONFIRMED
    filters: {
      slot: { gte: 300000000 }
    }
  ) {
    data {
      signature
      parserStatus
      parsed {
        slot
        blockTime
        nativeTransfers {
          fromUserAccount
          toUserAccount
          amount
        }
        tokenTransfers {
          fromUserAccount
          toUserAccount
          rawTokenAmount
          decimals
          mint
        }
      }
    }
    paginationToken
  }
}
```

Variablen:

```json theme={"system"}
{
  "address": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52"
}
```

## Abfrageargumente

### `transactions`

| Argument     | Typ          | Standard    | Beschreibung                       |
| ------------ | ------------ | ----------- | ---------------------------------- |
| `signatures` | `[String!]!` | -           | Transaktionssignaturen zum Parsen. |
| `commitment` | `Commitment` | `CONFIRMED` | `CONFIRMED` oder `FINALIZED`.      |

### `transactionsByAddress`

| Argument          | Typ                              | Standard    | Beschreibung                                                                   |
| ----------------- | -------------------------------- | ----------- | ------------------------------------------------------------------------------ |
| `address`         | `String!`                        | -           | Adresse, deren Transaktionshistorie abgerufen werden soll.                     |
| `limit`           | `Int`                            | `100`       | Anzahl der zurückzugebenden Transaktionen. Muss zwischen `1` und `100` liegen. |
| `beforeSignature` | `String`                         | -           | Rückgabe von Transaktionen vor dieser Signatur.                                |
| `afterSignature`  | `String`                         | -           | Rückgabe von Transaktionen nach dieser Signatur.                               |
| `paginationToken` | `String`                         | -           | Cursor mit Form `slot:transactionIndex`.                                       |
| `sortOrder`       | `SortOrder`                      | `DESC`      | `ASC` oder `DESC`.                                                             |
| `commitment`      | `Commitment`                     | `CONFIRMED` | `CONFIRMED` oder `FINALIZED`.                                                  |
| `filters`         | `AddressTransactionFiltersInput` | -           | Optionale `slot` und `time` Grenzen.                                           |

## Rohtransaktionen

Wählen Sie `rawTransaction`, um das ursprüngliche Transaktions-JSON einzuschließen:

```graphql theme={"system"}
query ParseWithRaw($signatures: [String!]!) {
  transactions(signatures: $signatures) {
    signature
    rawTransaction
    parsed {
      slot
    }
  }
}
```

Wenn `rawTransaction` nicht ausgewählt ist, wird es vom Dienst nicht in die Antwort aufgenommen.
