← Blog
10 Min. Lesezeit
|
28. Okt. 2026

NFTs per API übertragen: Schritte, Parameter und Fallstricke

Wie eine NFT-Transfer-API funktioniert: Eigentumsprüfungen, Anfrageparameter, Gas, Signierung, Bestätigung und häufige Fehler auf Ethereum und Solana, mit einer praktischen Checkliste.

Kapitel
C
Chaingateway Team
Blockchain-Experten

Geometrischer Token bewegt sich zwischen zwei Plattformen

Eine NFT-Transfer-API ermöglicht es Ihrem Backend, einen Token mit einer einzigen HTTP-Anfrage von einer Wallet in eine andere zu verschieben, anstatt dass Ihr Team manuell Vertragsaufrufe schreibt, Transaktionen signiert und Nodes verwaltet. Im Hintergrund ist jeder Transfer immer noch eine On-Chain-Transaktion: Die Aufgabe der API besteht darin, den Besitz zu verifizieren, den richtigen Aufruf für den Token-Standard zu erstellen, Gebühren zu schätzen, zu signieren, zu übertragen und Ihnen dann mitzuteilen, was passiert ist. Dieser Leitfaden führt Sie durch jeden dieser Schritte, die Parameter, die jede Anfrage benötigt, und die Fehler, die Entwicklern die meiste Zeit kosten.

TL;DR

  • Ein NFT-Transfer ändert den in einem Token-Vertrag aufgezeichneten Besitzer. Bei Ethereum-ähnlichen Chains handelt es sich um einen Aufruf von transferFrom oder safeTransferFrom; bei Solana um eine Token- oder Metaplex-Instruktion.
  • Eine Anfrage benötigt vier Dinge: die Sender-Wallet, die Empfänger-Adresse, die Vertrags- (oder Mint-) Adresse und die Token-ID. ERC-1155 benötigt zusätzlich einen Betrag.
  • Prüfen Sie den Besitz vor dem Senden, schätzen Sie die Gebühren vor dem Signieren und bestätigen Sie den Erfolg über die Chain (Receipt und Transfer-Event), nicht allein über die HTTP-Antwort.
  • Die häufigsten Fehler sind falsche Chain, Empfänger-Verträge, die keine NFTs empfangen können, fehlendes natives Gas und veralteter Besitz.
  • Eine einheitliche API entfernt die Chain-spezifische Installation. Unsere deckt auch Webhooks für Bestätigungen ab, sodass Sie nicht polen müssen.

Inhaltsverzeichnis

Was eine NFT-Transfer-API tatsächlich tut

Ein NFT ist ein Eintrag in einem Smart Contract (oder auf Solana ein Token-Konto), der angibt, welche Adresse welchen Token besitzt. Das Übertragen bedeutet, diesen Eintrag zu ändern, und nur der Besitzer oder jemand, den der Besitzer autorisiert hat, kann dies tun.

Der ERC-721-Standard definiert dies auf Vertragsebene. Jeder Token wird durch eine Token-ID identifiziert, und ein Transfer verschiebt den Besitz von einer Adresse zur anderen, wenn er vom Besitzer, einer genehmigten Adresse oder einem Operator initiiert wird. Der Vertrag gibt dann ein Transfer-Event aus, welches das Signal ist, auf das die meisten Indexer und Benachrichtigungssysteme hören.

Eine API liegt darüber. Eine gute übernimmt fünf Aufgaben für Sie:

  1. Besitzverifizierung: Bestätigen, dass die sendende Wallet den Token derzeit besitzt.
  2. Aufrufkonstruktion: Kodieren der richtigen Funktion für den Standard und die Chain.
  3. Gebührenschätzung: Berechnen von Gas- oder Netzwerkgebühren und Prüfen, ob die Wallet diese zahlen kann.
  4. Signieren und Übertragen: Signieren mit dem Schlüssel der Wallet und Einreichen der Transaktion.
  5. Statusberichterstattung: Rückgabe eines Transaktions-Hashes und Mitteilung, wann der Transfer final ist.

Die Alternative ist der Betrieb eines eigenen Nodes, das Bereithalten von Web3-Bibliotheken pro Kette und das selbstständige Schreiben der Kodierung. Das funktioniert für eine Kette und eine Sammlung. Es wird teuer, sobald Sie ein zweites Netzwerk hinzufügen.

Welche Standards und Ketten eine Transfer-API abdecken kann

Nicht jedes NFT ist derselbe Objekttyp, daher muss eine API mehr als einen Dialekt sprechen.

