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

# Überblick Transfer-Ressource

> Grundlegendes zur Initiierung und Verfolgung von Token-Transfers innerhalb der OmniSafe API.

Dieses Dokument erläutert, wie Sie Token-Transfers innerhalb der OmniSafe API initiieren und verfolgen können.

<Steps>
  <Step title="Initiierung eines Token-Transfers">
    Verwenden Sie den Endpunkt `POST /v1/transfers`, um einen Token-Transfer zwischen zwei Wallets zu initiieren.

    * **Endpunkt:** `POST /v1/transfers` - [API-Referenz zum Transfer](/omni-platform/omniomni-components/omni-safe/transfer)
    * **Zusammenfassung:** Überträgt einen Token zwischen zwei Wallets.
    * **Beschreibung:** Dieser Endpunkt initiiert einen Token-Transfer auf der Blockchain zwischen zwei Wallets. Der Anfragetext gibt die Wallet-Adresse des Absenders, die Wallet-Adresse des Empfängers, den zu übertragenden Token und die Menge an. Nach erfolgreicher Verarbeitung wird eine Transfer-ID (`idInClient`) zurückgegeben. Diese ID kann verwendet werden, um den Status des Transfers mithilfe des Endpunkts [getTransferStatus](/omni-platform/omniomni-components/omni-safe/get-transfer-status) zu verfolgen. Beachten Sie, dass die Bestätigung des Transfers einige Zeit dauern kann, abhängig von den Netzwerkbedingungen, obwohl dieser Endpunkt den Transfer auf der Blockchain initiiert. Wenn die `idInClient` bereits vorhanden ist, wird ein 409-Fehler zurückgegeben.

    **Anfragetext:**

    Der Anfragetext sollte dem `BlockchainTransactionDto`-Schema entsprechen (definiert in der OpenAPI-Spezifikation). Er enthält typischerweise:

    * `fromWalletAddress`: Die Adresse der Wallet des Absenders.
    * `toWalletAddress`: Die Adresse der Wallet des Empfängers.
    * `tokenId`: Die ID des zu übertragenden Tokens.
    * `quantity`: Die Menge des zu übertragenden Tokens.
    * `idInClient`: Eine eindeutige Kennung für diesen Transfer, die vom Client bereitgestellt wird. Dies ist entscheidend für die Verfolgung des Transferstatus.

    **Antwort:**

    * `201 Erstellt`: Gibt die `idInClient` (String) der erstellten Transfertransaktion zurück.
    * `409 Konflikt`: Wird zurückgegeben, wenn die `idInClient` bereits vorhanden ist.

    **Wichtige Hinweise:**

    * **Eindeutigkeit der `idInClient`:** Die `idInClient` *muss* für jeden von Ihnen initiierten Transfer eindeutig sein. Die Wiederverwendung einer `idInClient` führt zu einem 409-Fehler.
    * **Asynchrone Verarbeitung:** Die Initiierung des Transfers erzeugt eine Transaktion in der Blockchain. Die Bestätigung kann je nach Netzwerkbedingungen einige Zeit dauern.
  </Step>

  <Step title="Abrufen des Transferstatus">
    Verwenden Sie den Endpunkt `GET /v1/transfers/{id-in-client}`, um den Status eines zuvor initiierten Token-Transfers abzurufen.

    * **Endpunkt:** `GET /v1/transfers/{id-in-client}` - [API-Referenz zum Abrufen des Transferstatus](/omni-platform/omniomni-components/omni-safe/get-transfer-status)
    * **Zusammenfassung:** Ruft den Status eines zuvor initiierten Token-Transfers ab.
    * **Beschreibung:** Ruft den Status eines zuvor initiierten Token-Transfers in der Blockchain ab. Sie benötigen die `idInClient`, die vom Endpunkt `POST /v1/transfers` zurückgegeben wurde. Diese `idInClient` ermöglicht es Ihnen, einen bestimmten Transfer zu verfolgen.

    **Parameter:**

    * `idInClient` (Pfadparameter): Die vom Client bereitgestellte ID des Transfers, den Sie verfolgen möchten.

    **Antwort:**

    * `200 OK`: Gibt ein Array von `TransferStatusDto`-Objekten zurück, das den aktuellen Status des Transfers enthält. Das `TransferStatusDto` enthält typischerweise:
    * `transactionHash`: Der Hash der Transaktion in der Blockchain (falls der Transfer bestätigt wurde).
    * `status`: Der aktuelle Status des Transfers (z. B. "PENDING", "DONE", "FAILED").
    * `errorMessage`: Fehlermeldungen, die während des Transferprozesses aufgetreten sind.
    * `404 Nicht gefunden`: Wird zurückgegeben, wenn kein Transfer mit der angegebenen `idInClient` gefunden wird.

    **Transferstatuswerte:**

    Das Feld `status` in der `TransferStatusDto`-Antwort kann die folgenden Werte haben (Beispiele, Ihre Werte können abweichen):

    * `PENDING`: Der Transfer wurde initiiert, aber noch nicht in der Blockchain bestätigt.
    * `DONE`: Der Transfer wurde erfolgreich in der Blockchain bestätigt.
    * `FAILED`: Der Transfer ist aufgrund eines Fehlers fehlgeschlagen. Überprüfen Sie das Feld `errorMessage` auf Details.
  </Step>
</Steps>
