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

Wie man ERC-20-Token sendet: Wallet, Code und API-Methoden

ERC-20-Token über eine Wallet, mit ethers.js oder per REST-API senden. Behandelt Gas, Dezimalstellen, Vertragsadressen-Risiken und sichere Transfer-Muster.

Kapitel
C
Chaingateway Team
Blockchain-Experten

Three routes converge at a token contract

Sie können ERC-20-Token auf drei Arten senden: über eine Wallet-App, aus Ihrem eigenen Code mit einer Bibliothek wie ethers.js oder über eine REST-API, die das Signieren und Übertragen für Sie übernimmt. Alle drei Methoden führen im Grunde dasselbe aus. Sie rufen die transfer-Funktion im Smart Contract des Tokens auf, und der Absender zahlt die Netzwerkgebühr in ETH, nicht im Token. Dieser Leitfaden behandelt jede Methode, die Fehler, die zum Verlust von Geldern führen, und was sich ändert, wenn Sie von einer manuellen Überweisung zu Tausenden automatisierten Überweisungen wechseln.

TL;DR

  • Eine ERC-20-Überweisung ist ein Aufruf des Token-Contracts, keine einfache Wertübertragung wie bei ETH. Die Empfängeradresse und der Betrag werden in den Calldaten übergeben.
  • Die sendende Wallet benötigt ETH für Gas, auch wenn sie viele Token hält. Ohne ETH schlägt die Transaktion fehl.
  • Senden Sie Token niemals direkt per transfer an einen Contract, der keinen Code zur Verarbeitung besitzt. Nutzen Sie für Contract-Interaktionen approve und transferFrom.
  • Im Code müssen Sie Token-Dezimalstellen und Token behandeln, die keinen standardmäßigen Boolean zurückgeben. Umschließen Sie Aufrufe mit einer sicheren Bibliothek.
  • Wenn Sie eine App entwickeln, die Token für Nutzer sendet, nimmt Ihnen eine REST-API die Arbeit mit Node, Nonce und Gas ab. Darauf gehen wir weiter unten ein.

Inhaltsverzeichnis

Was tatsächlich passiert, wenn Sie einen ERC-20-Token senden

Das Senden von ETH bewegt nativen Wert zwischen zwei Konten. Das Senden eines ERC-20-Tokens ändert ein Bilanzbuch, das im Contract des Tokens gespeichert ist. Ihre Wallet erstellt eine Transaktion, die an den Token-Contract adressiert ist, und dieser Contract aktualisiert die Kontostände von Absender und Empfänger.

Der ERC-20-Standard definiert die Methoden, die jeder konforme Token bereitstellt: totalSupply, balanceOf, transfer, transferFrom, approve und allowance. Diese gemeinsame Schnittstelle ist der Grund, warum eine Wallet oder ein Code-Stück Tausende verschiedener Token verarbeiten kann. Die ursprüngliche Spezifikation ist EIP-20, veröffentlicht im November 2015.

Einige Folgen ergeben sich aus diesem Design:

  • Das Feld to der Transaktion ist der Token-Vertrag, nicht die Person, die Sie bezahlen. Der tatsächliche Empfänger ist in den Aufrufdaten kodiert.
  • Die Aufrufdaten beginnen mit dem Funktionsselektor 0xa9059cbb (die transfer-Signatur), gefolgt von der Empfängeradresse und dem Betrag, gemäß der ERC-20-Dokumentation von ethereum.org.
  • ERC-20 ist ein Token-Standard, nicht dasselbe wie Ethereum. ETH ist die native Währung des Netzwerks. Token wie USDT sind Verträge, die darauf laufen. Wenn Sie den größeren Zusammenhang von Gas und ETH verstehen möchten, lesen Sie unseren Ethereum-Überblick.

Dasselbe Format existiert auch auf anderen EVM-Chains. Unser Beitrag zum ERC20-Token-Standard geht tiefer darauf ein, wie er funktioniert, und der ERC20-Adressen-Leitfaden erklärt das Adressformat und die Abfrage von Kontoständen.

Bevor Sie senden: eine kurze Checkliste