Standard / ModellKettenFunktionsweise des Transfers
ERC-721Ethereum, Polygon, Arbitrum und andere EVM-KettenEine Token-ID pro Token; transferFrom oder safeTransferFrom
ERC-1155Ethereum und EVM-KettenMulti-Token-Vertrag; Transfer beinhaltet einen Betrag pro Token-ID, mit Batch-Transfers
SPL-Token mit Supply eins + Metaplex-MetadatenSolanaToken-Programm-Transfer; Metadaten separat gespeichert

ERC-1155 verdient einen genaueren Blick, wenn Sie Spielgegenstände oder Tickets verwalten. Ein Vertrag hält sowohl fungible als auch nicht-fungible Typen, seine Schnittstelle umfasst einzelne und sichere Batch-Transfers, und jeder Transfer trägt einen Betrag für die Token-ID. Ein Token mit einem Supply von eins verhält sich wie ein klassisches NFT, aber eine Edition mit einem Supply von 500 ist ein anderer Fall: Sie müssen einen Betrag senden, nicht nur eine ID.

Solana funktioniert anders. Es wird in der Regel kein separater Vertrag pro Sammlung bereitgestellt. Sein Token-Programm wird mit einem Mint-Supply von eins verwendet, während Metaplex Token Metadata die NFT-Details enthält. Daher transferieren Sie auf Solana über die Mint-Adresse, nicht über Vertrag plus Token-ID, und Sie sollten erwarten, dass der Empfänger ein Token-Konto für diesen Mint benötigt.

Wenn Sie einen Anbieter bewerten, fragen Sie, welche dieser drei Modelle er auf welchen Ketten unterstützt. Die Blockchain-API von Chaingateway deckt Ethereum, Bitcoin, Tron, Solana, Polygon, BNB Chain und Arbitrum ab und unterstützt die wichtigsten Token-Standards einschließlich ERC-721, sodass dasselbe Integrationsmuster für die Netzwerke gilt, die Sie später hinzufügen.

Wie man ein NFT über eine API überträgt, Schritt für Schritt

Der Ablauf ist unabhängig vom Anbieter derselbe. Was sich unterscheidet, ist, wie viel davon Sie selbst schreiben.

1. Eigentum verifizieren

Bevor Sie eine Transaktion erstellen, bestätigen Sie, dass der Absender den Token tatsächlich besitzt. Bei ERC-721 bedeutet dies, den Vertrag abzufragen, wer die Token-ID besitzt. Bei ERC-1155 bedeutet es, den Saldo dieser ID für die Adresse zu prüfen. Bei Solana prüfen Sie das Token-Konto, das den Mint hält.

Tun Sie dies unmittelbar vor dem Senden, nicht anhand einer zwischengespeicherten Datenbankzeile. NFTs können in den Sekunden zwischen Ihrer letzten Synchronisation und Ihrer Anfrage verkauft oder verschoben werden, und ein Transfer von einer Wallet, die den Token nicht mehr besitzt, schlägt einfach fehl und kostet in einigen Fehlermodi dennoch Gebühren.

2. Autorisierung prüfen

Der Standard erlaubt dem Eigentümer, einer genehmigten Adresse oder einem Operator, einen Transfer zu initiieren. Wenn Ihr Service NFTs aus benutzerbesitzten Wallets bewegt, die Sie nicht kontrollieren, benötigen Sie zuerst eine Genehmigung (Approval). Wenn Ihr Service die Schlüssel für von ihm erstellte Wallets hält (wie bei verwahrten Abläufen), ist die sendende Wallet der Eigentümer und keine Genehmigung ist nötig.

3. Erstellen und schätzen

Wählen Sie die Funktion und kodieren Sie die Argumente. Schätzen Sie dann die Gebühr. Auf EVM-Ketten bedeutet das ein Gas-Limit multipliziert mit einem Gas-Preis; auf Solana ist es eine kleine Gebühr pro Signatur plus gegebenenfalls Miete für ein neues Token-Konto. Eine API mit automatischer Gas-Schätzung erledigt dies für Sie, sodass Sie kein Gas-Limit hart kodieren müssen, das fehlschlägt, wenn der Empfänger ein Vertrag mit zusätzlicher Logik ist.

Stellen Sie auch sicher, dass die Wallet ausreichend native Coins hält. Eine Adresse mit zehn NFTs und null ETH kann keines davon bewegen.

4. Signieren und senden

