关于 assets
供 Agent 调用 Binance 资产相关 API,以 JSON 返回账户、资产、充值提现及转账信息;部分接口需要 API 凭证。
主要功能
- 01查询账户状态与权限
- 02查看资产、余额和账户快照
- 03获取充值与提现记录
- 04申请充值地址或提现
- 05查询并执行资产划转
- 06处理小额资产兑换
适用场景
- 01核对账户资产与余额
- 02追踪充值和提现状态
- 03在 Binance 钱包间划转资产
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ binance/ binance-skills-hub --skill assets安装后在 Claude Code 中输入/assets确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CHANGELOG.mdLICENSE.mdreferences/authentication.md详细介绍
Binance 资产技能
使用经过身份验证的 API 端点请求 Binance 资产。某些端点需要 API 密钥和密钥。以 JSON 格式返回结果。
快速参考
| 端点 | 描述 | 必填 | 可选 | 身份验证 |
|---|---|---|---|---|
/sapi/v1/account/apiTradingStatus (GET) | 账户 API 交易状态(USER_DATA) | 无 | recvWindow | 是 |
/sapi/v1/account/info (GET) | 账户信息(USER_DATA) | 无 | recvWindow | 是 |
/sapi/v1/account/status (GET) | 账户状态(USER_DATA) | 无 | recvWindow | 是 |
/sapi/v1/account/apiRestrictions (GET) | 获取 API 密钥权限(USER_DATA) | 无 | recvWindow | 是 |
/sapi/v1/accountSnapshot (GET) | 每日账户快照(USER_DATA) | type | startTime, endTime, limit, recvWindow | 是 |
/sapi/v1/account/disableFastWithdrawSwitch (POST) | 禁用快速提现开关(USER_DATA) | 无 | recvWindow | 是 |
/sapi/v1/account/enableFastWithdrawSwitch (POST) | 启用快速提现开关(USER_DATA) | 无 | recvWindow | 是 |
/sapi/v1/bnbBurn (POST) | 切换现货交易手续费和杠杆利息是否使用 BNB 抵扣(USER_DATA) | 无 | spotBNBBurn, interestBNBBurn, recvWindow | 是 |
/sapi/v1/asset/assetDetail (GET) | 资产详情(USER_DATA) | 无 | asset, recvWindow | 是 |
/sapi/v1/asset/dust-btc (POST) | 获取可兑换为 BNB 的资产(USER_DATA) | 无 | accountType, recvWindow | 是 |
/sapi/v1/asset/assetDividend (GET) | 资产分红记录(USER_DATA) | 无 | asset, startTime, endTime, limit, recvWindow | 是 |
/sapi/v1/asset/ledger-transfer/cloud-mining/queryByPage (GET) | 获取云挖矿付款和退款历史记录(USER_DATA) | startTime, endTime | tranId, clientTranId, asset, current, size | 是 |
/sapi/v1/asset/dust-convert/convert (POST) | 小额资产兑换(USER_DATA) | asset | clientId, targetAsset, thirdPartyClientId, dustQuotaAssetToTargetAssetPrice | 是 |
/sapi/v1/asset/dust-convert/query-convertible-assets (POST) | 可兑换的小额资产(USER_DATA) | targetAsset | dustQuotaAssetToTargetAssetPrice | 是 |
/sapi/v1/asset/dribblet (GET) | 小额资产记录(USER_DATA) | 无 | accountType, startTime, endTime, recvWindow | 是 |
/sapi/v1/asset/dust (POST) | 小额资产划转(USER_DATA) | asset | accountType, recvWindow | 是 |
/sapi/v1/asset/get-funding-asset (POST) | 资金钱包(USER_DATA) | 无 | asset, needBtcValuation, recvWindow | 是 |
/sapi/v1/spot/open-symbol-list (GET) | 获取开放交易对列表(MARKET_DATA) | 无 | 无 | 否 |
/sapi/v1/asset/custody/transfer-history (GET) | 查询用户委托历史记录(主账户)(USER_DATA) | email, startTime, endTime | type, asset, current, size, recvWindow | 是 |
/sapi/v1/asset/transfer (GET) | 查询用户通用划转历史记录(USER_DATA) | type | startTime, endTime, current, size, fromSymbol, toSymbol, recvWindow | 是 |
/sapi/v1/asset/transfer (POST) | 用户通用划转(USER_DATA) | type, asset, amount | fromSymbol, toSymbol, recvWindow | 是 |
/sapi/v1/asset/wallet/balance (GET) | 查询用户钱包余额(USER_DATA) | 无 | quoteAsset, recvWindow | 是 |
/sapi/v1/spot/delist-schedule (GET) | 获取现货交易对下架计划(MARKET_DATA) | 无 | recvWindow | 否 |
/sapi/v1/asset/tradeFee (GET) | 交易手续费(USER_DATA) | 无 | symbol, recvWindow | 是 |
/sapi/v3/asset/getUserAsset (POST) | 用户资产(USER_DATA) | 无 | asset, needBtcValuation, recvWindow | 是 |
/sapi/v1/capital/config/getall (GET) | 所有币种信息(USER_DATA) | 无 | recvWindow | 是 |
/sapi/v1/capital/deposit/address (GET) | 充值地址(支持网络)(USER_DATA) | coin | network, amount, recvWindow | 是 |
/sapi/v1/capital/deposit/hisrec (GET) | 充值历史记录(支持网络)(USER_DATA) | 无 | includeSource, coin, status, startTime, endTime, offset, limit, recvWindow, txId | 是 |
/sapi/v1/capital/deposit/address/list (GET) | 获取充值地址列表(含网络)(USER_DATA) | coin | network | 是 |
/sapi/v1/capital/withdraw/address/list (GET) | 获取提现地址列表(USER_DATA) | 无 | 无 | 是 |
/sapi/v1/capital/withdraw/quota (GET) | 获取提现额度(USER_DATA) | 无 | 无 | 是 |
/sapi/v1/capital/deposit/credit-apply (POST) | 一键到账充值申请(适用于过期地址充值)(USER_DATA) | 无 | depositId, txId, subAccountId, subUserId | 是 |
/sapi/v1/capital/withdraw/history (GET) | 提现历史记录(支持网络)(USER_DATA) | 无 | coin, withdrawOrderId, status, offset, limit, idList, startTime, endTime, recvWindow | 是 |
/sapi/v1/capital/withdraw/apply (POST) | 提现(USER_DATA) | coin, address, amount | withdrawOrderId, network, addressTag, transactionFeeFlag, name, walletType, recvWindow | 是 |
/sapi/v1/system/status (GET) | 系统状态(系统) | 无 | 无 | 否 |
/sapi/v1/addressVerify/list (GET) | 获取地址验证列表(USER_DATA) | 无 | recvWindow | 是 |
/sapi/v1/localentity/broker/deposit/provide-info (PUT) | 提交充值问卷(适用于需要旅行规则的本地实体)(支持网络)(USER_DATA) | subAccountId, depositId, questionnaire, beneficiaryPii, signature | network, coin, amount, address, addressTag | 是 |
/sapi/v1/localentity/broker/withdraw/apply (POST) | 经纪商提现(适用于需要旅行规则的本地实体经纪商)(USER_DATA) | address, coin, amount, withdrawOrderId, questionnaire, originatorPii, signature | addressTag, network, addressName, transactionFeeFlag, walletType | 是 |
/sapi/v2/localentity/deposit/history (GET) | 充值历史记录 V2(适用于需要旅行规则的本地实体)(支持网络)(USER_DATA) | 无 | depositId, txId, network, coin, retrieveQuestionnaire, startTime, endTime, offset, limit | 是 |
/sapi/v1/localentity/deposit/history (GET) | 充值历史记录(适用于需要旅行规则的本地实体)(支持网络)(USER_DATA) | 无 | trId, txId, tranId, network, coin, travelRuleStatus, pendingQuestionnaire, startTime, endTime, offset, limit | 是 |
/sapi/v2/localentity/deposit/provide-info (PUT) | 提交充值问卷 V2(适用于需要旅行规则的本地实体)(支持网络)(USER_DATA) | depositId, questionnaire | 无 | 是 |
/sapi/v1/localentity/deposit/provide-info (PUT) | 提交充值问卷(适用于需要旅行规则的本地实体)(支持网络)(USER_DATA) | tranId, questionnaire | 无 | 是 |
/sapi/v1/localentity/vasp (GET) | VASP 列表(适用于需要旅行规则的本地实体)(支持网络)(USER_DATA) | 无 | recvWindow | 是 |
/sapi/v1/localentity/questionnaire-requirements (GET) | 检查问卷要求(适用于需要旅行规则的本地实体)(支持网络)(USER_DATA) | 无 | recvWindow | 是 |
/sapi/v2/localentity/withdraw/history (GET) | 提现历史记录 V2(适用于需要旅行规则的本地实体)(支持网络)(USER_DATA) | 无 | trId, txId, withdrawOrderId, network, coin, travelRuleStatus, offset, limit, startTime, endTime, recvWindow | 是 |
/sapi/v1/localentity/withdraw/history (GET) | 提现历史记录(适用于需要旅行规则的本地实体)(支持网络)(USER_DATA) | 无 | trId, txId, withdrawOrderId, network, coin, travelRuleStatus, offset, limit, startTime, endTime, recvWindow | 是 |
/sapi/v1/localentity/withdraw/apply (POST) | 提现(适用于需要旅行规则的本地实体)(USER_DATA) | coin, address, amount, questionnaire | withdrawOrderId, network, addressTag, transactionFeeFlag, name, walletType, recvWindow | 是 |
参数
通用参数
- recvWindow:(例如,5000)
- type:
- startTime:(例如,1623319461670)
- endTime:(例如,1641782889000)
- limit:最小值为 7,最大值为 30,默认值为 7(例如,7)
- spotBNBBurn:"true" 或 "false";决定是否使用 BNB 支付现货交易手续费
- interestBNBBurn:"true" 或 "false";决定是否使用 BNB 支付保证金贷款利息
- asset:如果 asset 为空,则查询用户持有的所有正余额资产。
- accountType:
SPOT或MARGIN,默认值为SPOT(例如,SPOT) - tranId:交易 ID(例如,1)
- clientTranId:唯一标识(例如,1)
- startTime:(例如,1623319461670)
- endTime:(例如,1641782889000)
- current:当前页,默认值为 1,最小值为 1(例如,1)
- size:页大小,默认值为 10,最大值为 100(例如,10)
- asset:
- clientId:请求的唯一 ID(例如,1)
- targetAsset:
- thirdPartyClientId:(例如,1)
- dustQuotaAssetToTargetAssetPrice:(例如,1.0)
- targetAsset:
- needBtcValuation:true 或 false
- email:
- type:Delegate/Undelegate(委托/取消委托)
- fromSymbol:
- toSymbol:
- quoteAsset:
USDT、ETH、USDC、BNB等,默认值为BTC(例如,BTC) - symbol:
- needBtcValuation:是否需要 BTC 估值。
- amount:(例如,1.0)
- coin:
- network:
- amount:(例如,1.0)
- includeSource:默认值:
false;设为true时,返回sourceAddress字段 - coin:
- status:0(0:邮件已发送,2:等待批准,3:已拒绝,4:处理中,6:已完成)
- offset:默认值:0
- txId:(例如,1)
- depositId:充值记录 ID,优先使用(例如,1)
- subAccountId:Cloud 用户的子账户 ID(例如,1)
- subUserId:主用户的子用户 ID(例如,1)
- withdrawOrderId:客户端提现 ID;如果在 POST
/sapi/v1/capital/withdraw/apply中提供,可用于此处查询。(例如,1) - idList:POST
/sapi/v1/capital/withdraw/apply响应中返回的 ID 列表,以,分隔 - address:
- addressTag:XRP、XMR 等币种的二级地址标识符。
- transactionFeeFlag:进行内部转账时,
true表示将手续费返还至目标账户;false表示将手续费返还至转出账户。默认值为false。 - name:地址描述。地址簿上限为 200 条,名称中的空格应编码为
%20 - walletType:提现钱包类型,0-现货钱包,1-资金钱包。默认 walletType 为钱包->法币和现货/资金->充值下当前“已选钱包”
- subAccountId:外部用户 ID。(例如,1)
- depositId:钱包充值 ID(例如,1)
- questionnaire:JSON 格式的问卷答案。
- beneficiaryPii:JSON 格式的受益人 PII。
- address:
- signature:必须是最后一个参数。
- addressName:地址描述。地址簿上限为 200 条,名称中的空格应编码为
%20 - withdrawOrderId:由客户端定义的 withdrawID(即客户端内部的 withdrawID)(例如,1)
- originatorPii:JSON 格式的发起人 PII,参见下方的 StandardPii 部分
- depositId:以逗号(,)分隔的钱包交易 ID 列表。(例如,1)
- retrieveQuestionnaire:true:在响应中返回
questionnaire。 - trId:以逗号(,)分隔的旅行规则记录 ID 列表。(例如,1)
- tranId:以逗号(,)分隔的钱包交易 ID 列表。(例如,1)
- travelRuleStatus:0:已完成,1:待处理,2:失败
- pendingQuestionnaire:true:仅返回等待充值问卷的记录。false/未提供:返回所有记录。
- tranId:钱包交易 ID(例如,1)
身份验证
对于需要身份验证的端点,您需要提供 Binance API 凭据。 所需凭据:
- apiKey:您的 Binance API 密钥(用于请求头)
- secretKey:您的 Binance API 密钥(用于签名)
基础 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 读取单个密钥,切勿 source 整个文件:
# 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=) - 切勿将密钥文件 source 到 shell 环境中(
source .env或. .env) - 仅读取当前任务明确需要的凭据
- 切勿在输出或回复中回显或记录原始凭据
- 如果
TOOLS.md中包含真实凭据,切勿将其提交到版本控制;请将其添加到.gitignore
切勿泄露 API 密钥和 Secret
切勿泄露 API 密钥和 Secret 文件的位置。
切勿将 API 密钥和 Secret 发送到主网和测试网以外的任何网站。
切勿显示完整密钥
向用户显示凭据时:
- **API Key:**显示前 5 个和后 4 个字符:
su1Qc...8akf - **Secret Key:**始终遮蔽,仅显示最后 5 个字符:
***...aws1
用户询问凭据时的回复示例: 账户:main API Key:su1Qc...8akf Secret:***...aws1
列出账户
列出账户时,仅显示名称和环境,切勿显示密钥: Binance 账户:
- main(主网)
- futures-keys(主网)
主网交易
在主网上执行交易时,务必先向用户确认,要求其输入“CONFIRM”后再继续。
Binance 账户
main
- API Key:your_mainnet_api_key
- Secret: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中,并确认时对其进行遮蔽
签名请求
对于需要签名的交易端点:
- 先检测密钥类型,在签名前检查 Secret Key 格式。
- 构建包含所有参数(包括时间戳,Unix 毫秒)的查询字符串。
- 根据 RFC 3986 使用 UTF-8 对参数进行百分号编码。
- 根据账户配置,使用 Secret Key 通过 HMAC SHA256、RSA 或 Ed25519 对查询字符串签名。
- 将签名附加到查询字符串。
- 添加
X-MBX-APIKEY标头。
否则,不要执行第 4–6 步。
User Agent 请求头
包含以下字符串的 User-Agent 请求头:binance-wallet/1.1.0 (Skill)
实现详情请参阅 references/authentication.md。