Cripto și portofele

Inspector pentru solicitări de semnături

Rulează localNou

Instrumentul în sine este în limba engleză; această pagină îl explică în limba ta.

Folosește Inspector pentru solicitări de semnături

Ce face

Lipiți textul pe care un portofel sau un site vă cere să îl semnați și vedeți, într-un limbaj simplu, ce ar autoriza acesta. Aprobările de tokenuri, permisele, semnăturile Permit2 și listările Seaport care implică plata către o altă persoană sunt marcate cu roșu.

Aplicația funcționează în întregime în browserul tău: nimic din ce introduci nu este încărcat pe server.

Cum se utilizează Inspector pentru solicitări de semnături

  1. Copiați cererea brută. Preia exact textul pe care ți se cere să îl semnezi: fișierul JSON EIP-712, datele 0x ale unei tranzacții, obiectul tranzacției în întregime, o cerere JSON-RPC sau textul mesajului.
  2. Lipiți și verificați. Lipește-l în casetă. Verificarea începe imediat ce lipești textul; poți apăsa, de asemenea, butonul „Verifică” sau combinația de taste Ctrl+Enter.
  3. Vezi cum a fost citit. Prima linie indică modul în care a fost interpretată datele de intrare, de exemplu ca obiect de tranzacție. Dacă această interpretare este greșită, selectați tipul corect din opțiunea „Interpretează datele de intrare ca”.
  4. Citiți placa colorată. Insigna, titlul și rezumatul explică într-un limbaj simplu ce ar permite semnarea documentului. Lista de dedesubt conține semnalele de avertizare; cele mai grave sunt scrise cu caractere aldine.
  5. Verificați câmpurile. Verificați în tabel câmpurile „spender” sau „operator”, „token”, „sumă”, „expirare” și „lanț”. Deschideți secțiunile „Argumente decodate” sau „Câmpuri mesaj” pentru a vedea valorile brute.
  6. Hotărăște-te și împărtășește. Dacă nu cunoști expeditorul, respinge cererea din portofelul tău și verifică adresele pe un explorator de blocuri. Raportul „Copy” oferă un rezumat în text simplu, cu linkurile dezactivate.

Exemplu

Semnătura „Permit2” pentru o alocare nelimitată de USDC