Die Transaktion muss mit dem privaten Schlüssel des Eigentümers signiert werden. Entweder signieren Sie lokal und senden die rohe Transaktion, oder die API signiert für eine von ihr verwaltete Wallet. Verwaltete Wallets sind für Backend-Abläufe einfacher, da Ihre Server nie mit rohen Schlüsseln hantieren.

5. Bestätigen

Ein Transaktions-Hash bedeutet, dass das Netzwerk Ihre Einreichung akzeptiert hat, nicht dass der Transfer erfolgreich war. Warten Sie auf einen Beleg (Receipt), der Erfolg anzeigt, und auf das Transfer-Event mit dem erwarteten Absender, Empfänger und der Token-ID. Bei hochwertigen NFTs warten Sie auf mehrere Bestätigungen, bevor Sie Ihre eigene Datenbank aktualisieren oder etwas im Austausch freigeben.

Was eine Transfer-Anfrage benötigt

Unabhängig von den Feldnamen des Anbieters übermittelt die Anfrage dieselben Informationen.

ParameterWarum er benötigt wirdHinweise
Chain / NetzwerkDieselbe Adresse existiert auf vielen EVM-ChainsMainnet vs. Testnet ist das Erste, was zu prüfen ist, wenn ein Token “verschwindet”
Absender-WalletIdentifiziert, wer signiert und zahltMuss den Token besitzen und natives Gas halten
Empfänger-AdresseZieladresseFormat und Prüfsumme validieren; niemals Freitext ohne Prüfungen akzeptieren
Vertrags- oder Mint-AdresseIdentifiziert die KollektionVertrag auf EVM, Mint auf Solana
Token-IDIdentifiziert den individuellen TokenAuf Solana nicht verwendet, da der Mint der Token ist
MengeZu bewegende AnzahlErforderlich für ERC-1155; eins für ERC-721
Gebühren-EinstellungenGas-Limit und -Preis oder PrioritätsgebührLassen Sie die API schätzen, es sei denn, Sie haben einen Grund, es nicht zu tun
Idempotenz oder ReferenzVerhindert doppeltes Senden bei WiederholungSpeichern Sie Ihre eigene Referenz gegen den Transaktions-Hash

Diese letzte Zeile ist wichtiger, als sie aussieht. Wenn Ihre Anfrage ein Timeout hat, wissen Sie nicht, ob die Transaktion gesendet wurde. Blindes Wiederholen kann eine zweite Transaktion senden, die bei einem einzigartigen NFT einfach fehlschlägt, aber bei einer ERC-1155-Edition zusätzliche Exemplare bewegen kann. Suchen Sie zuerst nach dem früheren Versuch.

Gebühren: Schätzen und Bezahlen

In EVM-Netzwerken zahlt der Absender Gas in der nativen Coin der Chain, und die Kosten variieren mit der Netzwerkauslastung und der Komplexität des Aufrufs. Ein einfaches transferFrom ist günstig im Vergleich zu einem Mint oder einem Marktplatzverkauf, aber ein Empfängervertrag mit einer aufwendigen Empfängerfunktion kann die Kosten erhöhen.

Praktische Regeln:

  • Schätzen Sie unmittelbar vor dem Senden und addieren Sie einen moderaten Puffer, anstatt eine feste Zahl zu verwenden.
  • Halten Sie ein minimales natives Guthaben auf jeder Wallet, die NFTs sendet, und alarmieren Sie, wenn es darunter fällt.
  • Wenn Sie im Namen von Nutzern transferieren, entscheiden Sie im Voraus, wer zahlt: Sie (Wallet aufladen) oder der Nutzer (von einem Guthaben abziehen). Überraschungen hier werden zu Support-Tickets.
  • Auf Solana beachten Sie, dass der Empfänger möglicherweise ein neues Token-Konto benötigt, was einmalige Kosten verursacht.

Sicherheitsvorkehrungen

NFT-Transfers sind irreversibel. Es gibt keinen Chargeback und keinen Support-Desk on-chain, daher müssen die Schutzmaßnahmen in Ihrem Code leben.

Schützen Sie den Signierpfad. Authentifizieren Sie jeden API-Aufruf. Chaingateway signiert Anfragen mit HMAC, sodass eine im Transit veränderte Anfrage oder eine von jemandem ohne das Geheimnis gesendete Anfrage abgelehnt wird. Bewahren Sie das Geheimnis in einem Vault auf, rotieren Sie es und versenden Sie es niemals in einem Browser oder einer mobilen App.