Die meisten verlorenen Überweisungen resultieren aus ausgelassener Vorbereitung, nicht aus technischem Versagen. Prüfen Sie zuerst Folgendes.

  1. Sie halten den Token und den richtigen Betrag. Bestätigen Sie den Kontostand mit balanceOf oder in Ihrer Wallet.
  2. Sie halten ETH für Gas. Die Gebühr wird in der nativen Währung des Netzwerks bezahlt, nicht von den Tokens abgezogen, die Sie senden. Auf Polygon oder der BNB Chain gilt dieselbe Logik mit der jeweiligen nativen Münze der Chain. Eine Wallet mit Tokens, aber ohne ETH, kann nichts senden.
  3. Sie haben die exakte Empfängeradresse. Kopieren und fügen Sie sie ein, anstatt sie einzutippen. Das Hilfezentrum von MetaMask warnt vor Address Poisoning, bei dem ein Angreifer Ihren Verlauf mit einer ähnlich aussehenden Adresse verseucht.
  4. Sie kennen das Netzwerk. Dasselbe Adressformat funktioniert auf mehreren EVM-Chains. Ein Token, das im falschen Netzwerk gesendet wird, kommt nicht dort an, wo der Empfänger es erwartet.
  5. Der Empfänger kann es akzeptieren. Das Senden an eine Einzahlungsadresse einer Börse im falschen Netzwerk oder an einen Vertrag, der Tokens nicht verarbeiten kann, kann einen dauerhaften Verlust bedeuten.
  6. Sie testen zuerst mit einem kleinen Betrag. Für einen neuen Empfänger oder eine neue Integration senden Sie einen kleinen Betrag und bestätigen, dass er angekommen ist, bevor Sie den vollen Betrag senden.

Methode 1: Senden aus einer Wallet

Für einmalige Überweisungen ist eine Wallet der einfachste Weg. Der Etherscan-Leitfaden zum Senden von ETH oder Tokens beschreibt denselben Ablauf, dem die meisten Wallets folgen:

  1. Öffnen Sie die Wallet und wählen Sie die Sendeoption.
  2. Wählen Sie den Token aus, den Sie senden möchten. Falls die Wallet ihn nicht auflistet, fügen Sie ihn hinzu, indem Sie die Vertragsadresse des Tokens einfügen.
  3. Fügen Sie die Empfängeradresse ein.
  4. Geben Sie den Betrag ein.
  5. Prüfen Sie die Netzwerkgebühr. Die Wallet schätzt sie für Sie.
  6. Bestätigen Sie, und verfolgen Sie den Transaktions-Hash in einem Block-Explorer, bis er bestätigt ist.

Zwei Details führen oft zu Fehlern. Erstens muss die Vertragsadresse des Tokens, die Sie beim Hinzufügen eines benutzerdefinierten Tokens einfügen, die echte sein, da gefälschte Tokens denselben Namen und dasselbe Symbol verwenden. Verifizieren Sie sie auf der offiziellen Website des Projekts. Zweitens wird die angezeigte Gebühr in ETH angegeben, sodass der ETH-Kontostand der Wallet diese zusätzlich zu dem ETH decken muss, den Sie eventuell senden möchten.

Methode 2: Senden mit Code (ethers.js)

Entwickler, die Transfers automatisieren müssen, können den Vertrag direkt aufrufen. Das ethereum.org-Tutorial zum Senden von Tokens mit ethers.js zeigt das grundlegende Muster. Eine separate ethers.js-Anleitung erklärt den wesentlichen Unterschied zu ETH: Die Transaktion sendet keinen Wert, sondern ruft die transfer-Funktion des Tokens mit einem Ziel und einem Betrag auf.

Die Schritte sehen wie folgt aus:

  1. Erstellen Sie einen Provider, der mit einem Ethereum-Knoten verbunden ist (Ihr eigener oder ein gehosteter Endpunkt).
  2. Erstellen Sie einen Signer aus einem privaten Schlüssel oder einer Wallet, die Sie kontrollieren.
  3. Instanziieren Sie den Token-Vertrag mit seiner Adresse und einem minimalen ABI, das transfer, balanceOf und decimals enthält.
  4. Konvertieren Sie den für Menschen lesbaren Betrag mithilfe der Dezimalstellen des Tokens in Basiseinheiten.
  5. Rufen Sie transfer(empfänger, betrag) auf und warten Sie auf den Beleg.

