加密货币与钱包

签名请求检查器

本地运行新增

该工具本身是英文的;本页面将用您的语言对它进行说明。

使用 签名请求检查器

功能介绍

粘贴钱包或网站要求你签署的内容,用通俗的语言看懂签署后会授权什么。代币授权、permit、Permit2 签名以及把款项付给他人的 Seaport 挂单都会被标为红色。

它完全在您的浏览器中运行:您输入的任何内容都不会被上传。

如何使用签名请求检查器

  1. 复制原始请求. 取你被要求签署的确切文本:EIP-712 JSON、交易的 0x 数据、完整的交易对象、JSON-RPC 请求或消息文本。
  2. 粘贴并检查. 粘贴到文本框中。粘贴后即开始检查;也可以按 Inspect(检查)或 Ctrl+Enter。
  3. 确认识别方式. 第一行说明输入被识别为什么,例如 transaction object。如果识别有误,请在 Read the input as(将输入识别为)中选择正确的类型。
  4. 阅读彩色提示板. 徽标、标题和摘要用通俗的语言说明签署后会允许什么。其下方的列表列出各项标记;最严重的以粗体显示。
  5. 检查各字段. 查看表格中的 spender 或 operator、代币、金额、过期时间和链。展开 Decoded arguments 或 Message fields 可查看原始值。
  6. 做出决定并分享. 如果你不认识被授权方,请在钱包中拒绝该请求,并在区块浏览器上查询这些地址。Copy report 会生成一份纯文本摘要,其中的链接已做无害化处理。

示例

授予无限 USDC 额度的 Permit2 签名

输入
{
  "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 可以通过 Permit2 转移无限数量的 USDC,而且额度和签名都不会过期。会计算 EIP-712 摘要。

检查内容

信号其含义
风险徽标:Dangerous、Check carefully、Low risk 或 NoteDangerous 表示该请求可能交出代币或 NFT。即使是知名应用的授权也会得到这个徽标,因为授予的权力相同。撤销授权(例如金额为 0 的 approve)显示为 Low risk。
红色的 spender 或 operator将获得转移你资产权利的地址。少数合约会显示名称,例如 Permit2、Seaport 和 OpenSea conduit;其他任何地址都需要核查。
无限金额当金额为 2^256−1 或任何不小于 2^255 的值,以及 Permit2 请求中为 2^160−1 时显示。被授权方可以拿走你该代币的全部余额,现在和以后都可以。
按代币小数位换算的金额对于以太坊上的 USDC、USDT、DAI 和 WETH,原始数字会被换算,例如 1000000 变为 1 USDC。对于其他代币,你会看到原始整数分别按 18 位和 6 位小数解读的结果。
过期时间和截止时间实际上永不过期(超过 5000 年)、有效期超过一年,或已经过期。永不过期的 permit 或额度,在你早已忘记之后仍然可用。
对 32 字节哈希的盲签钱包无法显示该哈希代表什么,而使用 eth_sign 时,它可能是一笔交易或一个 permit。只签署你自己生成的哈希。
Seaport 订单检查零价格挂单、其他接收方得到的比出价方更多,或出价物品以另一个接收方再次出现:这些是把款项付给攻击者的虚假 NFT 挂单的典型特征。
Sign-In with Ethereum 域名登录消息会注明发出请求的网站。如果该域名与你所在的网站不完全一致,签名可能会让别人以你的身份登录。
同一选择器的两种解读approve(address,uint256) 在 ERC-20 和 ERC-721 中是同一个调用。除非该合约是工具已知的少数代币之一,否则会同时显示两种解读。

更多示例

对整个合集的 NFT 授权

输入
0xa22cb465000000000000000000000000000000000000000000000000000000000000dead0000000000000000000000000000000000000000000000000000000000000001
结果

Read as: transaction calldata (known function selector)。Dangerous:setApprovalForAll:控制你在该合集中的全部 NFT。Operator 0x000000000000000000000000000000000000dEaD,Approved true,Collection (to) 未给出。

交易中有限额的 USDC 授权

输入
{"to":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","data":"0x095ea7b3000000000000000000000000000000000000000000000000000000000000dead00000000000000000000000000000000000000000000000000000000000f4240","value":"0x0","chainId":1}
结果

Read as: transaction object。Dangerous:ERC-20 approval。摘要指出,0x000000000000000000000000000000000000dEaD 可以无需再次征得同意,转移以太坊上最多 1000000 个单位的 USDC 代币。表格显示 Chain Ethereum (chain ID 1)、Value 0 ETH (0 wei),以及 Amount 1000000,并注明 1 USDC (6 decimals)。

盲签 eth_sign 请求

输入
{"method":"eth_sign","params":["0x0000000000000000000000000000000000000001","0xabababababababababababababababababababababababababababababababab"]}
结果

Read as: JSON-RPC eth_sign request。Dangerous:Blind signature(盲签):签署的是 32 字节哈希而不是文本,并标注大多数钱包已禁用或隐藏 eth_sign,因为盗币程序曾利用它。

常见问题解答

签名请求检查器检查什么?

它解码 EIP-712 类型化数据、交易 calldata、交易对象以及 personal_sign 或 eth_sign 消息,并计算 EIP-712 摘要。它会标记代币授权、setApprovalForAll、EIP-2612 和 DAI permit、Permit2 签名、把款项付给你以外的人的 Seaport 订单,以及对 32 字节哈希的盲签。

没有标红的请求也可能有害吗?

可能。工具只读取请求本身:它看不到余额、已有的授权,也无法判断合约是否恶意,不在其函数表中的函数会显示为未知。正规应用的授权同样会被标红,因为无论哪种情况,签名授予的权力都是一样的。

粘贴的请求会被发送到任何地方吗?

不会。解码和哈希计算在你的浏览器中运行,页面不会用你的输入发出任何网络请求。签名请求本身不含机密,但切勿在任何网站中粘贴私钥或助记词。

金额很小的授权就安全吗?

它把可被拿走的数额限制在该金额以内,但被授权方可以随时使用,无需再征得你的同意。这就是为什么工具仍把 1 USDC 的授权显示为 Dangerous。只为你核查过的被授权方授权你所需的金额。

为什么一个 approve 会同时显示 ERC-20 和 ERC-721 两种解读?

两种标准使用相同的函数名和参数类型,因此仅凭 0x 数据无法判断是哪一种。请粘贴带有 to 地址的完整交易,并在区块浏览器上确认该合约是代币还是 NFT 合集。

我已经签署了一个在这里显示为红色的请求,现在该怎么办?

尽快行动。撤销链上授权,并把剩余资产转移到新钱包。已签署但尚未被使用的 permit 不会显示为授权,因此转移代币是更稳妥的做法。Emergency Guide(应急指南)列出了行动顺序。

术语说明

PhishDestroy 研究