Validieren Sie den Empfänger. Prüfen Sie Adressformat und Chain. Bieten Sie einen Bestätigungsschritt für hochwertige Artikel an. Wo Richtlinien es erfordern, screenen Sie Adressen vor dem Senden.

Beachten Sie Empfängerverträge. Die ERC-721-Spezifikation beschreibt safeTransferFrom so, dass geprüft wird, ob das Ziel ein Vertrag ist, der das Empfänger-Interface implementiert, und andernfalls ein Revert auslöst. Die Verwendung der sicheren Variante schützt Sie davor, einen Token in einem Vertrag einzusperren, der ihn nicht bewegen kann. Das einfache transferFrom überlässt diese Verantwortung dem Aufrufer.

Exposition begrenzen. Führen Sie eine Hot Wallet nur mit den NFTs, die für kurzfristige Transfers benötigt werden, und bewahren Sie den Rest in einer stärker eingeschränkten Wallet auf. Wenden Sie pro Anfrage und pro Tag Limits in Ihrer eigenen Schicht an.

Vier Schutzmaßnahmen für sichere NFT-Transfers

Alles protokollieren. Zeichnen Sie auf, wer den Transfer angefordert hat, die Parameter, den Hash und das Ergebnis. Wenn ein Kunde einen Transfer bestreitet, beweist die Kette, was passiert ist, und Ihre Logs beweisen, wer ihn angefordert hat.

Häufige Fehler und ihre Bedeutung

SymptomWahrscheinliche UrsacheLösung
Transaktion schlägt fehl (Revert)Absender besitzt den Token nicht oder ist nicht genehmigtEigentum und Genehmigung unmittelbar vor dem Senden erneut prüfen
Fehlschlag nur bei bestimmten EmpfängernEmpfänger ist ein Vertrag ohne EmpfängerfunktionAndere Adresse verwenden oder bestätigen, dass der Vertrag NFTs unterstützt
”Insufficient funds”Keine native Coin für Gebühren vorhandenSendende Wallet aufladen
Transaktion bleibt “pending” hängenGaspreis zu niedrig oder Nonce-LückeMit höherer Gebühr und demselben Nonce ersetzen
Token beim Empfänger nicht sichtbarFalsches Netzwerk oder Metadaten nicht aktualisiertKette und Transfer-Event prüfen; Wallets können cachen
Falsche Menge bewegtERC-1155-Menge fehlerhaft behandeltImmer explizite Menge übergeben und Saldo danach verifizieren

Die meisten dieser Fehler lassen sich durch zwei Gewohnheiten vermeiden: zuerst Eigentum und Saldo prüfen und den On-Chain-Beleg als einzigen Erfolgsnachweis behandeln.

Transfers per Webhook statt Polling bestätigen

Das Pollen eines Transaktions-Hashes alle paar Sekunden funktioniert in einem Prototyp und verschwendet in der Produktion Anfragen. Webhooks kehren das Modell um: Der Anbieter ruft Ihren Endpunkt auf, sobald der Transfer gemined wurde, mit dekodierten Daten zu Absender, Empfänger und Token. Verifizieren Sie die Signatur bei jedem eingehenden Aufruf, antworten Sie zügig und verarbeiten Sie Events idempotent, da Zustellungen wiederholt werden können. Wenn Sie verstehen möchten, wie solche Events auf Log-Ebene aussehen, behandelt unser Walkthrough zum ERC-20 Transfer Event Struktur und Topics, und das ERC-721-Event folgt demselben Muster mit dem indizierten Token-ID.

Unsere Perspektive

Die meisten Teams unterschätzen NFT-Transfers, weil der Happy Path ein einziger Funktionsaufruf ist. Die Arbeit liegt in allem drumherum: welche Kette, wessen Gas, was bei Retries passiert, wie Sie das Ergebnis erfahren. Wir haben Chaingateway so gebaut, dass ein Entwickler diese Angriffsfläche nicht selbst tragen muss. Eine REST-API ersetzt chain-spezifische Endpunkte und Ihre eigenen Nodes, Antworten kommen vor-dekodiert, sodass Sie Logs nicht manuell parsen müssen, Gas wird automatisch geschätzt, und Anfragen sind HMAC-signiert.

Unser Rat: Designen Sie zuerst für die Fehlerfälle. Legen Sie fest, wer Gebühren zahlt, was als bestätigt gilt und wie ein Retry erkannt wird, und der Transfer-Aufruf selbst wird zum einfachen Teil. Für einen breiteren Kontext dazu, wo jeder Anbietertyp passt, sehen Sie sich unseren Vergleich der Blockchain-API-Typen an.