Das ethers.js-Tutorial weist darauf hin, dass die Bibliothek eine EIP-1559-Transaktion ohne manuelle Gaseinstellungen senden kann, indem sie ein Gaslimit und eine Standard-Prioritätsgebühr wählt. Sie kann auch die Nonce verwalten, wenn Sie einen Signer verwenden.

Dezimalstellen korrekt handhaben

Tokens speichern Beträge als Ganzzahlen. Ein Token mit 18 Dezimalstellen stellt 1,0 Token als 1000000000000000000 Basiseinheiten dar. Das Feld decimals ist Teil des Standards, aber verschiedene Tokens setzen unterschiedliche Werte, und der EIP-20-Text behandelt es als optionale Metadaten. Lesen Sie decimals immer vom Vertrag aus, anstatt 18 zu unterstellen. Die Festlegung eines falschen Werts sendet einen Betrag, der um Größenordnungen abweicht.

Dem Rückgabewert nicht blind vertrauen

Der Standard besagt, dass transfer einen booleschen Wert zurückgibt. Nicht jeder Token in freier Wildbahn verhält sich so. Einige geben nichts zurück, und einige schlagen auf unerwartete Weise fehl. Die OpenZeppelin IERC20-Schnittstelle ist die Referenz für den Standard, und die SafeERC20-Bibliothek von OpenZeppelin existiert, um Aufrufe so zu umschließen, dass ungewöhnliche Tokens Ihre Logik nicht brechen. Wenn Ihr Smart Contract Tokens bewegt, verwenden Sie sie. Wenn Ihr Backend Tokens sendet, prüfen Sie den Status des Transaktionsbelegs und das emittierte Transfer-Ereignis, anstatt Erfolg zu unterstellen.

Gaslimits

Ein einfacher ETH-Transfer verwendet gemäß der Anleitung von MetaMask ein Gaslimit von 21.000. Ein Token-Transfer ist ein Vertragsaufruf, daher benötigt er mehr. Schätzen Sie das Gas vor jedem Senden mit dem Schätzaufruf Ihrer Bibliothek, anstatt eine Zahl festzuschreiben, da der Kosten vom Vertragscode des Tokens und dem Zustand der beteiligten Guthaben abhängt.

Methode 3: Senden über eine REST-API

Die Ausführung des oben genannten Codepfads ist für ein Skript in Ordnung. In einem Produkt wird daraus eine Liste von lästigen Aufgaben: Knoten-Zugang betreiben oder mieten, Schlüssel verwalten, Nonces verfolgen, damit gleichzeitige Sendungen nicht kollidieren, Gas schätzen, festgefahrene Transaktionen wiederholen, Logs decodieren, um herauszufinden, ob eine Zahlung angekommen ist, und all das für jede Kette wiederholen.

Eine einheitliche API nimmt diese Schicht Ihrem Team ab. Mit Chaingateway erstellen Sie Wallets, senden Tokens und lesen decodierte Transaktionsdaten über einfache REST-Aufrufe. Sie benötigen weder web3.js noch ethers.js in Ihrem Stack, und Sie betreiben keine Knoten. Unsere Ethereum-API-Seite zeigt, wie das Senden von ERC-20 über REST funktioniert. Anfragen werden HMAC-signiert, und Gas wird automatisch geschätzt.

Method 3: Send through a REST API — overview diagram

Derselbe Ansatz lässt sich auf Bitcoin, Tron, Solana, Polyggon, BNB Chain und Arbitrum übertragen, sodass eine zweite Chain keine zweite Integration erfordert. Falls Sie später Tron USDT hinzufügen, lesen Sie unseren Erklärartikel zu TRC10 vs TRC20. Für BNB Chain-Adressen sehen Sie den BEP20-Adressen-Leitfaden.

Wann welche Methode passt

