mcpField
C
convert

convert

github.com/binance其他1.1k1.3k 次安装2 天前更新
代码仓库

关于 convert

面向 Binance Convert 的 Agent 技能,用于查询兑换对、获取报价并执行兑换,也支持限价单和交易历史查询。部分接口需要 Binance API 凭证;主网交易前须取得用户确认。

主要功能

  1. 01查询可兑换资产对和精度
  2. 02请求兑换报价并接受报价
  3. 03创建及取消限价单
  4. 04查询订单状态与交易历史
  5. 05按账户凭证执行认证请求

适用场景

  1. 01检查两种资产是否支持兑换
  2. 02获取报价并完成资产兑换
  3. 03管理未完成的限价兑换订单
  4. 04查询过往 Convert 交易记录

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/binance/binance-skills-hub --skill convert

安装后在 Claude Code 中输入/convert确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CHANGELOG.md
LICENSE.md
references/
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)quoteIdrecvWindow是
/sapi/v1/convert/limit/cancelOrder (POST)取消限价订单 (USER_DATA)orderIdrecvWindow是
/sapi/v1/convert/tradeFlow (GET)获取兑换交易历史(USER_DATA)startTime, endTimelimit, recvWindow是
/sapi/v1/convert/orderStatus (GET)订单状态(USER_DATA)无orderId, quoteId是
/sapi/v1/convert/limit/placeOrder (POST)下限价单 (USER_DATA)baseAsset, quoteAsset, limitPrice, side, expiredTypebaseAmount, quoteAmount, walletType, recvWindow是
/sapi/v1/convert/limit/queryOpenOrders (GET)查询未完成的限价单 (USER_DATA)无recvWindow是
/sapi/v1/convert/getQuote (POST)发送报价请求(USER_DATA)fromAsset, toAssetfromAmount, toAmount, walletType, validTime, recvWindow是

参数

通用参数
  • fromAsset:用户支出的币种
  • toAsset:用户收到的币种
  • recvWindow:该值不能大于 60000(例如,5000)
  • quoteId:(例如,1)
  • orderId:来自 placeOrder api 的 orderId(例如,1)
  • startTime:(例如,1623319461670)
  • endTime:(例如,1641782889000)
  • limit:默认值为 100,最大值为 1000(例如,100)
  • orderId:必须提供 orderId 或 quoteId 之一(例如,1)
  • quoteId:必须提供 orderId 或 quoteId 之一(例如,1)
  • baseAsset:基础资产(使用 GET /sapi/v1/convert/exchangeInfo api 返回的 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 请求。

  1. 环境变量

仅搜索以下特定变量(绝不转储完整环境):

已授权的环境变量

  • 主网: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)。

  1. 密钥文件(.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 文件中,此时你应重新读取该文件。

  1. 内联文件

发送内容符合以下格式的文件:

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 行为

  1. 请求凭据:遮蔽密钥(仅显示最后 5 个字符)
  2. 列出账户:显示名称和环境,绝不显示密钥
  3. 选择账户:如有歧义则询问,默认使用 main
  4. 执行主网交易时,先向用户确认,要求他们输入“CONFIRM”后再继续
  5. 新凭据:提示用户提供名称、环境和签名模式

添加新账户

用户通过内联文件或消息提供新凭据时:

  • 询问账户名称
  • 将凭据存储在 TOOLS.md 中,并确认时遮蔽密钥

签名请求

对于需要签名的交易端点:

  1. 先检测密钥类型,在签名之前检查密钥格式。
  2. 使用所有参数(包括时间戳,Unix 毫秒)构建查询字符串。
  3. 根据 RFC 3986 使用 UTF-8 对参数进行百分比编码。
  4. 根据账户配置,使用密钥通过 HMAC SHA256、RSA 或 Ed25519 对查询字符串签名。
  5. 将签名附加到查询字符串。
  6. 添加 X-MBX-APIKEY 标头。

否则,不要执行步骤 4–6。

用户代理标头

添加 User-Agent 标头,值为:binance-convert/1.1.0 (Skill)

实现详情请参阅 references/authentication.md。

评论

支持 Markdown