คริปโตและวอลเล็ต

เครื่องมือตรวจสอบคำขอลงลายมือชื่อ

ทำงานในเครื่องใหม่

เครื่องมือนี้ใช้ภาษาอังกฤษ; หน้านี้อธิบายด้วยภาษาของคุณ

ใช้เครื่องมือตรวจสอบคำขอลงลายมือชื่อ

หน้าที่ของมันคืออะไร

คัดลอกข้อความที่กระเป๋าเงินหรือเว็บไซต์ขอให้ลงนาม แล้วดูด้วยภาษาอังกฤษที่เข้าใจง่ายว่าข้อความนั้นจะให้สิทธิ์อะไร การอนุมัติโทเคน ใบอนุญาต ลายเซ็น Permit2 และรายการ Seaport ที่จ่ายเงินให้บุคคลอื่น จะถูกทำเครื่องหมายเป็นสีแดง

ระบบนี้ทำงานทั้งหมดในเบราว์เซอร์ของคุณ: ข้อมูลที่คุณป้อนจะไม่ถูกส่งขึ้นเซิร์ฟเวอร์เลย

วิธีใช้เครื่องมือตรวจสอบคำขอลงลายมือชื่อ

  1. คัดลอกคำขอแบบดิบ. นำข้อความที่ตรงตามที่คุณถูกขอให้ลงนาม: JSON EIP-712, ข้อมูล 0x ของธุรกรรม, อובייジェクトธุรกรรมทั้งหมด, คำขอ JSON-RPC หรือข้อความของข้อความ
  2. วางและตรวจสอบ. วางข้อความลงในช่องนี้ การตรวจสอบจะเริ่มทันทีหลังจากวางข้อความ คุณสามารถกดปุ่ม Inspect หรือ Ctrl+Enter ได้เช่นกัน
  3. ตรวจสอบว่าอ่านอย่างไร. บรรทัดแรกจะระบุว่าข้อมูลที่ป้อนเข้ามาถูกอ่านเป็นอะไร เช่น ออบเจ็กต์ธุรกรรม หากข้อมูลนั้นไม่ถูกต้อง ให้เลือกประเภทที่ถูกต้องในส่วน "อ่านข้อมูลที่ป้อนเข้ามาเป็น"
  4. อ่านภาพสี. ตราสัญลักษณ์ ชื่อ และบทสรุปอธิบายด้วยภาษาอังกฤษที่เข้าใจง่ายว่า การลงนามจะอนุญาตให้เกิดอะไรขึ้น ส่วนรายการที่อยู่ด้านล่างนั้นระบุถึงธงต่างๆ โดยธงที่มีความสำคัญที่สุดจะถูกพิมพ์ตัวหนา
  5. ตรวจสอบช่องข้อมูล. ดูข้อมูลผู้ใช้จ่ายหรือผู้ดำเนินการ, โทเคน, จำนวน, วันหมดอายุ และเชน ในตาราง เปิดส่วน Decoded arguments หรือ Message fields เพื่อดูค่าดิบ
  6. ตัดสินใจและแบ่งปัน. หากคุณไม่รู้จักผู้ส่งเงิน ให้ปฏิเสธคำขอในกระเป๋าเงินของคุณ และตรวจสอบที่อยู่บนบล็อกเอ็กซ์พลอเรอร์ ฟังก์ชัน "Copy report" จะให้สรุปในรูปแบบข้อความธรรมดา พร้อมลิงก์ที่ถูกทำให้ปลอดภัยแล้ว

ตัวอย่าง

ลายเซ็น Permit2 สำหรับวงเงิน USDC ไม่จำกัด