SituationWalletEigener CodeREST API
Einmalige persönliche ÜberweisungAm bestenOverkillOverkill
Gelegentliches Skript auf einer ChainLangsamGutGut
Auszahlungen oder Abhebungen innerhalb einer AppNicht praktikabelMöglich, Sie warten esBeste Wahl
Mehrere Chains und Token-StandardsManuell pro ChainEin Client pro ChainEine Schnittstelle
Erkennung eingehender ZahlungenManuellSie bauen Log-ListenerWebhooks

Häufige Fehler bei ERC-20-Transfers

Senden von Tokens an einen Vertrag

Die Funktion transfer war nicht dafür gedacht, Tokens in Smart Contracts einzuzahlen. Wenn ein Contract keine Logik besitzt, um auf eingehende Tokens zu reagieren, verbleiben diese in seinem Guthaben ohne Möglichkeit der Rückführung. Die ethereum.org ERC-20-Seite beschreibt dieses Risiko, einschließlich Tokens, die an den eigenen Token-Contract gesendet wurden, und berichtet von Millionenverlusten auf diese Weise Stand Juni 2024. Wenn Sie Contracts schreiben, fügen Sie eine Funktion hinzu, die die Rückholung versehentlich gesendeter Tokens ermöglicht. Wenn ein Contract Tokens von einem Nutzer empfangen soll, ist das Standardmuster: Der Nutzer ruft approve für den Contract auf, dann ruft der Contract transferFrom auf.

Kein ETH für Gas

Die Transaktion schlägt fehl, wenn der Absender keine native Währung besitzt, egal wie viele Tokens im Wallet sind. Produktteams entdecken dies oft spät: Ein Nutzer erhält Tokens, versucht sie zu bewegen, und kann es nicht. Optionen sind, das Wallet mit einer kleinen Menge ETH aufzuladen, oder dies durch signierte Autorisierungen zu umgehen.

Falsches Netzwerk oder falsche Adresse

Blockchains kehren Transaktionen nicht um. Prüfen Sie Netzwerk und Adresse vor der Bestätigung, und nutzen Sie eine kleine Testüberweisung für alles Neue.

Verwechseln von Token und Netzwerk

USDT existiert beispielsweise auf mehreren Chains. Wenn jemand sagt, er halte USDT, fragen Sie, auf welchem Netzwerk. Die Adresse mag auf jeder Chain identisch aussehen, doch die Mittel existieren nur auf einer Chain.

Gaslose Transfers und Meta-Transaktionen

Eine wachsende Option für das Onboarding ist, den Nutzer eine Nachricht signieren zu lassen und jemand anderen die Transaktion einreichen und das Gas bezahlen zu lassen. EIP-3009, Transfer With Authorization definiert Funktionen, die es einem Inhaber erlauben, die Gaszahlung zu delegieren und Transfers über EIP-712-Signaturen ausführen zu lassen. Nur Tokens, deren Contracts dies implementieren, unterstützen dies, daher prüfen Sie dies, bevor Sie einen Flow darum herum entwerfen. Für ein Startup kann dies die erste Hürde beseitigen, ETH für den ersten Transfer zu beschaffen.

Unsere Perspektive: Behandeln Sie einen Transfer als Workflow, nicht als Aufruf

Our perspective: treat a transfer as a workflow, not a call — overview diagram

Wir sehen das gleiche Muster in Teams, die zum ersten Mal das Senden von Token integrieren. Der transfer-Aufruf selbst dauert einen Nachmittag. Die Wochen fließen in alles Drumherum: zu wissen, wann eine Zahlung wirklich eingegangen ist, den Umgang mit fehlgeschlagenen oder steckengebliebenen Transaktionen, die Gebührenschätzung und die sichere Aufbewahrung von Schlüsseln.

Unsere Ansicht ist, dass Senden und Empfangen zusammengehören. Ein Auszahlungsfluss ohne Bestätigungsereignisse zwingt Sie zum Pollen, und ein Einzahlungsfluss ohne dekodierte Daten zwingt Sie zum Parsen von Roh-Logs. Deshalb haben wir Wallet-Erstellung, Token-Transfers, Gas-Schätzung, dekodierte Transaktionsdaten und Webhook-Benachrichtigungen hinter einer API vereint, signiert mit HMAC. Sie erhalten einen Vertrag mit Ihrer Infrastruktur statt einen pro Kette, und Sie betreiben keine Nodes.

