Krypto und Wallets

Signaturanfragen-Prüfer

Läuft lokalNeu

Das Tool selbst ist auf Englisch; auf dieser Seite wird es in Ihrer Sprache erklärt.

Signaturanfragen-Prüfer verwenden

Was es bewirkt

Fügen Sie ein, was eine Wallet oder Website Sie signieren lässt, und sehen Sie verständlich erklärt, was dadurch erlaubt würde. Token-Freigaben, Permits, Permit2-Signaturen und Seaport-Listings, die jemand anderen bezahlen, werden rot markiert.

Es läuft vollständig in Ihrem Browser: Es werden keine Ihrer Eingaben hochgeladen.

So verwenden Sie Signaturanfragen-Prüfer

  1. Die rohe Anfrage kopieren. Nehmen Sie genau den Text, den Sie signieren sollen: das EIP-712-JSON, die 0x-Daten einer Transaktion, das gesamte Transaktionsobjekt, eine JSON-RPC-Anfrage oder den Nachrichtentext.
  2. Einfügen und prüfen. Fügen Sie ihn in das Feld ein. Die Prüfung beginnt beim Einfügen; Sie können auch Inspect oder Strg+Enter drücken.
  3. Prüfen, wie die Eingabe gelesen wurde. Die erste Zeile sagt, als was die Eingabe gelesen wurde, zum Beispiel transaction object. Ist das falsch, wählen Sie unter Read the input as den richtigen Typ.
  4. Das farbige Feld lesen. Badge, Titel und Zusammenfassung sagen verständlich, was eine Signatur erlauben würde. Die Liste darunter enthält die Markierungen; die schwerwiegendsten sind fett gedruckt.
  5. Felder prüfen. Sehen Sie sich in der Tabelle Spender oder Operator, Token, Betrag, Ablauf und Chain an. Öffnen Sie Decoded arguments oder Message fields für die Rohwerte.
  6. Entscheiden und teilen. Kennen Sie den Spender nicht, lehnen Sie die Anfrage in Ihrer Wallet ab, und schlagen Sie die Adressen in einem Block-Explorer nach. Copy report liefert eine Zusammenfassung als reinen Text mit entschärften Links.

Beispiel

Permit2-Signatur für eine unbegrenzte USDC-Freigabe

Eingabe
{
  "types": {
    "EIP712Domain": [
      {
        "name": "name",
        "type": "string"
      },
      {
        "name": "chainId",
        "type": "uint256"
      },
      {
        "name": "verifyingContract",
        "type": "address"
      }
    ],
    "PermitSingle": [
      {
        "name": "details",
        "type": "PermitDetails"
      },
      {
        "name": "spender",
        "type": "address"
      },
      {
        "name": "sigDeadline",
        "type": "uint256"
      }
    ],
    "PermitDetails": [
      {
        "name": "token",
        "type": "address"
      },
      {
        "name": "amount",
        "type": "uint160"
      },
      {
        "name": "expiration",
        "type": "uint48"
      },
      {
        "name": "nonce",
        "type": "uint48"
      }
    ]
  },
  "primaryType": "PermitSingle",
  "domain": {
    "name": "Permit2",
    "chainId": 1,
    "verifyingContract": "0x000000000022D473030F116dDEE9F6B43aC78BA3"
  },
  "message": {
    "details": {
      "token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "amount": "1461501637330902918203684832716283019655932542975",
      "expiration": "281474976710655",
      "nonce": "0"
    },
    "spender": "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB",
    "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935"
  }
}
Ausgabe (aufgezeichnet am 2026-10-20)
Read as: EIP-712 typed data. Change this with “Read the input as”.

DangerousPermit2 PermitSingle: token allowance by signature (UNLIMITED)

Signing lets 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB move an unlimited amount of 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 (USDC token on Ethereum) out of your wallet through Permit2. The allowance never expires in practice. The spender submits this signature itself, so you will not see another prompt. Drainers favour Permit2 because many wallets have already approved Permit2 for apps such as Uniswap.

Unlimited amount: the spender can take your whole balance of the token.
The allowance never expires in practice.
The signature never expires in practice.
SPENDER	0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB
TOKEN	0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
USDC token on Ethereum

