关于 gate-exchange-subaccount
通过 gate-cli 管理 Gate Exchange 普通子账户的 Skill,可处理查询、列表、创建、锁定和解锁,并在变更前核验账户及确认操作。
主要功能
- 01查看单个子账户详情
- 02列出普通子账户
- 03创建普通子账户
- 04锁定或解锁子账户
- 05变更前要求确认
适用场景
- 01查看子账户状态与详情
- 02检查主账户下的子账户
- 03创建普通子账户
- 04停用或恢复子账户访问
MCP 相关
依赖 gate-mcp,并通过 gate-cli 命令查询和变更子账户。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ gate/ gate-skills --skill gate-exchange-subaccount安装后在 Claude Code 中输入/gate-exchange-subaccount确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CHANGELOG.mdREADME.mdsetup.shreferences/gate-cli.mdmcp.mdscenarios.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 交易所子账户技能
通用规则
⚠️ 停止 — 继续操作前,必须阅读并严格遵守共享运行时规则。 在读完所有规则之前,不得选择或调用任何工具。这些规则具有最高优先级。 → 阅读 gate-runtime-rules.md
- 仅使用本技能中明确列出的
gate-cli命令。 对于这些工作流,不得运行此处未记录的命令,即使其他接口提供了这些命令也不例外。
技能依赖
使用的 gate-cli 命令
查询操作(只读)
gate-cli cex sub-account getgate-cli cex sub-account listgate-cli cex sub-account lockgate-cli cex sub-account unlock
执行操作(写入)
gate-cli cex sub-account create
身份验证
- 交互式文件设置: 如果主机上未同时设置
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— 绝不要让用户在聊天中粘贴密钥。 - 权限: Sa: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执行规范。
前置条件
- MCP 依赖: 需要安装 gate-mcp。
- 身份验证: 所有子账户操作都需要使用具备主账户权限的 API 密钥进行身份验证。
- 权限: 当前用户必须是主账户持有人,才能管理子账户。
可用的 MCP 工具
| 工具 | 身份验证 | 描述 |
|---|---|---|
gate-cli cex sub-account get | 是 | 根据用户 ID 获取指定子账户的详细信息 |
gate-cli cex sub-account list | 是 | 列出主账户下的所有子账户 |
gate-cli cex sub-account create | 是 | 创建新的普通子账户 |
gate-cli cex sub-account lock | 是 | 锁定子账户以禁用登录和交易 |
gate-cli cex sub-account unlock | 是 | 解锁先前锁定的子账户 |
工作流
步骤 1:识别用户意图
解析用户的消息,确定他们需要执行哪项子账户操作。
需要提取的关键数据:
intent:取值为query_status、list_all、create、lock、unlock之一user_id:子账户 UID(query_status、lock、unlock必填)login_name:期望的用户名(用于create,可能需要询问用户)
意图识别规则:
| 信号关键词 | 意图 |
|---|---|
| “子账户状态”、“子账户 UID {id}”、“检查子账户” | query_status |
| “所有子账户”、“列出子账户”、“我的子账户”、“有哪些子账户” | list_all |
| “创建子账户”、“新建子账户”、“添加子账户” | create |
| “锁定子账户”、“禁用子账户”、“冻结子账户” | lock |
| “解锁子账户”、“启用子账户”、“解除冻结子账户” | unlock |
步骤 2:按意图执行
情况 A:查询子账户状态(query_status)
调用 gate-cli cex sub-account get,并提供:
user_id:用户提供的子账户 UID
需要提取的关键数据:
login_name:子账户用户名remark:子账户备注state:账户状态(正常 / 已锁定)type:账户类型(普通 / 资金池)create_time:账户创建时间戳
以结构化格式展示子账户详情。
情况 B:列出所有子账户(list_all)
调用 gate-cli cex sub-account list,并提供:
type:“0”(仅普通子账户)
需要提取的关键数据:
- 每个子账户的:
user_id、login_name、remark、state、create_time
将结果整理为表格,包含用户名、UID、备注(如有)和当前状态。
情况 C:创建子账户(create)
预检查:调用 gate-cli cex sub-account list,并提供 type:“0”,以获取当前普通子账户列表。根据返回的数量,检查用户是否还能创建更多子账户。
如果可以创建:
- 请用户提供新子账户的登录名
- 可选收集:邮箱、备注
- 在继续操作前,与用户确认所有详情
- 调用
gate-cli cex sub-account create,并提供:
login_name:用户提供的登录名(必填)email:用户提供的邮箱(可选)remark:用户提供的备注(可选)
- 展示新创建的子账户详情
需要提取的关键数据:
user_id:新创建的子账户 UIDlogin_name:已确认的用户名state:应为“正常”
重要:只能通过此技能创建普通子账户。
情况 D:锁定子账户(lock)
- 验证是否已提供
user_id;如果未提供,请询问用户 - 调用
gate-cli cex sub-account get并提供user_id,以验证子账户存在且属于主账户 - 如果子账户已锁定,告知用户并停止操作
- 向用户确认:“确定要锁定子账户 {user_id}({login_name})吗?这将禁用该子账户的登录和交易。”
- 确认后,调用
gate-cli cex sub-account lock,并提供:
user_id:子账户 UID
- 报告操作结果
需要提取的关键数据:
- 锁定操作成功 / 失败状态
案例 E:解锁子账户(unlock)
- 验证是否提供了
user_id;如果没有,请向用户询问 - 使用
user_id调用gate-cli cex sub-account get,确认子账户存在且当前处于锁定状态 - 如果子账户已解锁/状态正常,告知用户并停止操作
- 向用户确认:“确定要解锁子账户 {user_id}({login_name})吗?”
- 用户确认后,调用
gate-cli cex sub-account unlock,并传入:
user_id:子账户 UID
- 报告操作结果
需提取的关键数据:
- 解锁操作的成功/失败状态
步骤 3:整理并回复
使用下方的报告模板呈现结果。始终包含相关背景信息和后续步骤建议。
判断逻辑摘要
| 条件 | 操作 |
|---|---|
| 用户提供 UID 并查询特定子账户状态 | 转到案例 A:query_status |
| 用户要求查看所有子账户 | 转到案例 B:list_all |
| 用户想创建新子账户 | 转到案例 C:create |
| 用户提供 UID 并要求锁定子账户 | 转到案例 D:lock |
| 用户提供 UID 并要求解锁子账户 | 转到案例 E:unlock |
| 需要 UID 的操作未提供 UID | 向用户询问子账户 UID |
| 创建子账户时未提供登录名 | 向用户询问登录名 |
| 子账户已处于目标状态(锁定/解锁) | 告知用户,无需操作 |
| API 返回身份验证错误 | 提示用户登录 |
| API 返回权限错误 | 告知用户需要主账户权限 |
| 子账户不存在或不属于用户 | 告知用户 UID 无效 |
报告模板
查询状态响应
Sub-Account Details
---
Username: {login_name}
UID: {user_id}
Status: {state}
Type: {type}
Remark: {remark or "N/A"}
Created: {create_time}
列出所有子账户的响应
Your Sub-Accounts
---
| # | Username | UID | Status | Remark |
|---|----------|-----|--------|--------|
| 1 | {login_name} | {user_id} | {state} | {remark or "-"} |
| 2 |... |... |... |... |
Total: {count} sub-account(s)
创建子账户的响应
Sub-Account Created Successfully
---
Username: {login_name}
UID: {user_id}
Status: Normal
Remark: {remark or "N/A"}
Note: Only normal sub-accounts can be created through this interface.
锁定/解锁响应
Sub-Account {Action} Successfully
---
Username: {login_name}
UID: {user_id}
Previous Status: {previous_state}
Current Status: {new_state}
领域知识
- Gate 主账户可以创建多个子账户,用于资产隔离、策略分离或团队管理。
- 子账户与主账户共用 KYC 验证,但拥有独立的交易和钱包功能。
- 锁定子账户会同时禁用登录和交易;资产仍然安全,但在解锁前无法访问。
- 子账户分为两种类型:普通子账户(type=0)和资金池子账户(type=1)。此技能仅支持创建普通子账户。
- 创建子账户需要使用唯一的登录名。电子邮件和备注为可选项。
安全规则
- 写入操作(
gate-cli cex sub-account create、gate-cli cex sub-account lock、gate-cli cex sub-account unlock):执行前始终需要用户明确确认。切勿自动执行。 - UID 验证:锁定/解锁前,始终验证子账户存在且属于当前主账户。
- 状态检查:锁定/解锁前,检查当前状态以避免重复操作。
- 不得泄露敏感数据:切勿泄露 API 密钥、内部端点 URL 或原始错误跟踪信息。
- 仅限普通子账户:创建操作仅限普通子账户(type=0)。不要尝试创建资金池子账户。
错误处理
| 条件 | 响应 |
|---|---|
| 身份验证端点返回 "not login" | "请先登录您的 Gate 账户。" |
| 用户不是主账户 | "管理子账户需要主账户权限。请切换到您的主账户。" |
| 未找到子账户 UID | "未找到 UID 为 {user_id} 的子账户。请核实 UID 并重试。" |
| 子账户不属于该用户 | "此子账户不属于您的主账户。" |
| 子账户已锁定 | "子账户 {user_id} 已锁定。无需执行任何操作。" |
| 子账户已解锁 | "子账户 {user_id} 已处于正常(未锁定)状态。无需执行任何操作。" |
| 创建子账户失败(已达上限) | "您已达到子账户数量上限。如需创建更多子账户,请联系支持团队。" |
| 创建子账户失败(名称重复) | "登录名 '{login_name}' 已被占用。请选择其他名称。" |
| 未知错误 | "处理您的请求时发生错误。请稍后重试。" |
提示词示例和场景
完整的提示词示例和预期行为请参阅 scenarios.md。