Jede Fehlerantwort hat zwei Felder: error (maschinenlesbar, stabil, ändert sich zwischen Versionen nicht) und message (für Menschen lesbar, kann im Laufe der Zeit verbessert werden). Wechsle in deinem Code immer zu error. Zeige message den Benutzern.

Fehlerformat

Alle Fehlerantworten folgen der gleichen Struktur:

Fehlerantwort
{ "error": "error_code_here", "message": "Human-readable explanation" }

Einige Fehler enthalten zusätzliche Felder: ref (eine Referenz-ID für den Delegationsversuch) und refund (Details zu einer automatischen Rückerstattung).

Validierungsfehler

FehlercodeHTTPUrsacheLösung
invalid_tx_hash400tx_hash ist keine 64-stellige HexadezimalzeichenketteÜberprüfe das Hash-Format. Muss genau 64 Hexadezimalzeichen sein, kein Präfix.
invalid_address400delegate_to ist keine gültige Tron-AdresseValidiere die Adresse mit TronWeb.isAddress() vor dem Aufruf.
missing_signature400Keine Signatur in der Anfrage vorhandenSigniere die Nachricht {tx_hash}:{delegate_to} mit tronWeb.trx.signMessageV2() aus der Wallet, die das TRX gesendet hat.
invalid_signature401Signatur konnte nicht verifiziert werdenStelle sicher, dass du genau {tx_hash}:{delegate_to} signiert hast (Hexadezimal-Hash in Kleinbuchstaben, Doppelpunkt, exakte Tron-Adresse).
signature_mismatch403Unterzeichner-Adresse stimmt nicht mit dem Zahlungssender übereinDie Signatur muss von der gleichen Wallet kommen, die das TRX gesendet hat. Andere Wallet = abgelehnt.

Zahlungsfehler

FehlercodeHTTPUrsacheLösung
payment_verification_failed404 / 400Die On-Chain-Zahlung konnte nicht verifiziert werden. Das message Feld beschreibt die spezifische Ursache.Häufige Ursachen: Transaktion noch nicht bestätigt (warte 3–5 Sekunden und versuche es erneut), falsche Empfängeradresse, Transaktion ist keine TRX-Überweisung, unter dem Minimum von 4 TRX.
hash_already_used409Dieser tx Hash wurde bereits eingelöstJeder Zahlungs-Hash kann nur einmal verwendet werden. Sende eine neue Zahlung für eine neue Delegation.

Servicefehler

FehlercodeHTTPUrsacheLösung
delegation_failed400 / 500Anbieter konnte die Energie-Delegation nicht bereitstellenFalls der Fehler nach Verifizierung deiner Zahlung auftrat, wird eine automatische Rückerstattung eingeleitet. Überprüfe das refund Objekt. Versuchen Sie es andernfalls erneut, oder kontaktieren Sie den Support mit dem ref ID.
rate_limited429Zu viele Anfragen von dieser IP-AdresseVerlangsamen Sie das Tempo und versuchen Sie es erneut. Das Limit beträgt 20 Anfragen pro Sekunde.
server_error500Unerwarteter interner FehlerVersuchen Sie es nach einigen Sekunden erneut. Bei Fortbestand kontaktieren Sie den Support mit dem ref falls verfügbar.

Fehlerbehandlung im Code

empfohlene Fehlerbehandlung
const result = await fetch('https://api.tronnrg.com/delegate', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ tx_hash: hash, delegate_to: addr, signature: sig }), }).then(r => r.json()); if (result.error) { switch (result.error) { case 'payment_verification_failed': // Most common: tx not yet indexed. Wait 3s and retry once. await new Promise(r => setTimeout(r, 3000)); return retry(hash, addr); case 'hash_already_used': // Already claimed. Don't retry. throw new Error('Duplicate delegation attempt'); case 'signature_mismatch': // Signer != payment sender. Sign with the same key. throw new Error('Signer does not match payment sender'); case 'delegation_failed': // Refund queued automatically if payment was verified. if (result.refund) console.log('Refund queued:', result.refund); break; default: console.error(result.error, result.message); } return; } // Success console.log('Delegated:', result.energy, 'energy'); console.log('Delegation tx:', result.delegations[0].tx); // verify on TronScan console.log('Ref:', result.ref);
Telegram WhatsApp