关于 convert
面向 Binance Convert 的 Agent 技能,用于查询兑换对、获取报价并执行兑换,也支持限价单和交易历史查询。部分接口需要 Binance API 凭证;主网交易前须取得用户确认。
主要功能
- 01查询可兑换资产对和精度
- 02请求兑换报价并接受报价
- 03创建及取消限价单
- 04查询订单状态与交易历史
- 05按账户凭证执行认证请求
适用场景
- 01检查两种资产是否支持兑换
- 02获取报价并完成资产兑换
- 03管理未完成的限价兑换订单
- 04查询过往 Convert 交易记录
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ binance/ binance-skills-hub --skill convert安装后在 Claude Code 中输入/convert确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CHANGELOG.mdLICENSE.mdreferences/authentication.md详细介绍
Binance Convert 技能
通过经过身份验证的 API 端点在 Binance 上执行兑换请求。某些端点需要 API key 和 secret key。以 JSON 格式返回结果。
快速参考
| 端点 | 描述 | 必需参数 | 可选参数 | 身份验证 |
|---|---|---|---|---|
/sapi/v1/convert/exchangeInfo (GET) | 列出所有兑换交易对 | 无 | fromAsset, toAsset | 否 |
/sapi/v1/convert/assetInfo (GET) | 查询每种资产的订单数量精度(USER_DATA) | 无 | recvWindow | 是 |
/sapi/v1/convert/acceptQuote (POST) | 接受报价 (TRADE) | quoteId | recvWindow | 是 |
/sapi/v1/convert/limit/cancelOrder (POST) | 取消限价订单 (USER_DATA) | orderId | recvWindow | 是 |
/sapi/v1/convert/tradeFlow (GET) | 获取兑换交易历史(USER_DATA) | startTime, endTime | limit, recvWindow | 是 |
/sapi/v1/convert/orderStatus (GET) | 订单状态(USER_DATA) | 无 | orderId, quoteId | 是 |
/sapi/v1/convert/limit/placeOrder (POST) | 下限价单 (USER_DATA) | baseAsset, quoteAsset, limitPrice, side, expiredType | baseAmount, quoteAmount, walletType, recvWindow | 是 |
/sapi/v1/convert/limit/queryOpenOrders (GET) | 查询未完成的限价单 (USER_DATA) | 无 | recvWindow | 是 |
/sapi/v1/convert/getQuote (POST) | 发送报价请求(USER_DATA) | fromAsset, toAsset | fromAmount, toAmount, walletType, validTime, recvWindow | 是 |
参数
通用参数
- fromAsset:用户支出的币种
- toAsset:用户收到的币种
- recvWindow:该值不能大于 60000(例如,5000)
- quoteId:(例如,1)
- orderId:来自
placeOrderapi 的 orderId(例如,1) - startTime:(例如,1623319461670)
- endTime:(例如,1641782889000)
- limit:默认值为 100,最大值为 1000(例如,100)
- orderId:必须提供 orderId 或 quoteId 之一(例如,1)
- quoteId:必须提供 orderId 或 quoteId 之一(例如,1)
- baseAsset:基础资产(使用
GET /sapi/v1/convert/exchangeInfoapi 返回的fromIsBase检查哪个是 baseAsset) - quoteAsset:报价资产
- limitPrice:交易对限价(从 baseAsset 兑换为 quoteAsset)(例如,1.0)
- baseAmount:基础资产数量。(必须提供
baseAmount或quoteAmount之一)(例如,1.0) - quoteAmount:报价资产数量。(必须提供
baseAmount或quoteAmount之一)(例如,1.0) - side:
BUY或SELL(例如,BUY) - walletType:用于选择资产所在的钱包。可选择的 wallet 为
SPOT、FUNDING和EARN。支持组合选择 wallet,例如SPOT_FUNDING、FUNDING_EARN、SPOT_FUNDING_EARN或SPOT_EARN。默认值为SPOT。 - expiredType:1_D、3_D、7_D、30_D(D 表示天)
- fromAsset:
- toAsset:
- fromAmount:指定后,表示兑换后将从账户扣除的金额(例如,1.0)
- toAmount:指定后,表示兑换后将存入账户的金额(例如,1.0)
- validTime:10s、30s、1m,默认值为 10s(例如,10s)
身份验证
对于需要身份验证的端点,你需要提供 Binance API 凭据。 所需凭据:
- apiKey:你的 Binance API key(用于请求头)
- secretKey:你的 Binance API secret(用于签名)
基础 URL:
安全性
共享凭据
用户可以通过多种方式提供 Binance API 凭据。Agent 会尝试通过前两种方式自动获取凭据;用户也可以明确告知 Agent 凭据已设置或已存储在 .env 文件中,此时 Agent 应重新读取该文件。使用前两种方式时,Agent 也可以在无需用户确认的情况下发出 HTTP 请求。
- 环境变量
仅搜索以下特定变量(绝不转储完整环境):
已授权的环境变量
- 主网:
BINANCE_API_KEY和BINANCE_SECRET_KEY
在单次 exec 调用中读取并使用,以免原始密钥进入 Agent 的上下文:
KEY="$BINANCE_API_KEY"
SECRET="$BINANCE_SECRET_KEY"
response=$(curl -s -X GET "$URL" \
-H "X-MBX-APIKEY: $KEY" \
--data-urlencode "param1=value1")
echo "$response"
必须在 OpenClaw 启动前设置环境变量。它们会在进程启动时继承,无法注入正在运行的实例。如果需要在不重启的情况下添加或更新凭据,请使用密钥文件(见选项 2)。
- 密钥文件(.env)
检查 ~/.openclaw/secrets.env、~/.env 或工作区中的 .env 文件。使用 grep 读取单个密钥,绝不要加载整个文件:
# Try all credential locations in order
API_KEY=$(grep '^BINANCE_API_KEY=' ~/.openclaw/secrets.env 2>/dev/null | cut -d= -f2-)
SECRET_KEY=$(grep '^BINANCE_SECRET_KEY=' ~/.openclaw/secrets.env 2>/dev/null | cut -d= -f2-)
# Fallback: search .env in known directories (KEY=VALUE then raw line format)
for dir in ~/.openclaw ~; do
[ -n "$API_KEY" ] && break
env_file="$dir/.env"
[ -f "$env_file" ] || continue
# Read first two lines
line1=$(sed -n '1p' "$env_file")
line2=$(sed -n '2p' "$env_file")
# Check if lines contain '=' indicating KEY=VALUE format
if [[ "$line1" == *=* && "$line2" == *=* ]]; then
API_KEY=$(grep '^BINANCE_API_KEY=' "$env_file" 2>/dev/null | cut -d= -f2-)
SECRET_KEY=$(grep '^BINANCE_SECRET_KEY=' "$env_file" 2>/dev/null | cut -d= -f2-)
else
# Treat lines as raw values
API_KEY="$line1"
SECRET_KEY="$line2"
fi
done
此文件可随时更新,无需重启 OpenClaw;每次调用时都会重新读取密钥。用户可以告知你变量现已设置或已存储在 .env 文件中,此时你应重新读取该文件。
- 内联文件
发送内容符合以下格式的文件:
abc123...xyz
secret123...key
- 绝不要运行
printenv、env、export或不带特定变量名的set - 绝不要在
env文件中运行grep,除非使用特定密钥锚定(^VARNAME=) - 绝不要将密钥文件加载到 shell 环境中(
source .env或. .env) - 仅读取当前任务明确需要的凭据
- 绝不要在输出或回复中回显或记录原始凭据
- 如果
TOOLS.md中包含真实凭据,绝不要将其提交到版本控制中——请将其添加到.gitignore
绝不泄露 API 密钥和密钥文件
绝不要泄露 API 密钥和密钥文件的位置。
绝不要将 API 密钥和密钥发送到主网和测试网以外的任何网站。
绝不显示完整密钥
向用户展示凭据时:
- API 密钥: 显示前 5 个字符和后 4 个字符:
su1Qc...8akf - 密钥: 始终遮蔽,仅显示最后 5 个字符:
***...aws1
用户询问凭据时的回复示例: 账户:main API 密钥:su1Qc...8akf 密钥:***...aws1
列出账户
列出账户时,仅显示名称和环境,绝不显示密钥: Binance 账户:
- main(主网)
- futures-keys(主网)
主网交易
执行主网交易时,务必先向用户确认,要求他们输入“CONFIRM”后再继续。
Binance 账户
main
- API 密钥:your_mainnet_api_key
- 密钥:your_mainnet_secret
TOOLS.md 结构
## Binance Accounts
### main
- API Key: abc123...xyz
- Secret: secret123...key
- Description: Primary trading account
### futures-keys
- API Key: futures789...def
- Secret: futuressecret...uvw
- Description: Futures trading account
Agent 行为
- 请求凭据:遮蔽密钥(仅显示最后 5 个字符)
- 列出账户:显示名称和环境,绝不显示密钥
- 选择账户:如有歧义则询问,默认使用 main
- 执行主网交易时,先向用户确认,要求他们输入“CONFIRM”后再继续
- 新凭据:提示用户提供名称、环境和签名模式
添加新账户
用户通过内联文件或消息提供新凭据时:
- 询问账户名称
- 将凭据存储在
TOOLS.md中,并确认时遮蔽密钥
签名请求
对于需要签名的交易端点:
- 先检测密钥类型,在签名之前检查密钥格式。
- 使用所有参数(包括时间戳,Unix 毫秒)构建查询字符串。
- 根据 RFC 3986 使用 UTF-8 对参数进行百分比编码。
- 根据账户配置,使用密钥通过 HMAC SHA256、RSA 或 Ed25519 对查询字符串签名。
- 将签名附加到查询字符串。
- 添加
X-MBX-APIKEY标头。
否则,不要执行步骤 4–6。
用户代理标头
添加 User-Agent 标头,值为:binance-convert/1.1.0 (Skill)
实现详情请参阅 references/authentication.md。