Cripto e wallet

Ispettore di richieste di firma

Funziona in localeNuovo

Lo strumento è in inglese; questa pagina ne fornisce una spiegazione nella tua lingua.

Usa Ispettore di richieste di firma

Cosa fa

Incolla ciò che un wallet o un sito ti chiede di firmare e scopri in parole semplici cosa autorizzerebbe. Approvazioni di token, permit, firme Permit2 e listing Seaport che pagano qualcun altro sono segnati in rosso.

Funziona interamente nel browser: nulla di ciò che inserisci viene caricato online.

Come utilizzare Ispettore di richieste di firma

  1. Copia la richiesta grezza. Prendi il testo esatto che ti viene chiesto di firmare: il JSON EIP-712, i dati 0x di una transazione, l'intero oggetto transazione, una richiesta JSON-RPC o il testo del messaggio.
  2. Incolla e ispeziona. Incollalo nella casella. L'ispezione parte quando incolli; puoi anche premere Inspect o Ctrl+Invio.
  3. Controlla come è stato interpretato. La prima riga dice come è stato interpretato l'input, ad esempio transaction object. Se è sbagliato, scegli il tipo giusto in Read the input as.
  4. Leggi il riquadro colorato. Il badge, il titolo e il riepilogo dicono in parole semplici cosa consentirebbe la firma. L'elenco sotto contiene le segnalazioni; le più gravi sono in grassetto.
  5. Controlla i campi. Guarda spender o operator, token, importo, scadenza e chain nella tabella. Apri Decoded arguments o Message fields per i valori grezzi.
  6. Decidi e condividi. Se non conosci lo spender, rifiuta la richiesta nel tuo wallet e cerca gli indirizzi su un block explorer. Copy report fornisce un riepilogo in testo semplice con i link in forma defanged.

Esempio

Firma Permit2 per un'autorizzazione USDC illimitata