Unser praktischer Rat: beginnen Sie mit einem kleinen Transfer auf einer Testumgebung, prüfen Sie Dezimalstellen und Quittungen, abonnieren Sie Ereignisse zur Bestätigung, und skalieren Sie das Volumen erst danach.

— Bitblade

Automatisierung von Transfers mit Chaingateway

Wenn Sie Auszahlungen, Abhebungen oder Einzahlungen in eine App integrieren, können Sie unsere Blockchain API testen und sie mit Chaingateway Webhooks kombinieren, um benachrichtigt zu werden, wenn Zahlungen eingehen. Die Pläne auf unserer Preisseite beginnen bei 49 EUR pro Monat für Plus, Pro bei 99 EUR pro Monat, Premium bei 249 EUR pro Monat und Enterprise bei 499 EUR pro Monat. Die jährliche Abrechnung beträgt 490 EUR für Plus, 990 EUR für Pro, 2490 EUR für Premium und 4990 EUR für Enterprise. Der kostenpflichtige Zugang folgt auf eine kostenlose Testphase.

Bestätigen, dass der Transfer funktioniert hat

Das Absenden einer Transaktion ist nicht dasselbe wie der Abschluss einer Zahlung. Nachdem Sie gesendet haben:

  1. Speichern Sie den Transaktions-Hash sofort.
  2. Prüfen Sie den Status der Quittung. Eine geminte Transaktion kann trotzdem fehlgeschlagen sein.
  3. Suchen Sie nach dem Transfer-Ereignis vom Token-Vertrag mit dem erwarteten Absender, Empfänger und Betrag. Das Ereignis ist Teil der ERC-20-Schnittstelle.
  4. Warten Sie so viele Bestätigungen, wie Ihre Risikopolitik verlangt, bevor Sie Waren freigeben oder ein Guthaben gutschreiben.
  5. Stimmen Sie regelmäßig mit balanceOf ab, um alles zu erfassen, was Ihr Listener übersehen haben könnte.

Pollen funktioniert für ein kleines Skript. Für die Produktion bedeutet das Abonnieren von Benachrichtigungen, dass Ihr System auf Ereignisse reagiert, anstatt wiederholt zu fragen.

Quellen

Empfohlen

Häufig gestellte Fragen

Ja. Die Netzwerkgebühr wird in ETH bezahlt, nicht in dem Token, das Sie senden. Wenn das sendende Wallet kein ETH hat, schlägt die Transaktion fehl. Auf anderen EVM-Ketten benötigen Sie stattdessen die jeweilige native Coin dieser Kette.

USDT existiert in einer ERC-20-Version auf Ethereum und ist einer der am weitesten verbreiteten Token, die auf diesem Standard basieren. Es existiert auch auf anderen Netzwerken, daher sollten Sie immer bestätigen, auf welchem Netzwerk Sie senden und welches der Empfänger erwartet.

Nein. Ethereum ist die Blockchain, und ETH ist ihre native Währung. ERC-20 ist ein Standard-Interface, dem Token-Verträge auf Ethereum folgen, damit Wallets und Apps verschiedene Token einheitlich behandeln können.

Wenn der empfangende Vertrag keine Logik zum Umgang mit eingehenden Token hat, bleiben diese meist stecken, und die Wiederherstellung hängt davon ab, ob dieser Vertrag eine Rettungsfunktion enthält. Prüfen Sie den Empfänger vor dem Senden. Für Vertragsinteraktionen verwenden Sie approve gefolgt von transferFrom.

Ja. Sie können eine Wallet für manuelle Überweisungen nutzen oder eine REST-API, wenn Sie eine Anwendung entwickeln. Mit einer API übernimmt der Anbieter den Node-Zugriff, den Signaturprozess und die Gas-Schätzung, und Ihr Code führt gewöhnliche HTTP-Anfragen aus.

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.