AMOUNT	Unlimited: 2^160−1, the Permit2 maximum (1461501637330902918203684832716283019655932542975)
ALLOWANCE EXPIRES	2^48−1 (Permit2 maximum): no practical expiry (beyond the year 5000)
NONCE	0
SIGNATURE VALID UNTIL (SIGDEADLINE)	2^256−1: no practical expiry (beyond the year 5000)
DOMAIN	name "Permit2"
CHAIN	Ethereum (chain ID 1)
VERIFYING CONTRACT	0x000000000022D473030F116dDEE9F6B43aC78BA3
Permit2 (Uniswap)

EIP-712 DIGEST (WHAT IS SIGNED)	0x579baa31b8f7279c82034e935d103d07caa27a817903937e201389d81d55984c
DOMAIN SEPARATOR	0x866a5aba21966af95d6c7ab78eb2b2fc913915c28be3b9aa07cc04ff903e3f28
MESSAGE HASH (HASHSTRUCT)	0xb646364eb4dc82faf68b61d79beb585797490532ff745845f3821e6f8573463c
PRIMARY TYPE	PermitSingle(PermitDetails details,address spender,uint256
…

Rotes Feld: Der Spender 0xbBbB…BBbB könnte über Permit2 eine unbegrenzte Menge USDC bewegen, und weder die Freigabe noch die Signatur läuft ab. Der EIP-712-Digest wird berechnet.

Was dabei geprüft wird

SignalWas das bedeutet
Risiko-Badge: Dangerous, Check carefully, Low risk oder NoteDangerous bedeutet, dass die Anfrage Token oder NFTs übergeben kann. Freigaben erhalten diese Einstufung auch bei einer bekannten App, weil die verliehene Macht dieselbe ist. Ein Widerruf, etwa approve mit Betrag 0, wird als Low risk angezeigt.
Spender oder Operator in RotDie Adresse, die das Recht erhalten würde, Ihre Assets zu bewegen. Einige Contracts werden benannt, etwa Permit2, Seaport und der OpenSea Conduit; jede andere Adresse muss geprüft werden.
Unbegrenzter BetragAngezeigt bei 2^256−1 oder jedem Wert ab 2^255 sowie in Permit2-Anfragen bei 2^160−1. Der Spender könnte Ihr gesamtes Guthaben dieses Tokens nehmen, jetzt und später.
Betrag mit Token-DezimalstellenFür USDC, USDT, DAI und WETH auf Ethereum wird die Rohzahl umgerechnet, zum Beispiel wird 1000000 zu 1 USDC. Bei anderen Token sehen Sie die rohe Ganzzahl, gelesen mit 18 und mit 6 Dezimalstellen.
Ablauf und DeadlineLäuft praktisch nie ab (nach dem Jahr 5000), gilt länger als ein Jahr oder ist bereits abgelaufen. Ein Permit oder eine Freigabe ohne Ablauf bleibt nutzbar, lange nachdem Sie sie vergessen haben.
Blindsignatur über einen 32-Byte-HashDie Wallet kann nicht anzeigen, wofür der Hash steht, und bei eth_sign kann er eine Transaktion oder ein Permit sein. Signieren Sie nur einen Hash, den Sie selbst erzeugt haben.
Prüfungen von Seaport-OrdersListing zum Preis null, andere Empfänger erhalten mehr als der Anbieter, oder angebotene Objekte tauchen mit einem anderen Empfänger wieder auf: typisch für gefälschte NFT-Listings, die den Angreifer bezahlen.
Domain bei Sign-In with EthereumEine Login-Nachricht nennt die anfragende Website. Ist diese Domain nicht genau die Website, auf der Sie sind, könnte die Signatur jemand anderen als Sie anmelden.
Zwei Lesarten eines Selectorsapprove(address,uint256) ist in ERC-20 und ERC-721 derselbe Aufruf. Sofern der Contract nicht einer der wenigen Token ist, die das Tool kennt, werden beide Lesarten angezeigt.

Weitere Beispiele

NFT-Freigabe für eine ganze Kollektion

Eingabe
0xa22cb465000000000000000000000000000000000000000000000000000000000000dead0000000000000000000000000000000000000000000000000000000000000001
Ergebnis

Read as: transaction calldata (known function selector). Dangerous: setApprovalForAll: control of ALL your NFTs in this collection. Operator 0x000000000000000000000000000000000000dEaD, Approved true, Collection (to) not given.

Begrenzte USDC-Freigabe in einer Transaktion

Eingabe
{"to":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","data":"0x095ea7b3000000000000000000000000000000000000000000000000000000000000dead00000000000000000000000000000000000000000000000000000000000f4240","value":"0x0","chainId":1}
Ergebnis

Read as: transaction object. Dangerous: ERC-20 approval. Die Zusammenfassung besagt, dass 0x000000000000000000000000000000000000dEaD bis zu 1000000 Einheiten des Tokens USDC auf Ethereum bewegen könnte, ohne erneut zu fragen. Die Tabelle zeigt Chain Ethereum (chain ID 1), Value 0 ETH (0 wei) und Amount 1000000 mit dem Hinweis 1 USDC (6 decimals).

Blinde eth_sign-Anfrage

Eingabe
{"method":"eth_sign","params":["0x0000000000000000000000000000000000000001","0xabababababababababababababababababababababababababababababababab"]}
Ergebnis

Read as: JSON-RPC eth_sign request. Dangerous: Blind signature: ein 32-Byte-Hash statt Text, mit dem Hinweis, dass die meisten Wallets eth_sign deaktiviert oder versteckt haben, weil Drainer es genutzt haben.

Häufig gestellte Fragen

Was prüft der Signature Request Inspector?

Er dekodiert EIP-712-Typed-Data, Transaktions-Calldata, Transaktionsobjekte sowie Nachrichten für personal_sign oder eth_sign und berechnet den EIP-712-Digest. Er markiert Token-Freigaben, setApprovalForAll, Permits nach EIP-2612 und von DAI, Permit2-Signaturen, Seaport-Orders, die jemand anderen als Sie bezahlen, und Blindsignaturen über einen 32-Byte-Hash.

Kann eine Anfrage, die nicht rot markiert ist, trotzdem schädlich sein?

Ja. Das Tool liest nur die Anfrage selbst: Es sieht weder Guthaben noch bestehende Freigaben, noch ob ein Contract bösartig ist, und Funktionen außerhalb seiner Tabelle werden als unbekannt angezeigt. Freigaben für legitime Apps werden ebenfalls rot markiert, weil die Signatur in jedem Fall dieselbe Macht verleiht.

Wird die eingefügte Anfrage irgendwohin gesendet?

Nein. Dekodierung und Hashing laufen in Ihrem Browser, und die Seite stellt mit Ihrer Eingabe keine Netzwerkanfragen. Eine Signaturanfrage enthält kein Geheimnis, aber fügen Sie nie einen privaten Schlüssel oder eine Seed-Phrase auf irgendeiner Website ein.

Macht ein kleiner Betrag eine Freigabe sicher?

Er begrenzt, was genommen werden kann, auf diesen Betrag, aber der Spender kann ihn jederzeit nutzen, ohne Sie erneut zu fragen. Deshalb zeigt das Tool auch eine Freigabe über 1 USDC als Dangerous an. Geben Sie nur den Betrag frei, den Sie brauchen, und nur für einen Spender, den Sie geprüft haben.

Warum sehe ich für ein approve eine ERC-20- und eine ERC-721-Lesart?

Beide Standards verwenden denselben Funktionsnamen und dieselben Argumenttypen, daher verraten die 0x-Daten allein nicht, welcher es ist. Fügen Sie die ganze Transaktion mit der to-Adresse ein, und prüfen Sie in einem Block-Explorer, ob dieser Contract ein Token oder eine NFT-Kollektion ist.

Ich habe eine Anfrage, die hier rot erscheint, bereits signiert. Was nun?

Handeln Sie schnell. Widerrufen Sie On-Chain-Freigaben, und verschieben Sie das Verbliebene in eine neue Wallet. Ein signiertes Permit, das noch nicht genutzt wurde, erscheint nicht als Freigabe, daher ist das Verschieben der Token der sicherere Schritt. Die Notfallanleitung listet die Reihenfolge der Maßnahmen auf.

Begriffserläuterungen

PhishDestroy-Forschung