API Key 与安全
让 AI 代理执行交易,安全边界必须清楚。这一页说明 TradeKit 的安全设计,以及你应当如何配置 API Key。
密钥永远不进对话
这是整套设计的第一原则。
- 密钥通过
setup-credentials.sh在你自己的终端用静默输入(read -s)录入:不回显、不进 shell history。 - 凭证保存在
~/.xt-tradekit/credentials.json,目录 700 / 文件 600,仅本人可读。 - 密钥只在 MCP server 进程内被读取,用于请求签名。
- 助手侧只能调用
xt_credentials_status,返回是否已配置、来源、文件权限、掩码后的 Access Key,永不返回密钥内容。 - Skill 层明确禁止:读取凭证文件内容(如
cat)、向用户索要密钥。
如果你曾把 Access Key / Secret Key 粘贴进任何 AI 对话,请立刻到 XT 后台轮换该 Key。
权限最小化
在 XT.COM「API 管理」页创建 Key 时:
| 权限 | 建议 | 说明 |
|---|---|---|
| Read | ✅ 开启 | 查余额、持仓、订单所必需 |
| Trade | ✅ 按需开启 | 下单/撤单所必需;纯分析场景可不开 |
| Transfer | ⚠️ 按需 | 仅在需要现货↔合约划转时开启 |
| Withdraw | ❌ 不建议 | AI 交易场景下不建议开启提币权限 |
另外:
- 绑定 IP 白名单。这是限制密钥被盗后损失的最有效手段。
- 为 AI 场景单独创建一个 Key,不要复用你其他程序在用的 Key,便于随时吊销。
- 定期轮换。
只读模式
纯分析、演示、教学场景推荐开启:
export XT_TRADEKIT_READONLY=1
或写进 MCP 配置的 env。开启后,server 层直接拒绝一切写操作(下单、撤单、划转、提币),不依赖 Skill 层的自觉。这是硬约束。
强制确认流程
所有写操作在执行前必须经过确认:
| 操作 | 确认要求 |
|---|---|
| 现货/合约下单 | 展示完整参数(交易对、方向、类型、价格、数量/金额、预估成交额)后等待明确确认 |
| 撤单 / 全部撤单 | 展示将被撤销的订单后确认 |
| 划转 | 展示转出账户、转入账户、币种、数量后确认 |
| 提币 | 展示币种、链、数量、手续费、完整地址,明确提示不可逆,并要求二次确认 |
「确认」指你在对话里明确回复同意。含糊回应不算确认。
数据流向
你的终端 ──stdio──> 本地 MCP server ──HTTPS──> XT.COM API
│
└── ~/.xt-tradekit/credentials.json (600)
- MCP server 运行在你本机,不涉及任何云端 MCP 服务。
- 凭证不上传、不同步、不经过第三方。
- 对话中传递的只有工具的调用参数和返回结果。
风险提示
- AI 会误解意图。每一次确认都请自己读一遍参数,尤其是数量单位(合约以「张」计价)、方向和地址。
- 行情类数据中的聚合公开数据可能有延迟,不要用于高频或套利决策。
- 本工具输出为数据分析,不构成投资建议。加密资产交易风险极高。