Input
{
  "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"
  }
}
Risultato (registrato il 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
…

Riquadro rosso: lo spender 0xbBbB…BBbB potrebbe spostare una quantità illimitata di USDC tramite Permit2, e né l'autorizzazione né la firma scadono. Viene calcolato il digest EIP-712.

Cosa verifica

SegnaleCosa significa
Badge di rischio: Dangerous, Check carefully, Low risk o NoteDangerous significa che la richiesta può cedere token o NFT. Le approvazioni lo ricevono anche per un'app nota, perché il potere concesso è lo stesso. Una revoca, come approve con importo 0, viene mostrata come Low risk.
Spender o operator in rossoL'indirizzo che otterrebbe il diritto di spostare i tuoi asset. Alcuni contratti sono indicati per nome, come Permit2, Seaport e il conduit di OpenSea; qualsiasi altro indirizzo va verificato.
Importo illimitatoMostrato per 2^256−1 o qualsiasi valore pari o superiore a 2^255, e nelle richieste Permit2 per 2^160−1. Lo spender potrebbe prendere l'intero saldo di quel token, ora e in futuro.
Importo con i decimali del tokenPer USDC, USDT, DAI e WETH su Ethereum il numero grezzo viene convertito, ad esempio 1000000 diventa 1 USDC. Per gli altri token vedi l'intero grezzo letto con 18 e con 6 decimali.
Scadenza e deadlineNon scade mai in pratica (oltre l'anno 5000), valida per più di un anno, oppure già scaduta. Un permit o un'autorizzazione che non scade mai resta utilizzabile molto tempo dopo che te ne sei dimenticato.
Firma alla cieca di un hash di 32 byteIl wallet non può mostrare cosa rappresenta l'hash, e con eth_sign può essere una transazione o un permit. Firma solo un hash che hai prodotto tu stesso.
Controlli sugli ordini SeaportListing a prezzo zero, altri destinatari che ricevono più dell'offerente, oppure oggetti offerti che ricompaiono con un altro destinatario: tipico dei falsi listing NFT che pagano l'aggressore.
Dominio di Sign-In with EthereumUn messaggio di login indica il sito che lo richiede. Se quel dominio non è esattamente il sito su cui ti trovi, la firma potrebbe far accedere qualcun altro al posto tuo.
Due letture di un selettoreapprove(address,uint256) è la stessa chiamata in ERC-20 ed ERC-721. A meno che il contratto non sia uno dei pochi token che lo strumento conosce, vengono mostrate entrambe le letture.

Altri esempi

Approvazione NFT per un'intera collezione

Input
0xa22cb465000000000000000000000000000000000000000000000000000000000000dead0000000000000000000000000000000000000000000000000000000000000001
Risultato

Interpretato come: transaction calldata (known function selector). Dangerous: setApprovalForAll: control of ALL your NFTs in this collection (controllo di TUTTI i tuoi NFT di questa collezione). Operator 0x000000000000000000000000000000000000dEaD, Approved true, Collection (to) not given.

Approvazione USDC limitata in una transazione

Input
{"to":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","data":"0x095ea7b3000000000000000000000000000000000000000000000000000000000000dead00000000000000000000000000000000000000000000000000000000000f4240","value":"0x0","chainId":1}
Risultato

Interpretato come: transaction object. Dangerous: ERC-20 approval. Il riepilogo dice che 0x000000000000000000000000000000000000dEaD potrebbe spostare fino a 1000000 unità del token USDC su Ethereum senza chiedere di nuovo. La tabella mostra Chain Ethereum (chain ID 1), Value 0 ETH (0 wei) e Amount 1000000 con la nota 1 USDC (6 decimals).

Richiesta eth_sign alla cieca

Input
{"method":"eth_sign","params":["0x0000000000000000000000000000000000000001","0xabababababababababababababababababababababababababababababababab"]}
Risultato

Interpretato come: JSON-RPC eth_sign request. Dangerous: Blind signature: un hash di 32 byte invece di un testo, con l'avviso che la maggior parte dei wallet ha disattivato o nascosto eth_sign perché veniva usato dai drainer.

Domande frequenti

Cosa controlla Signature Request Inspector?

Decodifica typed data EIP-712, calldata di transazioni, oggetti transazione e messaggi personal_sign o eth_sign, e calcola il digest EIP-712. Segnala approvazioni di token, setApprovalForAll, permit EIP-2612 e DAI, firme Permit2, ordini Seaport che pagano qualcuno diverso da te e firme alla cieca su un hash di 32 byte.

Una richiesta non segnata in rosso può comunque essere dannosa?

Sì. Lo strumento legge solo la richiesta stessa: non può vedere saldi, approvazioni esistenti o se un contratto è malevolo, e le funzioni fuori dalla sua tabella vengono mostrate come sconosciute. Anche le approvazioni per app legittime sono segnate in rosso, perché la firma concede lo stesso potere in ogni caso.

La richiesta incollata viene inviata da qualche parte?

No. Decodifica e calcolo degli hash avvengono nel tuo browser e la pagina non effettua richieste di rete con il tuo input. Una richiesta di firma non contiene segreti, ma non incollare mai una chiave privata o una seed phrase in nessun sito web.

Un importo piccolo rende sicura un'approvazione?

Limita ciò che può essere preso a quell'importo, ma lo spender può usarlo in qualsiasi momento senza chiedertelo di nuovo. Per questo lo strumento mostra comunque un'approvazione di 1 USDC come Dangerous. Approva solo l'importo che ti serve, per uno spender che hai verificato.

Perché vedo una lettura ERC-20 e una ERC-721 per un solo approve?

Entrambi gli standard usano lo stesso nome di funzione e gli stessi tipi di argomenti, quindi i dati 0x da soli non dicono di quale si tratti. Incolla l'intera transazione con l'indirizzo to, e verifica su un block explorer se quel contratto è un token o una collezione NFT.

Ho già firmato una richiesta che qui appare in rosso. E ora?

Agisci in fretta. Revoca le approvazioni on-chain e sposta ciò che resta in un nuovo wallet. Un permit firmato ma non ancora usato non compare come approvazione, quindi spostare i token è il passo più sicuro. La guida di emergenza elenca l'ordine delle azioni.

Spiegazione dei termini

Ricerca PhishDestroy