mcpField
Z
zerion-sign

zerion-sign

github.com/zeriontech安全6842 次安装3 周前更新
代码仓库

关于 zerion-sign

一项使用 zerion CLI 为消息和 EIP-712 类型化数据生成链下签名的技能,不会广播交易。适用于 SIWE、permit 和订单等签名流程。

主要功能

  1. 01按 EVM 或 Solana 方案签署消息
  2. 02为 EVM 签署 EIP-712 类型化数据
  3. 03从命令行、文件或标准输入提供数据
  4. 04以 JSON 返回签名数据
  5. 05签名需要 agent token

适用场景

  1. 01签署 SIWE 登录消息
  2. 02生成 permit 授权和签名订单
  3. 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)。

安全性

签署任意消息或类型化数据可能会授权无限额的代币额度(例如恶意许可)。签署前:

  1. 验证域(链 ID、合约地址、名称、版本)是否与预期交互的 dapp 相符。
  2. 验证primaryType 是否与预期操作相符(如 Permit、OrderComponents 等)。
  3. 对于 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

评论

支持 Markdown