关于 zerion-sign
一项使用 zerion CLI 为消息和 EIP-712 类型化数据生成链下签名的技能,不会广播交易。适用于 SIWE、permit 和订单等签名流程。
主要功能
- 01按 EVM 或 Solana 方案签署消息
- 02为 EVM 签署 EIP-712 类型化数据
- 03从命令行、文件或标准输入提供数据
- 04以 JSON 返回签名数据
- 05签名需要 agent token
适用场景
- 01签署 SIWE 登录消息
- 02生成 permit 授权和签名订单
- 03签署通过 JSON 或文件提供的类型化数据
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ zeriontech/ zerion-ai --skill zerion-sign安装后在 Claude Code 中输入/zerion-sign确认已加载。
详细介绍
Zerion — 链下签名
生成签名,而不广播交易。适用于登录流程、许可和签名订单。签名就是输出结果——将它交给验证方(dapp、中继器、交易所等)。
设置
如果运行 zerion 命令时提示 command not found,请安装一次:
npm install -g zerion-cli
需要 Node.js ≥ 20。有关身份验证,请参阅 zerion 总览技能。签名需要 Agent 令牌(用作钱包密码短语)。设置方法 → zerion-agent-management。
适用场景
- SIWE(“以太坊登录”)登录流程
- EIP-2612
permit— 免 Gas 的 ERC-20 授权 - Permit2 授权
- Seaport / OpenSea 链下订单
- 任何要求“请签署此消息”或“请签署此类型化数据”的 dapp
- 身份证明、DAO Snapshot 投票
对于链上交易(兑换/跨链桥/发送)→ zerion-trading。
签署消息
# EIP-191 personal_sign (EVM)
zerion sign-message "hello" --chain ethereum
zerion sign-message "hello" --chain base --wallet <name>
zerion sign-message "gmonad" --chain monad
# Raw hex bytes (no prefix, used by some wallets)
zerion sign-message 0xdeadbeef --encoding hex --chain ethereum
# Raw ed25519 (Solana)
zerion sign-message "hello" --chain solana
# Explicit flags
zerion sign-message --message "text" --wallet <name> --chain <chain>
<chain> 决定签名方案:EVM 链使用 EIP-191 personal_sign;Solana 使用原始 ed25519。
签署类型化数据(仅限 EIP-712、EVM)
EIP-712 类型化数据需要一个包含 { domain, types, primaryType, message } 的 JSON 对象。如果验证方需要,请在 types 中包含 EIP712Domain。
# Inline JSON
zerion sign-typed-data --data '{"domain":{...},"types":{...},"primaryType":"Permit","message":{...}}' --chain base
# From file
zerion sign-typed-data --file permit.json --chain ethereum
# From stdin
cat permit.json | zerion sign-typed-data --chain ethereum
输出为 JSON 对象,其中包含签名(EVM 上为 r、s、v),并写入标准输出。
安全保障
如果未配置 Agent 令牌,且标准错误流连接到 TTY,CLI 会提示:
Want to setup an agent token for "<wallet>"? [Y/n]
……并在命令中直接运行 agent create-token。完成后,原始的 sign-* 命令会使用新令牌继续执行。在非 TTY 环境(CI、管道)中,命令会立即失败并返回 no_agent_token——请预先使用 agent create-token --passphrase-file <0600-path> 创建令牌(参见 zerion-agent-management)。
安全性
签署任意消息或类型化数据可能会授权无限额的代币额度(例如恶意许可)。签署前:
- 验证域(链 ID、合约地址、名称、版本)是否与预期交互的 dapp 相符。
- 验证primaryType 是否与预期操作相符(如
Permit、OrderComponents等)。 - 对于
permit类载荷,请明确检查spender、value 和 deadline。
CLI 不会执行语义检查——它会签署传入的任何内容。如有需要,请应用策略(zerion-agent-management)来限制可签署的合约。
常见错误
| 代码 | 原因 | 解决方法 |
|---|---|---|
no_agent_token | 没有 Agent 令牌 | zerion-agent-management 技能 |
invalid_typed_data | 缺少 domain/types/primaryType/message | 验证 JSON 结构 |
unsupported_chain | --chain 无效 | zerion chains |
wallet_not_found | 钱包不在保管库中 | zerion wallet list |