ข้อมูลเข้า
{
  "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"
  }
}
ผลลัพธ์ (บันทึกเมื่อวันที่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
…

แผ่นสีแดง: ผู้ใช้จ่าย 0xbBbB…BBbB สามารถโอน USDC ได้ไม่จำกัดผ่าน Permit2 และทั้งวงเงินอนุญาตและลายเซ็นจะไม่หมดอายุ EIP-712 digest ได้ถูกคำนวณแล้ว

สิ่งที่ระบบตรวจสอบ

สัญญาณความหมายของคำนี้คืออะไร
ป้ายเตือนความเสี่ยง: อันตราย, ตรวจสอบอย่างละเอียด, ความเสี่ยงต่ำ หรือ หมายเหตุ"อันตราย" หมายความว่าคำขอสามารถส่งมอบโทเคนหรือ NFT ได้ การอนุมัติจะถือว่ามีความเสี่ยงสูง แม้สำหรับแอปที่รู้จักกันดีก็ตาม เพราะอำนาจที่มอบให้มีความเท่ากัน การเพิกถอน เช่น การอนุมัติด้วยจำนวน 0 จะถูกแสดงว่ามีความเสี่ยงต่ำ
ผู้ใช้เงินหรือผู้ดำเนินการที่แสดงด้วยสีแดงที่อยู่ที่จะได้รับสิทธิ์ในการโอนสินทรัพย์ของคุณ มีสัญญาบางฉบับที่ถูกระบุไว้ เช่น Permit2, Seaport และ OpenSea conduit; ส่วนที่อยู่อื่น ๆ จำเป็นต้องตรวจสอบ
จำนวนไม่จำกัดแสดงสำหรับค่า 2^256−1 หรือค่าใดก็ตามที่เท่ากับหรือมากกว่า 2^255 และในคำขอ Permit2 สำหรับค่า 2^160−1 ผู้ใช้จ่ายอาจนำเงินในบัญชีทั้งหมดของคุณสำหรับโทเคนนั้นไป ทั้งในขณะนี้และในอนาคต
จำนวนที่มีทศนิยมตามค่าที่กำหนดสำหรับ USDC, USDT, DAI และ WETH บน Ethereum ตัวเลขดิบจะถูกแปลง เช่น 1000000 จะกลายเป็น 1 USDC ส่วนสำหรับโทเค็นอื่น ๆ คุณจะเห็นตัวเลขดิบที่อ่านด้วยฐาน 18 และแสดงถึง 6 ตำแหน่งทศนิยม
วันหมดอายุและกำหนดเวลาในทางปฏิบัติแล้วไม่หมดอายุ (แม้จะผ่านปี 5000 ไปแล้ว), มีอายุการใช้งานมากกว่าหนึ่งปี หรือหมดอายุไปแล้ว ใบอนุญาตหรือสิทธิ์ที่ไม่หมดอายุจะยังคงใช้ได้ต่อไป แม้คุณจะลืมมันไปนานแล้วก็ตาม
ลายเซ็นแบบไม่ตรวจสอบของแฮชขนาด 32 ไบต์กระเป๋าเงินไม่สามารถแสดงได้ว่าแฮชนั้นหมายถึงอะไร และเมื่อใช้ eth_sign มันอาจเป็นการทำธุรกรรมหรือการอนุญาตได้ ดังนั้น ให้ลงนามเฉพาะแฮชที่คุณสร้างขึ้นเองเท่านั้น
ตรวจสอบคำสั่งซื้อของท่าเรือการลงขายด้วยราคา 0, ผู้รับรายอื่นได้รับมากกว่าผู้เสนอราคา หรือสินค้าที่เสนอขายปรากฏขึ้นอีกครั้งกับผู้รับรายอื่น: เป็นลักษณะทั่วไปของรายการ NFT ปลอมที่จ่ายเงินให้ผู้โจมตี
เข้าสู่ระบบด้วยโดเมน Ethereumข้อความเข้าสู่ระบบจะระบุชื่อเว็บไซต์ที่ขอข้อมูล หากโดเมนนั้นไม่ใช่เว็บไซต์ที่คุณกำลังใช้งานอยู่พอดี ลายเซ็นอาจทำให้ผู้อื่นเข้าสู่ระบบแทนคุณได้
การอ่านค่าสองครั้งจากตัวเลือกเดียวapprove(address, uint256) เป็นการเรียกใช้ที่เหมือนกันใน ERC-20 และ ERC-721 เว้นแต่สัญญาจะเป็นหนึ่งในโทเค็นไม่กี่ชนิดที่เครื่องมือนี้รู้จัก ในกรณีนั้น จะแสดงค่าทั้งสองค่า

ตัวอย่างเพิ่มเติม

การอนุมัติ NFT สำหรับคอลเลกชันทั้งหมด

ข้อมูลเข้า
0xa22cb465000000000000000000000000000000000000000000000000000000000000dead0000000000000000000000000000000000000000000000000000000000000001
ผล

อ่านว่า: ข้อมูลการเรียกใช้ธุรกรรม (ตัวเลือกรหัสฟังก์ชันที่รู้จัก) อันตราย: setApprovalForAll: การควบคุม NFT ทั้งหมดของคุณในคอลเลกชันนี้ Operator 0x000000000000000000000000000000000000dEaD, Approved true, Collection (to) not given.

การอนุมัติ USDC ที่จำกัดในธุรกรรม

ข้อมูลเข้า
{"to":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","data":"0x095ea7b3000000000000000000000000000000000000000000000000000000000000dead00000000000000000000000000000000000000000000000000000000000f4240","value":"0x0","chainId":1}
ผล

อ่านว่า: ออบเจ็กต์ธุรกรรม. อันตราย: การอนุมัติ ERC-20. สรุปว่า 0x000000000000000000000000000000000000dEaD สามารถโอนโทเคน USDC ได้สูงสุด 1,000,000 หน่วยบน Ethereum โดยไม่ต้องขออนุญาตอีกครั้ง ตารางแสดงว่า Chain Ethereum (ID โซ่ 1), Value 0 ETH (0 wei) และ Amount 1,000,000 พร้อมหมายเหตุ 1 USDC (6 ทศนิยม)

คำขอ eth_sign แบบไม่ระบุตัวตน

ข้อมูลเข้า
{"method":"eth_sign","params":["0x0000000000000000000000000000000000000001","0xabababababababababababababababababababababababababababababababab"]}
ผล

อ่านว่า: คำขอ eth_sign แบบ JSON-RPC อันตราย: ลายเซ็นแบบบลายด์ (Blind signature): ค่าแฮชขนาด 32 ไบต์ แทนที่จะเป็นข้อความ พร้อมด้วยธงที่บ่งชี้ว่ากระเป๋าเงินส่วนใหญ่ได้ปิดใช้งานหรือซ่อนฟังก์ชัน eth_sign เนื่องจากผู้โจมตีใช้มันเพื่อถอนเงิน

คำถามที่พบบ่อย

Signature Request Inspector ตรวจสอบอะไร?

มันถอดรหัสข้อมูลแบบ EIP-712, calldata ของธุรกรรม, ออบเจ็กต์ธุรกรรม และข้อความ personal_sign หรือ eth_sign พร้อมทั้งคำนวณค่า digest ของ EIP-712 มันจะระบุการอนุมัติโทเคน, setApprovalForAll, การอนุญาต EIP-2612 และ DAI, ลายเซ็น Permit2, คำสั่ง Seaport ที่จ่ายให้บุคคลอื่นนอกเหนือจากคุณ และลายเซ็นแบบบลายด์บนแฮชขนาด 32 ไบต์

คำขอที่ไม่ได้ถูกทำเครื่องหมายเป็นสีแดง ยังอาจก่อให้เกิดอันตรายได้หรือไม่?

ใช่ เครื่องมือนี้อ่านเฉพาะคำขอเท่านั้น: มันไม่สามารถเห็นยอดเงิน การอนุมัติที่มีอยู่ หรือว่าสัญญาดังกล่าวมีเจตนาร้ายหรือไม่ และฟังก์ชันที่อยู่นอกตารางของมันจะแสดงเป็น "ไม่ทราบ" การอนุมัติสำหรับแอปที่ถูกต้องก็ถูกทำเครื่องหมายเป็นสีแดงเช่นกัน เพราะลายเซ็นนั้นให้สิทธิ์เท่ากันในทั้งสองกรณี

คำขอที่คัดลอกและวางนี้ถูกส่งไปที่ใดบ้างหรือไม่?

ไม่ การถอดรหัสและการแฮชดำเนินการในเบราว์เซอร์ของคุณ และหน้าเว็บนี้ไม่ส่งคำขอเครือข่ายใดๆ จากข้อมูลที่คุณป้อน คำขอลงนามไม่เก็บข้อมูลลับใดๆ แต่ห้ามคัดลอกและวางกุญแจส่วนตัวหรือวลีเมล็ดลงในเว็บไซต์ใดๆ ทั้งสิ้น

จำนวนเงินที่น้อยจะทำให้การอนุมัติปลอดภัยได้หรือไม่?

มันจำกัดจำนวนเงินที่สามารถถอนได้ไว้ที่จำนวนนั้น แต่ผู้ใช้จ่ายสามารถใช้เงินนั้นได้ทุกเมื่อโดยไม่ต้องขออนุญาตคุณอีก นั่นคือเหตุผลที่เครื่องมือนี้ยังคงแสดงการอนุมัติ 1 USDC เป็น "อันตราย" ให้อนุมัติเฉพาะจำนวนเงินที่คุณต้องการเท่านั้น สำหรับผู้ใช้จ่ายที่คุณได้ตรวจสอบแล้ว

ทำไมผมถึงเห็นค่าอ่านของ ERC-20 และ ERC-721 สำหรับคำสั่ง approve เดียวกัน?

ทั้งสองมาตรฐานใช้ชื่อฟังก์ชันและประเภทอาร์กิวเมนต์เดียวกัน ดังนั้นข้อมูล 0x เพียงอย่างเดียวไม่สามารถระบุได้ว่าเป็นมาตรฐานใด ให้คัดลอกธุรกรรมทั้งหมดพร้อมที่อยู่ปลายทาง แล้วตรวจสอบบนบล็อกเอ็กซ์พลอเรอร์ว่าสัญญาดังกล่าวเป็นโทเคนหรือคอลเลกชัน NFT

ผมได้ลงนามในคำขอที่แสดงเป็นสีแดงที่นี่แล้วครับ แล้วตอนนี้ต้องทำอย่างไร?

ดำเนินการทันที ยกเลิกการอนุมัติบนเชน และย้ายโทเคนที่เหลือไปยังกระเป๋าเงินใหม่ ใบอนุญาตที่ลงนามแล้วแต่ยังไม่ได้ใช้จะไม่ปรากฏเป็นการอนุมัติ ดังนั้นการย้ายโทเคนจึงเป็นขั้นตอนที่ปลอดภัยกว่า คู่มือฉุกเฉินได้ระบุลำดับขั้นตอนการดำเนินการไว้แล้ว

คำอธิบายศัพท์

การวิจัยของ PhishDestroy