— Bitblade

NFTs mit Chaingateway bewegen

Wenn Sie eine App entwickeln, die Wallets erstellt, Tokens und NFTs versendet und auf On-Chain-Ereignisse reagiert, bietet Ihnen die Blockchain-API von Chaingateway eine Integration für Ethereum, Solana, Polygon, BNB Chain, Arbitrum, Tron und Bitcoin. In Kombination mit Webhook-Benachrichtigungen können Sie einen Transfer senden und werden informiert, sobald dieser eintrifft. Die Pläne beginnen bei 49 € pro Monat (Plus), Pro kostet 99 €, Premium 249 € und Enterprise 499 € pro Monat; bei jährlicher Abrechnung betragen die Preise 490 €, 990 €, 2490 € und 4990 €. Sehen Sie auf der Preisseite, was jeder Plan beinhaltet, und starten Sie mit dem kostenlosen Test, um Transfers auf Ihrer eigenen Chain zu testen.

Wenn Ihr Stack auf ein bestimmtes Netzwerk ausgerichtet ist, zeigen die dedizierten Seiten für die Ethereum-API und die Solana-API, wie der Token-Versand auf den jeweiligen Chains funktioniert.

Eine Checkliste vor dem Launch

Bevor Sie echte Nutzer NFT-Transfers auslösen lassen, arbeiten Sie diese Liste auf einem Testnet ab:

  1. Transferieren Sie einen Token, den Sie besitzen, an eine normale Wallet und bestätigen Sie den Empfang und das Transfer-Ereignis.
  2. Transferieren Sie an einen Vertrag, der keine NFTs empfangen kann, und bestätigen Sie, dass Ihr Code den Fehler anzeigt.
  3. Versuchen Sie einen Transfer von einer Wallet ohne nativen Coin und bestätigen Sie, dass der Fehler eindeutig ist.
  4. Senden Sie dieselbe Anfrage zweimal und bestätigen Sie, dass Ihre Idempotenzprüfung die zweite Anfrage stoppt.
  5. Deaktivieren Sie Ihren Webhook-Endpunkt für eine Minute, stellen Sie ihn wieder her und bestätigen Sie, dass Ereignisse nicht verloren gehen oder doppelt verarbeitet werden.
  6. Prüfen Sie, wer den Endpunkt aufrufen darf, mit welchen Limits und wo das Secret gespeichert ist.

Quellen

Empfohlen

Häufig gestellte Fragen

Ja. Eine gehostete Blockchain-API verbindet sich für Sie mit den Nodes, erstellt und sendet die Transaktion und gibt den Hash zurück. Sie müssen die Keys der Wallet dennoch verwalten oder eine verwaltete Wallet nutzen und nativen Coin für Gebühren bereithalten.

Beide ändern den Eigentümer gemäß ERC-721. Die sichere Variante prüft zusätzlich, ob ein Vertragsempfänger das Empfänger-Interface implementiert, und bricht andernfalls ab, was verhindert, dass Tokens steckenbleiben, gemäß der ERC-721-Spezifikation. Für automatisierte Abläufe ist die sichere Variante meist die bessere Standardeinstellung.

Ja, in der Praxis. ERC-1155-Transfers beinhalten eine Menge pro Token-ID und unterstützen Batch-Transfers, wie der ERC-1155-Standard beschreibt. Ihre Anfrage muss die Menge enthalten, und Sie sollten den Kontostand anschließend verifizieren.

Prüfen Sie den Transaktionsbeleg auf Erfolg und suchen Sie nach dem passenden Transfer-Ereignis mit dem richtigen Absender, Empfänger und der Token-ID. Ein Webhook kann diese Information an Ihr Backend liefern, sobald der Block gemined wurde, sodass Sie nicht polen müssen.

Nicht durch Sie. Nur der neue Eigentümer kann es zurücksenden. Deshalb sollten Sie Adressen validieren, die Chain bestätigen und bei wertvollen Tokens einen Bestätigungsschritt vor dem Senden hinzufügen.

Möchten Sie das selbst umsetzen? API-Key erhalten — 7 Tage kostenlos testen, keine Karte nötig — oder werfen Sie einen Blick auf Blockchain-API für die vollständige Endpoint-Referenz.

C
Chaingateway Team
Blockchain-Experten

Das Chaingateway-Team hat es sich zur Aufgabe gemacht, die Blockchain-Integration für Entwickler weltweit zu vereinfachen.