安装方式
手动下载安装
下载 ZIP 后解压到技能目录即可安装。若在桌面客户端 WebView中直接下载出现异常,本站会改为提示页 + 原始链接,请按页内说明操作。
下载 ZIP (shub-binance-spot-openapi-skill-v1.0.0.zip)触发指令
/binance-spot-openapi-ski
跨平台安装指引
该技能声明兼容以下 1 个平台,将 ZIP 解压到对应目录即可被识别。
unzip shub-binance-spot-openapi-skill-v1.0.0.zip -d ~/.claude/skills/
mkdir -p 创建;启用 Skill 后请重启对应 Agent 让配置生效。
使用指南
币安现货 OpenAPI
围绕 币安现货 OpenAPI:调用 Binance 现货 REST API 的鉴权、限速与典型查询;密钥勿入库,遵守当地法规。 无需在每次任务前把零散英文说明手工拼进上下文,也 减少 与客户端默认行为脱节的试错;具体命令、钩子与 JSON 参数仍以 ZIP 包内 SKILL.md 为权威。下文结构与站内 MCP CLI 类专题稿相同:何时用、前置、流程、速查与故障。
何时使用
- 调用 Binance 现货 REST API 的鉴权、限速与典型查询
- 密钥勿入库,遵守当地法规
- 已获取本技能 ZIP,并准备在 Claude Code / OpenClaw 中按 SKILL.md 挂载。
- 希望用中文专题稿快速判断「该不该启用」,再深入英文 SKILL 查参数与边界。
- 需要与团队对齐同一套触发方式、目录约定或回调格式时。
前置条件
- 通用:可运行 Claude Code 或文档要求的客户端;有可读写的项目工作区(或 SKILL.md 指定的沙箱目录)。
- 权威细节:API Key / OAuth、钩子路径、环境变量以 ZIP 内 SKILL.md 为准。
典型流程
- 从 ClawHub / 站内分发获取技能 ZIP,校验版本与校验和(若提供)。
- 阅读 SKILL.md 的安装段落:目录落点、客户端类型(Claude Code / OpenClaw / 脚本)。
- 用文档中的最小示例完成第一次调用(单文件修改、单次查询或单次委派)。
- 确认工作目录、权限边界与输出路径后,再处理多文件或长耗时任务。
- 需要回调 / Webhook / 通知时,按 SKILL.md 配置端点并在测试环境先验通。
与 ZIP / SKILL.md 的关系
站内专题稿与 MCP CLI 类 oss 稿同样:概括何时用、怎么接、怎么排错;命令模板、钩子名、JSON 字段、版本矩阵一律以 ZIP 内 SKILL.md 与 ClawHub 上游为准。
命令示例(摘自包内 SKILL.md)
以下为从上游 SKILL.md(或入库正文)自动抽取的终端/脚本片段;路径、环境变量与参数以当前 ZIP 与官方说明为准。
ClawHub slug:binance-spot-openapi-skill(安装命令以 SKILL.md / claw CLI 为准)。
export BINANCE_TESTNET_ED25519_PRIVATE_KEY="$(cat /absolute/path/to/binance_testnet_ed25519_private.pem)"
export BINANCE_MAINNET_ED25519_PRIVATE_KEY="$(cat /absolute/path/to/binance_mainnet_ed25519_private.pem)"
uxc auth credential set binance-spot-mainnet \
--auth-type api_key \
--field api_key=env:BINANCE_MAINNET_API_KEY \
--field private_key=env:BINANCE_MAINNET_ED25519_PRIVATE_KEY
uxc auth credential set binance-spot-testnet \
--auth-type api_key \
--field api_key=env:BINANCE_TESTNET_API_KEY \
--field private_key=env:BINANCE_TESTNET_ED25519_PRIVATE_KEY
uxc auth binding add \
--id binance-spot-mainnet \
--host api.binance.com \
--path-prefix /api/v3 \
--scheme https \
--credential binance-spot-mainnet \
--signer-json '{"kind":"ed25519_query_v1","algorithm":"ed25519","signing_field":"private_key","key_field":"api_key","key_placement":"header","key_name":"X-MBX-APIKEY","signature_param":"signature","signature_encoding":"base64","timestamp_param":"timestamp","timestamp_unit":"milliseconds","canonicalization":{"mode":"preserve_order"}}' \
--priority 100
uxc auth binding add \
--id binance-spot-testnet \
--host testnet.binance.vision \
--path-prefix /api/v3 \
--scheme https \
--credential binance-spot-testnet \
--signer-json '{"kind":"ed25519_query_v1","algorithm":"ed25519","signing_field":"private_key","key_field":"api_key","key_placement":"header","key_name":"X-MBX-APIKEY","signature_param":"signature","signature_encoding":"base64","timestamp_param":"timestamp","timestamp_unit":"milliseconds","canonicalization":{"mode":"preserve_order"}}' \
--priority 100
uxc auth credential set binance-spot-mainnet-hmac \
--auth-type api_key \
--field api_key=env:BINANCE_MAINNET_API_KEY \
--field secret_key=env:BINANCE_MAINNET_SECRET_KEY
uxc auth credential set binance-spot-testnet-hmac \
--auth-type api_key \
--field api_key=env:BINANCE_TESTNET_API_KEY \
--field secret_key=env:BINANCE_TESTNET_SECRET_KEY
uxc auth binding add \
--id binance-spot-mainnet-hmac \
--host api.binance.com \
--path-prefix /api/v3 \
--scheme https \
--credential binance-spot-mainnet-hmac \
--signer-json '{"kind":"hmac_query_v1","algorithm":"hmac_sha256","signing_field":"secret_key","key_field":"api_key","key_placement":"header","key_name":"X-MBX-APIKEY","signature_param":"signature","signature_encoding":"hex","timestamp_param":"timestamp","timestamp_unit":"milliseconds","canonicalization":{"mode":"preserve_order"}}' \
--priority 100
uxc auth binding add \
--id binance-spot-testnet-hmac \
--host testnet.binance.vision \
--path-prefix /api/v3 \
--scheme https \
--credential binance-spot-testnet-hmac \
--signer-json '{"kind":"hmac_query_v1","algorithm":"hmac_sha256","signing_field":"secret_key","key_field":"api_key","key_placement":"header","key_name":"X-MBX-APIKEY","signature_param":"signature","signature_encoding":"hex","timestamp_param":"timestamp","timestamp_unit":"milliseconds","canonicalization":{"mode":"preserve_order"}}' \
--priority 100
站内入库时的触发命令(完整语义见 ZIP):
# 使用本技能时可在对话中引用或执行上述指令;完整参数与示例见下载包内 SKILL.md。
/binance-spot-openapi-ski
最佳实践
- 先 SKILL.md 再猜参数;站内专题稿不替代 schema 与必填字段说明。
- 委派任务时写清验收标准(命令、文件路径、测试命令),减少来回追问。
- 长任务用文档推荐的回调 / 日志落盘代替高频轮询,省 Token 也省机器负载。
- 多技能同时启用时,注意钩子加载顺序与重复工具调用(以 SKILL.md 冲突说明为准)。
调试与排错
- 打开 stderr 与客户端日志;PTY/tmux 场景同时看面板最后几十行输出。
- 参数错误时对照 SKILL.md 中的 JSON/CLI 示例(引号、转义、工作目录)。
- 网络类失败:查代理、防火墙、MCP 传输方式(stdio / HTTP / SSE)。
速查
| 动作 | 说明 |
|------|------|
| 获取技能包 | ClawHub / 站内 ZIP,核对版本 |
| 权威步骤 | 优先阅读 ZIP 内 SKILL.md |
| 首次试跑 | 使用 SKILL.md 最小示例 |
| 验收 | 对照路径、测试命令或回调负载 |
常见故障
- 无输出或立即退出 → 工作目录错误、依赖未装、或 Claude Code 未登录;按 SKILL.md 自检清单执行。
- 权限被拒绝 → 检查沙箱路径、
--permission-mode与工具白名单。 - 与简介不符 → 以英文 SKILL 与上游仓库为准,站内稿仅作结构化导读。
# Binance Spot API Skill
Use this skill to run Binance Spot REST operations through `uxc` + OpenAPI.
Reuse the `uxc` skill for shared execution, auth, and error-handling guidance.
## Prerequisites
- `uxc` is installed and available in `PATH`.
- Network access to:
- `https://api.binance.com`
- `https://testnet.binance.vision`
- Access to the curated OpenAPI schema URL:
- `https://raw.githubusercontent.com/holon-run/uxc/main/skills/binance-spot-openapi-skill/references/binance-spot.openapi.json`
## Scope
This skill covers curated Binance Spot REST endpoints for:
- public market reads
- signed account reads
- signed order queries
- test orders
- order placement and cancellation
This skill does **not** cover:
- OCO, OTO, OTOCO, OPO, OPOCO, or other `orderList/*` endpoints
- `order/cancelReplace`
- `order/amend/*`
- `historicalTrades`
- `uiKlines`
- `ticker/tradingDay`
- SOR endpoints
- Wallet, Margin, Earn, or `/sapi/*` endpoints
- RSA request signing
- `https://demo-api.binance.com`
## Authentication
Public market endpoints do not require credentials.
Signed Spot endpoints require:
- `api_key` field for `X-MBX-APIKEY`
- `private_key` field for Ed25519 PKCS#8 PEM signing, or `secret_key` for deprecated HMAC SHA256 signing
### Testnet API Key Setup
Binance Spot testnet uses a separate host and separate API key records from mainnet:
- base URL: `https://testnet.binance.vision`
- testnet API keys do not work on mainnet
- mainnet API keys do not work on testnet
There are two practical testnet flows:
1. `Ed25519` (recommended by Binance)
- Generate an Ed25519 keypair locally.
- Register the public key in the Spot testnet API management UI.
- After registration, Binance shows a distinct `API key` for that Ed25519 key record.
- Use that displayed `API key` in `X-MBX-APIKEY`, and use the matching private key PEM for signing.
2. `HMAC` (legacy compatibility)
- Create an HMAC key in the Spot testnet API management UI.
- Binance shows both `API key` and `Secret key`.
- Use `API key` in `X-MBX-APIKEY`, and use `Secret key` for HMAC SHA256 signing.
Important:
- The Ed25519 public key you upload is **not** the `API key`.
- Each Binance key record has its own `API key`.
- Do not mix an HMAC `API key` with an Ed25519 private key, or an Ed25519 `API key` with an HMAC secret.
- If you do, Binance returns `-1022 Signature for this request is not valid.`
### Recommended Credential Setup
Binance recommends `Ed25519`. Store the private key PEM text in an environment variable, or source it from 1Password.
```bash
export BINANCE_TESTNET_ED25519_PRIVATE_KEY="$(cat /absolute/path/to/binance_testnet_ed25519_private.pem)"
export BINANCE_MAINNET_ED25519_PRIVATE_KEY="$(cat /absolute/path/to/binance_mainnet_ed25519_private.pem)"
```
Create one credential per environment so mainnet and testnet keys are never mixed:
```bash
uxc auth credential set binance-spot-mainnet \
--auth-type api_key \
--field api_key=env:BINANCE_MAINNET_API_KEY \
--field private_key=env:BINANCE_MAINNET_ED25519_PRIVATE_KEY
uxc auth credential set binance-spot-testnet \
--auth-type api_key \
--field api_key=env:BINANCE_TESTNET_API_KEY \
--field private_key=env:BINANCE_TESTNET_ED25519_PRIVATE_KEY
```
Add one signer binding per environment:
```bash
uxc auth binding add \
--id binance-spot-mainnet \
--host api.binance.com \
--path-prefix /api/v3 \
--scheme https \
--credential binance-spot-mainnet \
--signer-json '{"kind":"ed25519_query_v1","algorithm":"ed25519","signing_field":"private_key","key_field":"api_key","key_placement":"header","key_name":"X-MBX-APIKEY","signature_param":"signature","signature_encoding":"base64","timestamp_param":"timestamp","timestamp_unit":"milliseconds","canonicalization":{"mode":"preserve_order"}}' \
--priority 100
uxc auth binding add \
--id binance-spot-testnet \
--host testnet.binance.vision \
--path-prefix /api/v3 \
--scheme https \
--credential binance-spot-testnet \
--signer-json '{"kind":"ed25519_query_v1","algorithm":"ed25519","signing_field":"private_key","key_field":"api_key","key_placement":"header","key_name":"X-MBX-APIKEY","signature_param":"signature","signature_encoding":"base64","timestamp_param":"timestamp","timestamp_unit":"milliseconds","canonicalization":{"mode":"preserve_order"}}' \
--priority 100
```
### HMAC Fallback
If you already have legacy HMAC keys, `uxc` still supports them:
```bash
uxc auth credential set binance-spot-mainnet-hmac \
--auth-type api_key \
--field api_key=env:BINANCE_MAINNET_API_KEY \
--field secret_key=env:BINANCE_MAINNET_SECRET_KEY
uxc auth credential set binance-spot-testnet-hmac \
--auth-type api_key \
--field api_key=env:BINANCE_TESTNET_API_KEY \
--field secret_key=env:BINANCE_TESTNET_SECRET_KEY
uxc auth binding add \
--id binance-spot-mainnet-hmac \
--host api.binance.com \
--path-prefix /api/v3 \
--scheme https \
--credential binance-spot-mainnet-hmac \
--signer-json '{"kind":"hmac_query_v1","algorithm":"hmac_sha256","signing_field":"secret_key","key_field":"api_key","key_placement":"header","key_name":"X-MBX-APIKEY","signature_param":"signature","signature_encoding":"hex","timestamp_param":"timestamp","timestamp_unit":"milliseconds","canonicalization":{"mode":"preserve_order"}}' \
--priority 100
uxc auth binding add \
--id binance-spot-testnet-hmac \
--host testnet.binance.vision \
--path-prefix /api/v3 \
--scheme https \
--credential binance-spot-testnet-hmac \
--signer-json '{"kind":"hmac_query_v1","algorithm":"hmac_sha256","signing_field":"secret_key","key_field":"api_key","key_placement":"header","key_name":"X-MBX-APIKEY","signature_param":"signature","signature_encoding":"hex","timestamp_param":"timestamp","timestamp_unit":"milliseconds","canonicalization":{"mode":"preserve_order"}}' \
--priority 100
```
## Core Workflow
1. Use fixed link commands by default:
- `command -v binance-spot-mainnet-openapi-cli`
- If missing, create it:
`uxc link binance-spot-mainnet-openapi-cli https://api.binance.com --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/binance-spot-openapi-skill/references/binance-spot.openapi.json`
- `command -v binance-spot-testnet-openapi-cli`
- If missing, create it:
`uxc link binance-spot-testnet-openapi-cli https://testnet.binance.vision --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/binance-spot-openapi-skill/references/binance-spot.openapi.json`
2. Discover operations with help-first flow:
- `binance-spot-mainnet-openapi-cli -h`
- `binance-spot-testnet-openapi-cli -h`
- `binance-spot-testnet-openapi-cli post:/api/v3/order/test -h`
- `binance-spot-testnet-openapi-cli get:/api/v3/account -h`
3. Execute reads first:
- public read:
`binance-spot-mainnet-openapi-cli get:/api/v3/ticker/price symbol=BTCUSDT`
- signed read:
`binance-spot-testnet-openapi-cli get:/api/v3/account omitZeroBalances=true recvWindow=5000`
4. Use `order/test` before real writes:
- `binance-spot-testnet-openapi-cli post:/api/v3/order/test symbol=BTCUSDT side=BUY type=MARKET quoteOrderQty=100 recvWindow=5000`
## Operation Groups
### Public Market
- `get:/api/v3/ping`
- `get:/api/v3/time`
- `get:/api/v3/exchangeInfo`
- `get:/api/v3/avgPrice`
- `get:/api/v3/depth`
- `get:/api/v3/klines`
- `get:/api/v3/ticker/24hr`
- `get:/api/v3/ticker/price`
- `get:/api/v3/trades`
### Signed Reads
- `get:/api/v3/account`
- `get:/api/v3/openOrders`
- `get:/api/v3/order`
- `get:/api/v3/allOrders`
- `get:/api/v3/myTrades`
- `get:/api/v3/rateLimit/order`
### Signed Writes
- `post:/api/v3/order/test`
- `post:/api/v3/order`
- `delete:/api/v3/order`
- `delete:/api/v3/openOrders`
## Guardrails
- Keep automation on the JSON output envelope; do not use `--text`.
- Parse stable fields first: `ok`, `kind`, `protocol`, `data`, `error`.
- Treat `order/test` as the default validation path before any real order placement.
- Treat all mainnet write operations as high-risk and require explicit user confirmation before execution.
- Prefer testnet for all signed examples unless the user explicitly asks for mainnet.
- Before placing orders, query `exchangeInfo` for symbol filters and `ticker/price` or `depth` for current market context.
- If Binance returns `-1021`, call `get:/api/v3/time`, then retry with a fresh timestamp and, if needed, a larger `recvWindow`.
- If Binance returns `-1022`, first verify you are using the `API key` from the same Binance key record as the signing material:
- Ed25519: displayed `API key` + matching private key PEM
- HMAC: displayed `API key` + matching `Secret key`
- Use `--path-prefix /api/v3` on auth bindings. `uxc` now resolves OpenAPI auth against the final operation URL, so this narrower binding works for signed Spot requests and avoids over-broad host-level matching.
- `timestamp` and `signature` are injected by the signer binding; users normally provide business parameters plus optional `recvWindow`.
- `binance-spot-*-openapi-cli <operation> ...` is equivalent to `uxc <host> --schema-url <binance_spot_openapi_schema> <operation> ...`.
## References
- Usage patterns: `references/usage-patterns.md`
- Curated OpenAPI schema: `references/binance-spot.openapi.json`
- Binance Spot skill source material: https://github.com/binance/binance-skills-hub/tree/main/skills/binance/spot
- Official Binance Spot API docs: https://github.com/binance/binance-spot-api-docs