关于 gate-exchange-staking
gate-exchange-staking 是通过 gate-cli 查询和管理 Gate 交易所质押产品的技能,面向需要查看仓位、奖励、产品和订单的用户。它也支持在确认产品和参数后提交质押或赎回操作。
主要功能
- 01查询质押仓位与可赎回数量
- 02查看奖励记录和质押产品
- 03查询质押及赎回订单
- 04通过 gate-cli 提交质押或赎回
适用场景
- 01检查当前质押资产和可赎回数量
- 02查看奖励收入或历史订单
- 03选择产品并发起质押或赎回
MCP 相关
技能通过 gate-cli 执行只读查询和质押操作;输入将这些命令列为 MCP 工具,但未描述 MCP 服务端实现。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ gate/ gate-skills --skill gate-exchange-staking安装后在 Claude Code 中输入/gate-exchange-staking确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CHANGELOG.mdREADME.mdsetup.shreferences/gate-cli.mdmcp.mdscenarios.mdstaking-assets.mdstaking-coins.mdstaking-list.mdstaking-swap.md详细介绍
解析 gate-cli(二进制路径)
按以下顺序解析 gate-cli:(1) command -v gate-cli 和 gate-cli --version 均成功;(2) 如果 ${HOME}/.local/bin/gate-cli 可执行,则使用该路径;(3) 如果 ${HOME}/.openclaw/skills/bin/gate-cli 可执行,则使用该路径。规范规则:exchange-runtime-rules.md §4(或 gate-runtime-rules.md §4)。
Gate Staking Query Suite
通用规则
⚠️ 停止 — 继续操作前,你必须阅读并严格遵守共享运行时规则。 在阅读完所有规则之前,请勿选择或调用任何工具。这些规则具有最高优先级。 → 阅读 gate-runtime-rules.md
- 仅使用此技能中明确列出的
gate-cli命令。 对于这些工作流,不得运行此处未记录的命令,即使其他接口提供了这些命令也不例外。
技能依赖项
使用的 gate-cli 命令
查询操作(只读)
gate-cli cex earn staking assetsgate-cli cex earn staking awardsgate-cli cex earn staking findgate-cli cex earn staking orders
执行操作(写入)
gate-cli cex earn staking swap
身份验证
- 交互式文件配置: 如果主机上未同时设置
GATE_API_KEY和GATE_API_SECRET,请运行gate-cli config init,按照向导完成 API 密钥、密钥、配置文件和默认值的设置(参见 gate-cli)。 - 环境变量 / 标志: 如果凭据已提供,则不需要运行
gate-cli config init— 例如,主机上已设置GATE_API_KEY和GATE_API_SECRET,或在支持的情况下使用--api-key/--api-secret— 绝不要要求用户在聊天中粘贴密钥。 - 权限: Earn:Write
- 门户: 在聊天之外创建或轮换密钥:https://www.gate.com/myaccount/profile/api-key/manage
安装检查
- 必需项:
gate-cli(如果缺失,请在此技能目录中运行sh ./setup.sh;可选GATE_CLI_SETUP_MODE=release)。 - 如果按名称调用
gate-cli,请将$HOME/.openclaw/skills/bin添加到PATH(或添加setup.sh安装该程序的目录)。 - 凭据: 如果主机上同时设置了非空的
GATE_API_KEY和GATE_API_SECRET,则不要要求运行gate-cli config init— 这对gate-cli来说是等效的有效配置。如果两者均未设置或为空,则提醒操作员运行gate-cli config init,或在技能库中对应的技能里配置GATE_API_KEY/GATE_API_SECRET(绝不要要求用户在聊天中粘贴密钥)。 - 健全性检查: 在进行经过身份验证的调用之前,请勿继续操作;先确认 CLI 行为符合预期(例如运行
gate-cli --version,或运行此技能中的只读gate-cli cex ...命令),并确认凭据已解析,然后再执行变更操作。
执行模式
阅读并严格遵守 references/gate-cli.md,然后执行此技能的质押工作流。
SKILL.md保留质押意图路由和场景边界。references/gate-cli.md是关于查询 / 操作分离、确认关卡和结果验证的权威gate-cli执行规范。
模块概览
| 模块 | 描述 | 触发关键词 |
|---|---|---|
| 持仓 | 查询质押持仓、余额、可用与锁定资产 | position、balance、staked、staking assets、holdings、redeemable |
| 奖励 | 查询奖励历史、昨日及每月收益 | reward、earning、profit、income、yesterday earnings、monthly earnings |
| 产品 | 发现可用的质押产品、APY 和最低金额 | products、available、APY、stakeable coins、high yield、flexible |
| 订单历史 | 查询质押/赎回订单列表和分页 | history、orders、transactions、staking records、redemption records |
| 质押 / 赎回 | 通过兑换执行质押或赎回(需要 pid) | stake、redeem、unstake、stake 100 USDT、redeem my ETH、swap staking |
铸造:视为立即质押。转到相同的质押工作流:读取 references/staking-swap.md,解析产品(pid)和金额,然后调用 gate-cli cex earn staking swap,并设置 side=0。对于 GUSD 产品,必须让用户选择 USDT 或 USDC,并传入 coin。
取消赎回(不支持):当用户想要取消或撤销赎回(例如取消已提交的赎回订单)时,不要调用任何工具。用英文回复,说明不支持此操作。
领域知识
产品类型
| productType | 标签 | 描述 |
|---|---|---|
| 0 | 凭证 | 可灵活质押并即时赎回(redeemPeriod = 0) |
| 1 | 锁定期 | 固定期限质押,具有明确的锁定期(redeemPeriod > 0) |
| 2 | 美国国债 | 由美国国债支持的产品(例如 GUSD)。用户质押加密货币,并获得源自美国国债利率的收益。通常具有固定或半固定 APR,风险较低。 |
可赎回金额计算
持仓的可赎回金额并非 mortgage_amount − freeze_amount。正确公式为:
redeemable = mortgage_amount × exchangeRate
其中,exchangeRate 来自针对相同 pid 和匹配的 currency 执行的 gate-cli cex earn staking find。某些产品的 exchangeRate = 1(例如 USDT 灵活质押),而其他产品的汇率会变化(例如流动性质押代币)。
动态汇率(exchangeRate ≠ 1)
当产品的汇率不等于 1 时,该产品属于动态汇率产品。在质押/赎回的响应数据中(兑换结果或订单列表):amount = 质押/赎回的基础币数量;exchangeAmount(或 exchange_amount)= 收到的报价币/奖励币数量。
显示规则(仅限英文):
- 质押:显示 exchangeAmount(用户收到的金额)。
- 赎回:显示 amount(用户收到的金额)。 当 exchangeRate = 1 时,可以省略任一字段,也可以将其显示为相同的值;优先只显示单个金额。
奖励分发
reward_delay_days = -1表示奖励在赎回时发放,而不是定期发放。interest_delay_days表示质押后开始累计奖励的延迟时间(通常为 1 天 / T+1)。- 多币种奖励:单个持仓可以产生多种币的奖励(例如,在 Compound V3 中质押 USDT,可获得 USDT + COMP)。
GUSD / 多币种产品(USDT 或 USDC)
当质押、赎回或铸造 GUSD(或 currency 或 mortgage_coin 为 "USDT,USDC" 的任何产品)时:
- **必须让用户选择币种。**仅支持 USDT 和 USDC。
- 提示示例:“This product accepts USDT or USDC. Which do you want to use: USDT or USDC?”
- 将用户的选择作为
coin参数传入兑换(或铸造)工具。用户从两种币中选定一种之前,不要调用工具。
持仓:status 字段
查看质押持仓(持仓/余额/资产查询)时,忽略且不要显示 status 字段。所有面向用户的持仓输出中都应省略该字段。
结果中的时间戳
请勿在任何结果中显示或格式化与时间戳相关的字段。 从面向用户的输出中省略所有时间戳字段(例如 createStamp、redeem_stamp、updateStamp、should_bonus_stamp)。请勿将时间戳转换为日期、时间或相对时间(例如,不要显示“YYYY-MM-DD”“HH:mm”或“2 hours ago”)。如果某个字段完全基于时间戳,请勿显示。
数字格式
| 类别 | 精度 | 尾随零 | 示例 |
|---|---|---|---|
| 常规金额(mortgage_amount、freeze_amount、income_total、fee 等) | 8 位小数 | 去除 | 1.23 而非 1.23000000;100 而非 100.00000000 |
| 利率字段(estimateApr、APY、APR、exchangeRate) | 2 位小数 | 保留 | 5.20% 而非 5.2%;8.00% 而非 8% |
路由规则
| 意图 | 示例短语 | 路由至 |
|---|---|---|
| 持仓 | “显示我的质押持仓”“查看我的质押资产”“我可以赎回什么?” | 读取 references/staking-assets.md |
| 奖励 | “质押奖励”“昨日收益”“月度收益”“收益记录” | 读取 references/staking-list.md(第 2 部分:奖励列表) |
| 产品 | “可用的质押产品”“可质押的币种”“最佳 APY”“仅限灵活产品” | 读取 references/staking-coins.md |
| 订单历史 | “质押历史”“质押记录”“显示赎回记录”“最近活动” | 读取 references/staking-list.md(第 1 部分:订单列表) |
| 质押 / 赎回 | “质押 1 BTC”“质押 100 USDT”“赎回我的 ETH”“赎回”“我想质押”“取消质押”“帮我赎回” | 读取 references/staking-swap.md;使用 gate-cli cex earn staking swap,必须提供 pid,并设置 side=0(质押)或 side=1(赎回);质押前先获取产品列表,如果同一币种对应多个协议,请向用户确认 |
| 铸造 | “铸造”“我想铸造”“Mint”“铸造 GT”“帮我铸造” | 与质押相同:路由至 references/staking-swap.md 并执行质押(side=0)。铸造 = 立即质押。对于 GUSD,要求用户选择 USDT 或 USDC,并传入 coin。 |
| 取消赎回(不支持) | “取消赎回”“撤销赎回”“撤回赎回”“取消我的赎回”“撤回赎回请求” | 不要调用工具。 用英文回复:Cancelling or revoking a redeem is not supported here; please use the Gate website or app if needed. I can help you query positions or order history. |
| 不明确 | “质押相关帮助”“链上赚币” | 请先澄清:持仓 / 奖励 / 产品 / 历史记录,然后进行路由 |
执行
1. 意图和参数
- 确定模块(持仓 / 奖励 / 产品 / 订单历史 / 质押或赎回),或用户是否打算铸造或取消赎回。
- 质押 / 赎回意图:如果用户想要执行质押或赎回(例如“质押 1 BTC”“质押 100 USDT”“赎回我的 ETH”),请转到
references/staking-swap.md。遵循兑换工作流:gate-cli cex earn staking swap必须提供 pid;质押时使用 side=0,赎回时使用 side=1;质押前调用gate-cli cex earn staking find,如果同一种币有多个协议,请列出并询问用户确认要选择哪个产品(pid),然后再调用兑换工具。 - 铸造意图:如果用户想要铸造(例如“铸造”“我想铸造”“铸造 GT”“帮我铸造”),请将其视为质押。转到
references/staking-swap.md并执行质押工作流(side=0)。铸造 = 立即质押;产品选择、金额和 GUSD 币种规则(USDT/USDC)与质押相同。 - 取消赎回意图:如果用户想要取消或撤销赎回(例如“取消赎回”“撤销我的赎回”“撤销赎回”),不要调用任何 MCP 工具。请用英文回复:“Cancelling or revoking a redeem is not supported here; please use the Gate website or app if needed. I can help you query positions or order history.” 然后停止。
- 提取:
coin、pid、page、amount;对于订单列表,还要提取type(0=质押,1=赎回);对于兑换,调用gate-cli cex earn staking swap前,务必解析或确认pid。 - 缺少信息:如果用户只说“我的质押”,但未指定持仓 / 奖励 / 产品 / 历史记录 / 操作,请询问用户想查询哪一项,或默认显示持仓。
2. 工具选择
| 模块 | MCP 工具 | 必填项 | 可选参数 |
|---|---|---|---|
| 持仓 | gate-cli cex earn staking assets | - | coin、pid |
| 奖励 | gate-cli cex earn staking awards | - | coin、pid、page |
| 产品 | gate-cli cex earn staking find | - | cointype |
| 订单历史 | gate-cli cex earn staking orders | - | coin、pid、type、page |
| 质押 / 赎回 | gate-cli cex earn staking swap | pid | amount、side(0=质押,1=赎回)、coin(GUSD) |
- 持仓:显示可赎回金额时,调用
gate-cli cex earn staking find(可选传入cointype),查找与每项持仓 pid 相同且 currency 匹配的产品;使用该产品的 exchangeRate(或 API 中的 exchangeRateReserve)。可赎回金额 = mortgage_amount × 对应汇率。不要使用 mortgage_amount − freeze_amount。 - 质押 / 赎回:阅读
references/staking-swap.md。gate-cli cex earn staking swap必须提供 pid。使用side:0 = 质押,1 = 赎回。质押前:调用gate-cli cex earn staking find;如果该币有多个产品(多个 pid),请列出并询问用户确认要选择哪个产品,然后再调用兑换工具。赎回前:如果用户未提供 pid,请使用gate-cli cex earn staking assets获取持仓;如果有多个持仓,请询问用户选择 pid。 - 响应结构:持仓 → 项目数组(pid、mortgage_coin、mortgage_amount、freeze_amount、income_total、yesterday_income / yesterday_income_multi 等)。可赎回金额不是 mortgage_amount − freeze_amount;可赎回金额 = mortgage_amount × 汇率,汇率来自
gate-cli cex earn staking find中 pid 相同且 currency(coin)匹配的产品。订单列表 → 包含 page、pageSize、pageCount、totalCount、list[] 的对象。奖励列表 → 包含 page、pageSize、pageCount、totalCount、list[](pid、mortgage_coin、reward_coin、interest、bonus_date 等)的对象。产品 → 数组(pid、currency、estimateApr、minStakeAmount、protocolName、redeemPeriod、productType、isDefi、currencyRewards、exchangeRate 等)。
3. 格式化响应
- 使用所选模块参考文件中的 Response Template 和字段名称。
- 持仓:显示 mortgage_amount、freeze_amount、redeemable(mortgage_amount × 汇率;使用
gate-cli cex earn staking find获取相同 pid 且 currency 匹配的汇率)、income_total、yesterday_income;按币种分组或按 pid 展示。计算 redeemable 时不要使用 mortgage_amount − freeze_amount。不要显示或格式化时间戳字段(省略 createStamp、updateStamp)。不要显示 status(展示持仓时忽略 status 字段)。 - 奖励:显示列表条目中的 reward_coin、interest、bonus_date、pid、mortgage_coin;按 reward_coin 求和;适用时使用 totalCount/page/pageCount。不要显示或格式化时间戳字段(例如省略 should_bonus_stamp)。
- 产品:显示 protocolName、currency、estimateApr、minStakeAmount、maxStakeAmount、redeemPeriod、productType、isDefi;按 estimateApr 排序或按 cointype 筛选。
- 订单历史:显示包含 coin、amount、type(0=Stake,1=Redeem)、status、pid、fee 的列表;使用 totalCount、page、pageCount 进行分页。不要显示或格式化时间戳(省略 createStamp、redeem_stamp 等)。对于动态汇率产品(exchangeRate ≠ 1):Stake 显示 exchange_amount,Redeem 显示 amount(参见 Domain Knowledge)。
- Stake / Redeem:遵循
references/staking-swap.md;在调用gate-cli cex earn staking swap前确认 pid(和 amount);以英文显示成功或错误消息。对于动态汇率产品:Stake 确认信息显示 exchangeAmount,Redeem 确认信息显示 amount。
报告模板
每次查询后,输出简短、标准化的结果,并与参考内容保持一致(例如持仓摘要、奖励摘要、产品表格或订单列表)。使用 API 中的确切响应字段(参见 references),确保用户看到正确的字段名称和值。
安全规则
用户确认要求(强制)
未经用户明确确认,绝不可调用 gate-cli cex earn staking swap。 未经用户确认,只允许执行读取/查询操作。
每次执行 stake、redeem 或 mint 前:
- 显示 Action Draft,概述:操作类型(stake/redeem/mint)、产品(pid + protocolName)、币种、金额、方向和关键风险提示(例如锁定期、汇率)。
- 等待用户明确确认(例如 “Confirm”、“Yes”、“Go ahead”)。
- 只有在紧接着的上一条用户消息中收到确认后,才能调用
gate-cli cex earn staking swap。 - 如果确认后参数发生变化(金额、pid、币种),原确认即失效,必须重新确认。
- 如果确认含糊、已过时或属于不同上下文,切勿执行 — 请求用户重新确认。
Stake、Redeem 和 Mint
- Stake / Redeem:支持通过
gate-cli cex earn staking swap执行。遵循references/staking-swap.md。必须提供 pid;使用 side=0(stake)或 side=1(redeem);stake 前获取产品信息,如果同一币种对应多个协议,调用 swap 前请用户确认要使用哪个产品(pid)。所有回复均使用英文。 - Mint:支持作为即时 stake 执行。用户要求 mint 时,执行 Stake 工作流:转至
references/staking-swap.md,确定 pid 和金额,并使用 side=0 调用gate-cli cex earn staking swap。对于 GUSD,要求用户选择 USDT 或 USDC,并传入coin。 - 取消 Redeem:不支持。用户要求取消或撤销 redeem(例如取消赎回订单)时,请用英文回复:“Cancelling or revoking a redeem is not supported here; please use the Gate website or app if needed. I can help you query positions or order history.”不要调用任何工具。
错误
| 场景 | 操作 |
|---|---|
持仓为空(list 为空或 totalCount 为 0) | “您目前没有任何质押持仓。浏览可用产品,开始赚取收益。”建议查看 references/staking-coins.md。 |
| 暂无奖励 | “未找到奖励。奖励通常会在质押 24 小时后开始累积。”可选择显示 gate-cli cex earn staking assets 返回的持仓。 |
| 未找到产品 / 无可用额度 | 建议从 gate-cli cex earn staking find 的结果中选择其他产品(例如按 estimateApr 筛选)。 |
| API 错误 / 401 | “无法获取质押数据,请稍后重试。”或“请登录以查看质押数据。” |