mcpField
A
assets

assets

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

关于 assets

供 Agent 调用 Binance 资产相关 API,以 JSON 返回账户、资产、充值提现及转账信息;部分接口需要 API 凭证。

主要功能

  1. 01查询账户状态与权限
  2. 02查看资产、余额和账户快照
  3. 03获取充值与提现记录
  4. 04申请充值地址或提现
  5. 05查询并执行资产划转
  6. 06处理小额资产兑换

适用场景

  1. 01核对账户资产与余额
  2. 02追踪充值和提现状态
  3. 03在 Binance 钱包间划转资产

安装

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

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

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

包含的文件

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

CHANGELOG.md
LICENSE.md
references/
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)typestartTime, 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, endTimetranId, clientTranId, asset, current, size是
/sapi/v1/asset/dust-convert/convert (POST)小额资产兑换(USER_DATA)assetclientId, targetAsset, thirdPartyClientId, dustQuotaAssetToTargetAssetPrice是
/sapi/v1/asset/dust-convert/query-convertible-assets (POST)可兑换的小额资产(USER_DATA)targetAssetdustQuotaAssetToTargetAssetPrice是
/sapi/v1/asset/dribblet (GET)小额资产记录(USER_DATA)无accountType, startTime, endTime, recvWindow是
/sapi/v1/asset/dust (POST)小额资产划转(USER_DATA)assetaccountType, 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, endTimetype, asset, current, size, recvWindow是
/sapi/v1/asset/transfer (GET)查询用户通用划转历史记录(USER_DATA)typestartTime, endTime, current, size, fromSymbol, toSymbol, recvWindow是
/sapi/v1/asset/transfer (POST)用户通用划转(USER_DATA)type, asset, amountfromSymbol, 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)coinnetwork, 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)coinnetwork是
/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, amountwithdrawOrderId, 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, signaturenetwork, coin, amount, address, addressTag是
/sapi/v1/localentity/broker/withdraw/apply (POST)经纪商提现(适用于需要旅行规则的本地实体经纪商)(USER_DATA)address, coin, amount, withdrawOrderId, questionnaire, originatorPii, signatureaddressTag, 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, questionnairewithdrawOrderId, 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 请求,无需用户确认。

  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 读取单个密钥,切勿 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 文件中,此时你应重新读取该文件。

  1. 内联文件

发送内容格式如下的文件:

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

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

添加新账户

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

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

签名请求

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

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

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

User Agent 请求头

包含以下字符串的 User-Agent 请求头:binance-wallet/1.1.0 (Skill)

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

评论

支持 Markdown