WalletConnect Staking CLI 的目标是操作 walletconnect-staking 命令行工具,在 Optimism(链 ID 10)上质押或解除质押 WCT 代币、领取质押奖励并查看头寸。
用途与适用场景
- 用户请求质押 WCT 代币。
- 用户请求解除质押或提取已质押的 WCT。
- 用户请求领取质押奖励。
- 用户询问其质押头寸、APY 或奖励。
- 用户询问其 WCT 代币余额。
- 用户提到 walletconnect-staking 或 WCT staking。
不适用场景
- 用户只想要基础钱包连接而不涉及质押(应使用 walletconnect skill)。
- 用户想要跨链桥接或兑换代币(应使用 walletconnect skill 的 swidge 命令)。
- 用户正在处理 staking-cli 源代码(直接正常编辑即可)。
- 用户想要与 Optimism 以外链上的 WCT 交互。
前置条件
- 写命令(stake、unstake、claim)必须配置 Project ID:可用 walletconnect config set project-id <id> 全局设置,或用 WALLETCONNECT_PROJECT_ID 环境变量按命令覆盖。
- 二进制文件位于 packages/staking-cli/dist/cli.js,或全局链接为 walletconnect-staking。
- 需要时先构建:npm run build -w @walletconnect/staking-cli。
命令
- 质押 WCT(按 N 周锁定):walletconnect-staking stake <amount> <weeks>
- 解除质押(仅锁定期到期后可全部提取):walletconnect-staking unstake
- 领取质押奖励:walletconnect-staking claim
- 查询质押头寸、奖励、APY(只读):walletconnect-staking status --address=0x...
- 查询 WCT 余额(只读):walletconnect-staking balance --address=0x...
默认工作流 写命令(stake、unstake、claim):
- 确保已配置 Project ID(walletconnect config get project-id)。
- 运行命令——CLI 会自动恢复会话或提示扫码连接。
- 会话必须包含 Optimism(eip155:10);若现有会话不包含,CLI 会断开并请求新会话。
- 提示用户在钱包应用中确认交易。
- 所有钱包交互命令使用 60 秒以上超时。
只读命令(status、balance):
- 使用 --address=0x... 可完全跳过钱包连接。
- 或让 CLI 为对应地址恢复现有会话。
- 使用 --address 时无需 Project ID。
重要说明
- 仅限 Optimism:所有交易都在 Optimism(链 ID 10)上发生。
- 锁定时长:质押锁定时间向下取整到最近的周边界。
- 授权流程:stake 自动检查授权额度,需要时先发送一笔 approve 交易。
- 已有头寸:stake 会检测已有头寸并调用 updateLock 而非 createLock。
- 解锁检查:若锁定尚未到期,unstake 拒绝运行。
- 只读捷径:status 和 balance 仅凭 --address=0x... 即可工作,无需钱包连接。
- APY 公式:APY = max((stakeWeight / 1M) * -0.06464 + 12.0808, 0),并按 min(weeks, 104) / 52 调整。
校验清单
- 写命令已配置 Project ID(walletconnect config get project-id)。
- 二进制已构建并链接(walletconnect-staking --help 可正常工作)。
- 钱包会话包含 Optimism 链授权。
- 向用户展示交易输出(交易哈希)。
- 钱包交互命令超时为 60 秒以上。
- 只读查询在无需会话时使用 --address。
示例
- 质押 100 WCT 4 周:用户说“质押 100 WCT 一个月”,执行 walletconnect-staking stake 100 4。注意可能发送 2 笔交易(approve 加 createLock/updateLock),需提示用户逐笔确认。
- 查询质押状态:用户问“0xABC... 的质押头寸是什么?”,执行 walletconnect-staking status --address=0xABC...,无需 Project ID 或钱包连接。
- 查询 WCT 余额:用户问“我有多少 WCT?”,执行 walletconnect-staking balance --address=0x...;若未提供地址,则询问用户或使用现有会话。
限制
- 所有交易仅限 Optimism,不支持其他链上的 WCT 交互。
- unstake 仅在锁定期到期后可用,且为全部提取。
- 写命令依赖 Project ID 与钱包会话。
- 收费、价格与平台可用性等资料暂未提供。