EIP-712 v1 — eth_signTypedData(旧格式,数组结构)
基础转账授权 (v1)
eth_signTypedData
v1 Legacy
查看参数 ▾
bytes4 短于宽度右侧补零
eth_signTypedData
bytes4
v1 Legacy
bytes4 类型值仅 3 字节 0xa9059c,EIP-712 规范要求右侧补零至 4 字节 → 0xa9059c00。
测试钱包是否正确处理右侧补零编码。
查看参数 ▾
EIP-712 v3 — eth_signTypedData_v3
ERC-20 Permit (v3)
eth_signTypedData_v3
DeFi 常见
查看参数 ▾
订单签名 (v3)
eth_signTypedData_v3
DEX 场景
查看参数 ▾
EIP-712 v4 — eth_signTypedData_v4(含嵌套、数组、bytes、动态类型等全覆盖)
ERC-20 Permit
v4bytes32
简单
查看参数 ▾
Permit2 Batch Transfer
v4arraynested
Uniswap
查看参数 ▾
OrderBook 订单
v4uint256address
DEX
查看参数 ▾
Gnosis Safe 多签
v4bytes
多签
查看参数 ▾
Aurexo Connect Wallet
v4addresstimestamp
Aurexo
查看参数 ▾
EIP-3009 授权转账
v4TransferWithAuthorizationbytes32 nonce
USDC
签署 1 USDC 转给当前账户自身的 Gasless 授权,有效期 1 小时;本工具仅生成签名,不广播链上交易。
查看参数 ▾
Morph USDT0 签名支付
v4ReceiveWithAuthorizationchainId 2818
EIP-3009
按提供的数据原样复现:授权 BGWDispatcher 从指定账户接收 1.004277 USDT0。仅请求签名,不广播交易。
查看参数 ▾
Injective Web3 Tx
v4Txstring JSON
Injective
按提供的数据原样签署 Injective Web3 Tx;context 和 msgs 均为 JSON 字符串。本工具仅请求签名,不广播交易。
查看参数 ▾
Seaport BulkOrder · Polygon
v4BulkOrderOrderComponents[2][2]chainId 137
Seaport 1.6
测试二维定长结构体数组,以及结构体内部的 OfferItem[] / ConsiderationItem[] 动态数组。按提供的数据原样请求签名,不广播交易。
查看完整参数 ▾
🧪 综合大型结构(覆盖所有类型)
v4nested structarraybytesbooluint/intstring
全覆盖
BatchTransfer 结构覆盖:address/address[]、bool/bool[]、bytes(动态)、bytes1/4/8/16/32 及其数组、嵌套结构体(TransferItem[]、TransferMetadata)、uint8~256 及其动态/定长数组、int8~256 及其数组,全类型极限测试
查看完整参数 ▾
eth_sign — 原始哈希签名(危险操作,钱包可能会警告)
⚠️ 注意
eth_sign 对任意 32 字节哈希签名,无法展示可读内容。部分钱包会禁用此方法。gasless 模式下 Bitget DEX 会用此方法。
Hash
0xd11e505f9a76d28144db86eb31b9e73804fb41f1b21e06fbf3d0982340ce839d
eth_sendTransaction — 链上交易请求
⚠️ 链上操作
执行后会调起钱包的交易确认页,确认发送可能产生 Gas 费用。请在钱包中核对链、合约和授权内容。
BSC USDT Approve 0
eth_sendTransaction
chainId 56
approve
原始参数
向 USDT 合约 0x55d398...7955 发起 approve(0x1eaED5...ae18, 0),以下字段和值会原样传给钱包。
查看交易参数 ▾
Bitcoin PSBT — UniSat signPsbt
签名会授权 BTC 支出
执行前请在钱包中核对输入、输出和手续费。本用例设置 autoFinalized=false,只请求签名,不自动广播。
UniSat P2WPKH PSBT 签名
__signPsbt_unisat
m/84'/0'/0'/0/0
SIGHASH 0,1
Bitcoin
查看完整参数 ▾
异常参数 / 错误处理测试 — 验证钱包对非法输入的报错行为
📋 测试目的
以下用例均为故意构造的错误参数,用于验证钱包对非法签名请求的处理方式(拒绝、报错提示、崩溃等),不应产生有效签名。
用户拒绝(Cancel)
personal_sign
拒绝验证
弹出签名窗口后手动点击拒绝,验证钱包返回 code 4001 错误。
空消息 personal_sign
personal_sign
空值
message 传空字符串 "",钱包应报错或拒绝。
eth_sign 非 32 字节
eth_sign
长度错误
传入 16 字节的 hash,不满足 32 字节要求,验证钱包报错。
v4 缺少 primaryType
eth_signTypedData_v4
字段缺失
EIP-712 结构中省略 primaryType 字段。
v4 类型与数据不匹配
eth_signTypedData_v4
类型错误
types 声明 value: uint256,但 message 中传字符串 "not-a-number"。
v4 未声明的引用类型
eth_signTypedData_v4
类型缺失
message 中引用 GhostType,但 types 里没有定义。
uint256 溢出值
eth_signTypedData_v4
数值溢出
uint256 字段传入 2^256(超出上限一),验证溢出处理。
v4 types 为空对象
eth_signTypedData_v4
空结构
types 传 {},primaryType 指向不存在的类型。
不存在的 RPC 方法
unknown_method
方法不存在
调用不存在的方法 eth_signSomethingFake,验证钱包返回 -32601 错误。
v4 传入非 JSON 字符串
eth_signTypedData_v4
格式错误
第二个参数传入 "this is not json {",验证 JSON 解析报错。