Intrare
{
  "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"
  }
}
Rezultat (înregistrat la data de 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
…

Placă roșie: utilizatorul 0xbBbB…BBbB poate transfera o sumă nelimitată de USDC prin Permit2, iar nici alocația, nici semnătura nu expiră. Se calculează digestul EIP-712.

Ce verifică

SemnalCe înseamnă asta
Etichetă de risc: Periculos, Verificați cu atenție, Risc redus sau Notă„Periculos” înseamnă că solicitarea poate transfera tokenuri sau NFT-uri. Se solicită aprobări chiar și pentru o aplicație cunoscută, deoarece autorizația acordată este aceeași. O revocare, cum ar fi o aprobare cu valoarea 0, este afișată ca „Risc scăzut”.
Cheltuitor sau operator în pierdereAdresa care ar avea dreptul să transfere activele tale. Sunt menționate câteva contracte, precum Permit2, Seaport și canalul OpenSea; orice altă adresă trebuie verificată.
Suma nelimitatăSe aplică pentru 2^256−1 sau orice valoare de 2^255 sau mai mare, precum și în cererile de tip Permit2 pentru 2^160−1. Utilizatorul ar putea prelua întregul tău sold din acel token, atât acum, cât și ulterior.
Suma cu zecimale simboliceÎn cazul USDC, USDT, DAI și WETH pe Ethereum, valoarea brută este convertită; de exemplu, 1000000 devine 1 USDC. Pentru alte tokenuri, se afișează valoarea întreagă brută, cu 18 cifre și 6 zecimale.
Data de expirare și termenul limităÎn practică, nu expiră niciodată (dincolo de anul 5000), este valabil mai mult de un an sau a expirat deja. Un permis sau o alocație care nu expiră niciodată rămâne valabilă mult timp după ce ai uitat de ea.
Semnătura oarbă a unui hash de 32 de octețiPortofelul nu poate afișa ce reprezintă hash-ul, iar în cazul comenzii eth_sign acesta poate fi o tranzacție sau o autorizație. Semnează numai un hash pe care l-ai generat tu însuți.
Verificarea comenzilor din porturile maritimeAnunțuri cu preț zero, alți destinatari primesc mai mult decât cel care a făcut oferta sau articolele oferite reapar la un alt destinatar: caracteristici tipice ale anunțurilor NFT false care aduc venituri atacatorului.
Autentificare cu domeniul EthereumUn mesaj de autentificare menționează numele site-ului care solicită autentificarea. Dacă acel domeniu nu corespunde exact cu site-ul pe care te afli, semnătura ar putea permite altcuiva să se autentifice în locul tău.
Două citiri ale unui selectorapprove(address, uint256) este aceeași apelare atât în ERC-20, cât și în ERC-721. Cu excepția cazului în care contractul este unul dintre puținele tokenuri recunoscute de instrument, sunt afișate ambele valori.

Alte exemple

Aprobarea NFT pentru o întreagă colecție

Intrare
0xa22cb465000000000000000000000000000000000000000000000000000000000000dead0000000000000000000000000000000000000000000000000000000000000001
Rezultat

Se citește astfel: datele de apel ale tranzacției (selector de funcție cunoscut). Atenție: setApprovalForAll: controlul asupra TUTUROR NFT-urilor tale din această colecție. Operator 0x000000000000000000000000000000000000dEaD, Aprobat true, Colecție (către) neprecizată.

Aprobare limitată a USDC într-o tranzacție

Intrare
{"to":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","data":"0x095ea7b3000000000000000000000000000000000000000000000000000000000000dead00000000000000000000000000000000000000000000000000000000000f4240","value":"0x0","chainId":1}
Rezultat

Se citește ca: obiect de tranzacție. Periculos: aprobare ERC-20. Rezumatul indică faptul că 0x000000000000000000000000000000000000dEaD ar putea transfera până la 1.000.000 de unități ale tokenului USDC pe Ethereum fără a mai solicita aprobare. Tabelul prezintă lanțul Ethereum (ID lanț 1), valoarea 0 ETH (0 wei) și suma 1.000.000, cu nota 1 USDC (6 zecimale).

Cerere „eth_sign” oarbă

Intrare
{"method":"eth_sign","params":["0x0000000000000000000000000000000000000001","0xabababababababababababababababababababababababababababababababab"]}
Rezultat

Se citește astfel: cerere JSON-RPC de tip eth_sign. Periculos: semnătură „oarbă”: un hash de 32 de octeți în loc de text, cu indicatorul care arată că majoritatea portofelelor au dezactivat sau ascuns funcția eth_sign, deoarece aceasta era folosită de cei care furau fonduri.

Întrebări frecvente

Ce verifică Instrumentul de verificare a cererilor de semnătură?

Decodează datele de tip EIP-712, datele de apel ale tranzacțiilor, obiectele tranzacțiilor și mesajele „personal_sign” sau „eth_sign” și calculează digestul EIP-712. Acesta semnalează aprobările de tokenuri, setApprovalForAll, permisiunile EIP-2612 și DAI, semnăturile Permit2, ordinele Seaport care efectuează plăți către o altă persoană decât tine și semnăturile oarbe asupra unui hash de 32 de octeți.

O solicitare care nu este marcată cu roșu poate fi totuși dăunătoare?

Da. Instrumentul citește doar cererea în sine: nu poate vedea soldurile, aprobările existente sau dacă un contract este rău intenționat, iar funcțiile din afara tabelului său sunt afișate ca necunoscute. Aprobările pentru aplicațiile legitime sunt, de asemenea, marcate cu roșu, deoarece semnătura conferă același nivel de autoritate în ambele cazuri.

Solicitarea inserată este trimisă undeva?

Nu. Decodarea și generarea hash-ului se efectuează în browserul tău, iar pagina nu trimite nicio solicitare de rețea cu datele introduse de tine. O solicitare de semnătură nu conține informații confidențiale, dar nu introduce niciodată o cheie privată sau o frază de inițializare pe niciun site web.

O sumă mică garantează aprobarea?

Aceasta limitează suma care poate fi retrasă la valoarea respectivă, dar utilizatorul o poate folosi oricând fără a-ți mai cere permisiunea. De aceea, instrumentul afișează în continuare aprobarea sumei de 1 USDC ca fiind „Periculoasă”. Aprobă doar suma de care ai nevoie, pentru un utilizator pe care l-ai verificat.

De ce văd valorile ERC-20 și ERC-721 pentru o singură aprobare?

Ambele standarde folosesc același nume de funcție și aceleași tipuri de argumente, așa că doar datele 0x nu indică despre care dintre ele este vorba. Copiază întreaga tranzacție, inclusiv adresa destinatarului, și verifică pe un explorator de blocuri dacă acel contract este un token sau o colecție de NFT-uri.

Am semnat deja o cerere care apare aici cu roșu. Ce fac acum?

Acționați rapid. Revocați aprobările din lanț și transferați ce a mai rămas într-un portofel nou. O autorizație semnată care nu a fost încă utilizată nu apare ca aprobare, așa că transferul token-urilor este măsura cea mai sigură. Ghidul de urgență prezintă ordinea acțiunilor.

Explicația termenilor

Cercetarea PhishDestroy